2017-05-10 1 views
1

Jenkins의 Ant 1.9.7 exec 작업을 사용하여 Windows Server 2012 컴퓨터에서 msbuild를 실행하려고합니다.Ant에서 MSBuild 실행

내가 다시 시도하고 명령 줄은 다음과 같습니다

<property name="platformParameter" value='/p:Platform="Any CPU"' /> 
<echo message="platformParameter = ${platformParameter}" /> 

<exec executable="msbuild" failonerror="true"> 
    <arg value="solution.sln" /> 
    <arg value="/p:Configuration=Release" /> 
    <arg value="${platformParameter}" /> 
</exec>   

환경은 MSBuild를 사용할 수 있도록 올바른 다음 간부 인 작업에

msbuild solution.sln /p:Platform="Any CPU" /p:Configuration:Release 

내 최신 시도가 같이 보입니다. 나는 점점 오전 위의 출력은 다음과 같습니다

[echo] platformParameter = /p:Platform="Any CPU" 
[exec] Microsoft (R) Build Engine version 12.0.40629.0 
[exec] [Microsoft .NET Framework, version 4.0.30319.34014] 
[exec] Copyright (C) Microsoft Corporation. All rights reserved. 
[exec] 
[exec] MSBUILD : error MSB1008: Only one project can be specified. 
[exec] Switch: CPU 

에코 출력은 platformParameter가 제대로 MSBuild에서 요구하는대로 내가 어떤 CPU 주위 이중 음성 표시와 함께 원하는 것을 포함하고 있음을 보여준다. 단일 음성 마크를 사용하면 솔루션을 만들려고 할 때 음성 표식이나 AnyCPU가 작동하지 않습니다. 솔루션보다는 프로젝트를 구축한다면 플랫폼에 AnyCPU 대신 AnyCPU를 사용할 수 있다고 생각합니다. 이 CPU를 생각

msbuild solution.sln /p:Platform=Any CPU /p:Configuration:Release 

는 두 번째 프로젝트/솔루션입니다 :

오류는 msbuild를 올바르게 형성되는 플랫폼 매개 변수를보고하기 때문에 아마 내가 뭘 생각하지 않는 것 같습니다.

위의 그림과 같은 결과로 exec 태스크를 통해 double speech mark를 포함하는이 인수를 exec 태스크 (예 : double speech marks 대신에 &quote; 사용)로 가져 오려고 시도했습니다.

누군가가 올바른/작동 방법을 제안하여 msbuild를 실행하는 exec 태스크의 인수로 Platform 매개 변수를 가져올 수 있습니까? ie exec 작업에 이중 음성 표로 구분 된 요소가 포함 된 arg를 정의하는 방법은 무엇입니까?

미리 감사드립니다.

+0

당신이 당신의 플랫폼 AnyCPU' '라고 있도록 공간을 제거 시도 해 봤나 : 개미 간부 인 작업 인수

는 플랫폼 매개 변수는 내가 할 경우 완벽하게 잘 작동하는 표시? –

+0

또한 목표 매개 변수로'/ t : Build'를 지정해보십시오. – Tuffwer

+0

@JamesReed - 시작 텍스트마다 공백없이 AnyCPU를 사용하면 솔루션이 아닌 프로젝트 파일에 대해 빌드하는 경우에만 작동합니다 - 불일치 마이크로 소프트는 주소 지정의 의도가 없다고 말했습니다. –

답변

1

문제가 해결되었습니다.

나는 해결할 필요가없는 것을 선제하거나 해결하려고 시도한 것처럼 보입니다. 윈도우에서

은 MSBuild에서 내가 할 필요가 작동하도록하는 명령 프롬프트 : 내 질문에

msbuild solution.sln /p:Platform="Any CPU" /p:Configuration:Release 

을 언급한다.

<exec executable="msbuild" failonerror="true"> 
    <arg value="solution.sln" /> 
    <arg value="/p:Configuration=Release" /> 
    <arg value="/p:Platform=Any CPU" /> 
</exec> 
관련 문제