2010-06-10 4 views
2

많은 C++ 프로젝트와 C# 프로젝트로 구성된 커다란 프로젝트와 모든 것을 구축하는 MSBuild (3.5) 스크립트가 있습니다. 이 스크립트는 VCBuild (C++ 프로젝트) 및 MSBuild (C# 프로젝트) 작업을 기반으로합니다. 그것은 정기적으로 Continuous Integration server에 의해 실행됩니다.MSBuild에서 특정 Windows SDK를 사용하는 방법?

컴파일에 사용할 특정 Windows SDK (v6.0A, v7.0, v7.1 ...)를 선택할 수 있기를 원합니다. 저장소에 궁극적으로 다른 SDK 버전이 필요한 많은 지점이 있으므로 각 컴파일 전에 올바른 SDK 버전을 선택하는 방법이 필요합니다.

내 컴퓨터에서 MSBuild 스크립트를 시작하기 전에 오른쪽 SetEnv.cmd을 호출하는 배치 스크립트를 설정할 수있었습니다. 그러나이 솔루션은 MSBuild 스크립트가 직접 실행되므로 CI 서버에서 사용할 수 없습니다.

SetEnv.cmd에 해당하는 MSBuild를 달성하는 방법을 알고 있습니까?

답변

0

나는 실행, 매개 변수로 (매개 변수로 batch.cmd을 가진) 다음 명령 줄 배치 파일 이름을 걸릴 것이라고 정의의 MSBuild 작업 생성 결국 : 출력은 다음 구문 분석됩니다

cmd.exe /E:ON /V:ON /S /C "batch.cmd > nul && SET" 

을, 그리고 현재 프로세스에 맞게 환경 변수를 설정하십시오.

이렇게하면 SetEnv.cmd을 실행하고 MSBuild 프로세스에서 올바른 환경 변수를 얻을 수 있습니다.

1

Environment.SetEnvironmentVariable을 사용하여 지정된 플랫폼 SDK 버전에 따라 적절한 환경 변수 값을 설정하는 사용자 지정 MSBuild 작업을 만들 수 있습니다. 어떤 환경 변수를 설정해야하는지 보려면 vcvars32.bat (또는 대상 구성에 따라 vcvars64.bat)를 확인하십시오.

관련 문제