2013-01-17 2 views
3

여기에 대해 몇 가지 질문이 있지만, 아무도 유효한 (나를 위해) 대답이 없습니다. 문제는 다음과 같습니다.신뢰할 수있는 신뢰할 수있는 위치 msbuild에서 mstest.exe

경로를 하드 코딩하지 않거나 $ (VSxxComnTools) 또는 $ (VSINSTALLDIR) 변수를 사용하지 않고 msbuild 프로젝트에서 mstest.exe의 위치를 ​​확인하는 방법이 있습니까?

후자는 VS 테스트 에이전트가 설치되어 있고 전체 VS가 아닌 빌드 서버 (비 TFS이지만 Bamboo 또는 TeamCity)에서 실행되어야하기 때문에입니다.

추가 정보 : 물론 이것은 msbuild, C# 컴파일러 및 mstest가 설치된 다른 모든 컴퓨터에서도 작동해야합니다. 왜냐하면 모두가 github에서 프로젝트를 체크 아웃 할 수 있어야하고 msbuild를 호출해야하며 모든 것이 그냥 실행되어야합니다. 부드럽게.

답변

3

당신은

$(MSBuildProgramFiles32)\Microsoft Visual Studio 11.0\Common7\Ide 

사용할 수있는이 모든 자산에 SKU를 동일한 버전, 즉 2012로 작업하는 가정합니다. 물론 프로젝트 자체의 다른 버전에 대한 대체 기능을 쉽게 만들 수 있습니다.

Use 32bit "Program Files" directory in msbuild을 참조하십시오.

0

그걸 가리키는 컴퓨터 환경 변수를 추가하고이를 msbuild에서 참조 할 수 있습니까? 그래서 var MSTEST_HOME을 추가했다면 msbuild에서 $ (MSTEST_HOME)을 사용할 수 있습니까?

+0

이지만, 다른 모든 사람이 단지 예에서 프로젝트를 잡아 위해 그 불가능 할 것 github 및 구축 및 테스트. 그래서 이것은 유효한 옵션이 아닙니다. –

0

그것은 우아한 아니지만, 호스트에 설치된 최신 MSTest.exe을 찾을 수있는 신뢰할 수있는 방법은 내가 할 수있는

<MSTestPath Condition="'$(MSTestPath)'=='' And Exists('$(MSBuildProgramFiles32)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe')">$(MSBuildProgramFiles32)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe</MSTestPath> 
<MSTestPath Condition="'$(MSTestPath)'=='' And Exists('$(MSBuildProgramFiles32)\Microsoft Visual Studio 13.0\Common7\IDE\MSTest.exe')">$(MSBuildProgramFiles32)\Microsoft Visual Studio 13.0\Common7\IDE\MSTest.exe</MSTestPath> 
<MSTestPath Condition="'$(MSTestPath)'=='' And Exists('$(MSBuildProgramFiles32)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe')">$(MSBuildProgramFiles32)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe</MSTestPath> 
<MSTestPath Condition="'$(MSTestPath)'=='' And Exists('$(MSBuildProgramFiles32)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe')">$(MSBuildProgramFiles32)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe</MSTestPath> 
<MSTestPath Condition="'$(MSTestPath)'=='' And Exists('$(MSBuildProgramFiles32)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe')">$(MSBuildProgramFiles32)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe</MSTestPath> 
<MSTestPath Condition="'$(MSTestPath)'=='' And Exists('$(MSBuildProgramFiles32)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe')">$(MSBuildProgramFiles32)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe</MSTestPath> 
관련 문제