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 대신에 "e; 사용)로 가져 오려고 시도했습니다.
누군가가 올바른/작동 방법을 제안하여 msbuild를 실행하는 exec 태스크의 인수로 Platform 매개 변수를 가져올 수 있습니까? ie exec 작업에 이중 음성 표로 구분 된 요소가 포함 된 arg를 정의하는 방법은 무엇입니까?
미리 감사드립니다.
당신이 당신의 플랫폼 AnyCPU' '라고 있도록 공간을 제거 시도 해 봤나 : 개미 간부 인 작업 인수
는 플랫폼 매개 변수는 내가 할 경우 완벽하게 잘 작동하는 표시? –또한 목표 매개 변수로'/ t : Build'를 지정해보십시오. – Tuffwer
@JamesReed - 시작 텍스트마다 공백없이 AnyCPU를 사용하면 솔루션이 아닌 프로젝트 파일에 대해 빌드하는 경우에만 작동합니다 - 불일치 마이크로 소프트는 주소 지정의 의도가 없다고 말했습니다. –