2012-04-19 4 views
25

.net 응용 프로그램이 .net 프레임 워크 3.5를 기반으로 작성되었으므로 젠킨스 CI 서버에서이 응용 프로그램을 빌드하려고합니다. MSBuild 플러그인을 추가했습니다. MSBuild 2.0, 3.5 및 4.0 버전의 .exe 파일 경로를 추가했습니다. 그러나 아래의 오류 메시지를 보여줌으로써 빌딩 프로세스가 실패합니다.MSBuild를 사용하여 젠킨스에서 .net 응용 프로그램을 빌드하십시오.

Path To MSBuild.exe: msbuild.exe 
Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%% 
[Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%% 
'msbuild.exe' is not recognized as an internal or external command, 
operable program or batch file. 
Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure 
Finished: FAILURE 

누구든지 나를 도와 줄 수 있습니까? ??

답변

66

MSBuild 플러그인을 작동 시키려면 Jenkins 관리 화면에서 플러그인을 구성해야합니다.

참고 :

enter image description here


Jenkins MSBuild Installation Configuration

주 "이름"필드, 나는했습니다 : 새로운 젠킨스 버전에서 당신은 글로벌 도구 설정에서 MSBuild를 구성을 찾을 수 이 특정 구성을 v4.0.30319라고합니다. 당신은 당신이 좋아하는 어떤 것이라도 부를 수 있습니다. 그러나 이상적으로 그 이름은 어떻게 든 그 버전을 가리킬 것입니다.

Jenkins PROJECT에서이 이름을 나중에 참조해야합니다.

참고 : 노란색 경고는 MSBuild 경로 필드가 파일 이름이 아닌 디렉터리 이름으로 채워 져야 함을 의미합니다. 실제로는 여기에 파일 이름을 입력해야합니다 (예 : msbuild.exe). 그렇지 않으면 빌드 단계가 실패합니다.

젠킨스 프로젝트에서 실패한 경우 MSBuild 빌드 단계로 이동하십시오.

빌드 단계의 첫 번째 필드는 "MSBuild Version"입니다. MSBuild 버전을 구성하기 전에 빌드 단계를 만든 경우 여기 값이 (기본값)입니다.

Jenkins MSBuild build-step, with (default) msbuild configuration selected

하나 이상의 MSBuild를 버전을 구성한 후, 드롭 다운이 가능한 구성으로 채워집니다. 필요한 것을 선택하십시오.

이제 위의 설치와 일치하는 명명 된 구성을 선택했음을 알 수 있습니다.

Jenkins MSBuild build-step, with named msbuild configuration selected

+0

황색 경고를보고 'msbuild.exe'를 제거하고 오류를 계속 받으 셨습니다. 그것에 대해 언급 한 사람은 단 한 사람 뿐이므로 기쁘게 생각합니다. – iamserious

+0

두 프로젝트를 빌드하면됩니다 ** MSBuild ** 섹션을 사용하여 Visual Studio 프로젝트 또는 솔루션을 빌드하십시오. – MichaelMao

+0

msbuild에서 VS2015/C# 6을 사용하는 경우 msbuild 파일 경로를 *** C : \ Program Files (x86) \ MSBuild \ 14.0 \ Bin ***로 지정해야합니다. jessehouwing의 솔루션에 대한 감사 : http : /stackoverflow.com/a/32008030/1677041 – Itachi

5

난 당신이 예를 들어 당신의 젠킨스 구성, 에서 "MSBuild.exe를"에 대한 절대 경로를 설정해야한다고 생각 :

C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe 
+0

그는 맞습니다. 플러그인에 버그가 있습니다. Jenkins Configuration은 MSBuild.exe에 대한 경로를 묻지 만 실제로는 MSBuild.exe의 전체 경로 여야합니다. 경고 하겠지만,이 방법으로 저장하면 작동합니다. – justdan23

-2

당신은 어떤 것이라고

%comspec% /k ""c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 

명령을 실행 시도 할 수 환경 경로 변수를 일시적으로 업데이트하여 VS2010 빌드 환경을 반영하십시오. MSBUILD를 호출하고 어떤 일이 일어나기 전에 이것을 실행하십시오. 내 자신의 빌드 스크립트에서 문제없이 사용합니다.

사이드 노트; PATH에 여러 버전의 MSBUILD를 설치하는 것이 비생산적인 경우가 많습니다. 하나의 버전이 작동하고 거기에서 이동하는 것에 집중하십시오.

+2

Jenkins 용 MSBuild 플러그인을 사용하는 것이 좋습니다. 그러나 명령 줄 스크립트를 작성하려면 % comspec %를 사용하지 말고 추가 매개 변수없이 'CALL'을 사용하면 나머지 스크립트에 대해 환경이 유지됩니다. 예 : "C : \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat"x86 – justdan23

12
Jenkins | Manage Jenkins | Configure System 

아래 MSBuild를 섹션으로 스크롤을 클릭 MSBuild를 설치

내가 3.5 v4.0.30319

참고가 내 시스템에, MSBuild.exe를 위해 전체 경로를 정의 - 64 비트 시스템에서도 32 비트 도구의 경로를 지정하십시오. 그렇지 않으면 오류 메시지가 표시 될 수 있습니다.

MSBuild 64 비트를 사용하여 Windows Phone 응용 프로그램을 작성하는 것은 지원되지 않습니다. 젠킨스에 따라서

- 그것은 예를 들어 수 :

이름 : 버전 3.5

경로 : C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

이름 : 버전 4.0

경로 : C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

0

msbuild.exe가있는 경로를 PA에 추가 할 수도 있습니다 TH 시스템 환경 변수. 특정 작업을 실행중인 노드 (들)의 변수.

관련 문제