2012-10-17 5 views
0

Visual Studio에서 "--xx"명령 줄 옵션을 사용하여 C++ 프로젝트/솔루션을 실행하는 경우 TeamCity에서 정확히 동일한 작업을 수행하려면 어떻게해야합니까?TeamCity의 Visual Studio Project에 명령 줄 인수 추가

나는 찾고 대안을 찾을 수 없습니다.

"명령 줄 매개 변수"처럼 보이는 것은 실제로 MSBuild 용으로 지정됩니다.

솔루션을 실행해야하며 솔루션에서 생성 된 실행 파일이 아닙니다.

감사합니다.

답변

1

서버에서 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

내가 충분히 더 거기 당신이 그것을 필요로하는 경우에있을거야.

+1

내가 짓고있는 프로젝트는 구축 중에 XML 보고서를 작성하고 생성 할 수 있기를 원하는 Google 테스트 프로젝트입니다. 따라서 "--gtest_output = xml"옵션을 사용하여 실행할 수 있어야합니다. --gtest_output = "xml : file.xml"). TeamCity에서 실행하려고 할 때이 옵션을 매개 변수 상자에 넣으면 "MSBUILD : 오류 MSB1001 : 알 수없는 스위치"라는 오류가 발생합니다. – Thalia

+0

주어진 상황에 대해 더 많은 정보를 제공하기 위해 답을 업데이트했습니다. 이제 문제 해결에 도움이 될 것입니다. – Rawrgramming

0

음, 인 TeamCity에서 (나는 버전 6.5.x를 사용하고) 당신이 새로운 빌드 단계를 추가 비주얼 스튜디오 (SLN) 또는 비주얼 스튜디오 당 2003로 빌드 주자를 선택하면, 귀하의 요구 사항 및 거기에 명령 줄 매개 변수를 전달하는 옵션이 나타납니다.

어떤 TeamCity 버전을 사용하십니까?

+2

paas msbuild 명령 줄 매개 변수를 사용하려면 다음과 같이 전달하십시오 :'/ p : parameter = value'? 실제로 당신이 파스타를 시도하는 것이 정확히 혼란 스럽습니다. 질문을 편집하고 몇 가지 예/참고 자료를 제공해 주시겠습니까? – Arpit