프로젝트를 빌드하는 MSBUILD 스크립트 (.bat 파일)가 있습니다. 빌드 관리 및 연속 통합 서버와 일치하는 특정 버전의 MSBuild에서 실행되도록 로컬로 (repo에 커밋하기 전에) 실행될 MSBuild 스크립트가 필요합니다.강제로 MSBuild 버전을 적용 하시겠습니까?
msbuild MyProject.HelloWorld.proj
:
C:\Program Files (x86)\MSBuild\14.0
C:\Windows\Microsoft.NET\Framework\v3.5
C:\Windows\Microsoft.NET\Framework\v4.0.30319
문제는 MSBuild 버전은 Windows 경로 환경 변수에서 가장 높게 나열됩니다.
빌드 로그에서 사용 된 MSBuild 버전을 확인할 수 있습니다.
은 내가 Toolsversion 매개 변수를 전달하는 스크립트를 수정하여 tools version를 지정 시도 :msbuild /toolsversion:14.0 MyProject.HelloWorld.proj
하지만이 프로젝트는 MSBuild를 버전 4.0로 지어진 아무 소용이
.모든 개발자에게 환경 경로 변수의 순서를 수정하고 최상위에 C : \ Program Files (x86) \ MSBuild \ 14.0을 배치하여 MSBuild 14로 빌드하도록 요청할 수는 있지만 그 일을 성취하기 위해 덜 눈에 띄는 방식을 찾고있었습니다.
또한 이전 버전의 MSBuild로 빌드해야하는 다른 프로젝트가 있으므로 프로젝트에 따라 피하려고하는 경로 변수의 순서를 이동해야 할 수도 있습니다.
단순히 전체 경로를 사용합니다. 보다 나은 로직을 사용하고 싶다면 MSBuild는 더 많은 버전 관련 정보를 구성 할 수있는 자체 레지스트리 키를 가지고 있습니다. –
msbuild.exe 버전은 PATH에 없습니다. devs가 자신의 목적을 달성 할 수 없도록 만들거나 개발자 명령 프롬프트를 잘못 사용하는 것을 막을 수있는 방법은 거의 없으며 .bat 파일 인 경우 개발자에게 제공하는 것이 좋습니다. –
@LexLi 좋은 생각. 응답으로 제출해주십시오. 내가받는 다른 대답에 따라 답으로 표시 할 수 있습니다. – ConfusedDeer