서버에서 MSBuild를 사용하여 Visual Studio 빌드를 실행하면 이름이 다소 혼란 스럽지만 이름이 Visual Studio에 전달 될 때와 마찬가지로 MSBuild 매개 변수 상자를 사용하여 동일한 방식으로 매개 변수가 작동해야합니다.
매개 변수 상자를 사용하여 문제가 발생하는 경우 실행해야하는 명령 및 필요한 동작에 대한 추가 정보가 필요합니다.
편집 다음 질문자의 의견
여기에 현실의 문제는 Visual Studio를하지 정말이 인 TeamCity에 존재 할 빌드이다, 비주얼 스튜디오 빌드 실제로 당신의 비주얼 스튜디오 솔루션에 대해 MSBUILD를 실행하는 것입니다, Google 테스트와 관련하여 귀하의 문제를 유발할만큼 충분히 다릅니다.
이 문제를 해결하려면 빌드 러너를 솔루션을 빌드하고 Google 테스트를 실행하는 MsBuild 스크립트로 변경해야 할 것입니다. 위의
http://code.google.com/p/msbuildteamcitytasks/wiki/RunGoogleTests
을 그 점에서 당신을 위해 모든 다리 작업을하고, 인 TeamCity 완전히 GoogleTest 결과를 통합 주장하는 일부 MSBUILD 작업입니다 : 다행히도, 인터넷을 제공합니다. 그 결과, 솔루션에서 MsBuild를 호출하는 매우 간단한 빌드 스크립트 만 필요하고, 필요에 따라 MsBuild 태스크를 호출하면됩니다. 내가 얼마나 잘 작동하는지 또는 사용하지 않았기 때문에 설치가 얼마나 쉬운지를 확인하지는 못하지만 페이지의 문서는 합리적으로 맞추기 쉽다는 것을 의미합니다.아래
각 $()는 변수가 사용자 인 TeamCity 구성 @의 시스템 속성입니다 (BuildProjects)를 사용하여 생성 된 솔루션의 목록입니다 솔루션 (들)
<MSBuild Projects="@(BuildProjects)" Targets="Rebuild" BuildInParallel="true" Properties="Configuration=Debug;Platform=$(Platform)">
<Output ItemName="DebugOutputs" TaskParameter="TargetOutputs"/>
</MSBuild>
를 구축 할 것입니다 MSBUILD의 조각입니다 이 :
<ItemGroup>
<BuildProjects Include="$(WorkingArea)\**\*.sln" />
</ItemGroup>
할 수 있습니다 물론 하드 코드 어떠한 필요에 따라이 변수 또는 매개 변수를 변경의 모든하지만,이 예제는 (당신이 아니 전체 스크립트를 다른 프로젝트에 스크립트를 재사용 할 수있는 몇 가지 자유를 줄 것이다, 주변에 가야 할 추가 구조가 있습니다. 외부).
물론 필요에 따라 스크립트에 추가 기능을 구현하거나 이해하기 쉽도록 가능한 한 간단하게 만들 수 있습니다. MSBUILD 스크립트에 대한 자세한 문서가
는 다음 사이트에서 구할 수 있습니다 http://www.universalthread.com/ViewPageArticle.aspx?ID=61 http://codingcockerel.co.uk/2008/04/15/automating-the-build-with-msbuild/ http://www.codeproject.com/Articles/12985/Practical-NET2-and-C-2-An-introduction-to-MSBuild
내가 충분히 더 거기 당신이 그것을 필요로하는 경우에있을거야.
내가 짓고있는 프로젝트는 구축 중에 XML 보고서를 작성하고 생성 할 수 있기를 원하는 Google 테스트 프로젝트입니다. 따라서 "--gtest_output = xml"옵션을 사용하여 실행할 수 있어야합니다. --gtest_output = "xml : file.xml"). TeamCity에서 실행하려고 할 때이 옵션을 매개 변수 상자에 넣으면 "MSBUILD : 오류 MSB1001 : 알 수없는 스위치"라는 오류가 발생합니다. – Thalia
주어진 상황에 대해 더 많은 정보를 제공하기 위해 답을 업데이트했습니다. 이제 문제 해결에 도움이 될 것입니다. – Rawrgramming