2012-04-19 43 views
25

Tôi có ứng dụng .net được xây dựng trên .net framework 3.5, tôi đang cố gắng xây dựng ứng dụng này trên máy chủ Jenkins CI. Tôi đã thêm plugin MSBuild và đã thêm đường dẫn vào tệp .exe của phiên bản 2.0, 3.5 và 4.0 của MSBuild. Nhưng quá trình xây dựng của tôi không thành công bằng cách hiển thị thông báo lỗi bên dưới.xây dựng ứng dụng .net trong Jenkins bằng MSBuild

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 

Ai đó có thể giúp tôi không? .. ??

Trả lời

66

Để làm cho plugin MSBuild hoạt động, bạn cần định cấu hình plugin trong màn hình quản lý Jenkins.

Chú ý: trong các phiên bản mới hơn Jenkins bạn tìm thấy những cấu hình MSBuild trong Configuration Tool toàn cầu:

enter image description here


Jenkins MSBuild Installation Configuration

Note "Name" lĩnh vực, nơi mà tôi đã được gọi là cấu hình cụ thể này v4.0.30319. Bạn có thể gọi nó là bất cứ điều gì bạn thích, nhưng lý tưởng là tên bằng cách nào đó sẽ đề cập đến phiên bản.

Bạn sẽ cần phải tham khảo tên này sau trong Dự án Jenkins không thành công.

Lưu ý: Cảnh báo màu vàng ngụ ý rằng trường Đường dẫn đến MSBuild phải được điền bằng tên thư mục chứ không phải tên tệp. Trong thực tế, bạn cũng cần nhập tên tệp ở đây (ví dụ: msbuild.exe) hoặc bước xây dựng sẽ không thành công.

Trong dự án Jenkins không thành công, hãy chuyển đến bước xây dựng MSBuild.

Trường đầu tiên trong bước xây dựng là "Phiên bản MSBuild". Nếu bạn đã tạo bước xây dựng trước khi định cấu hình bất kỳ phiên bản MSBuild nào, giá trị ở đây sẽ là (mặc định).

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

Sau khi cấu hình một hoặc nhiều phiên bản MSBuild, thả xuống sẽ được áp dụng với các cấu hình có sẵn. Chọn một trong những bạn yêu cầu.

Bạn có thể thấy ở đây tôi đã chọn cấu hình có tên phù hợp với cài đặt ở trên.

Jenkins MSBuild build-step, with named msbuild configuration selected

+0

Tôi đã xem cảnh báo màu vàng và xóa 'msbuild.exe' và tiếp tục gặp lỗi .. câu trả lời của bạn là người duy nhất có đề cập đến bất cứ điều gì về điều đó, và rất vui vì bạn đã thêm điều đó! – iamserious

+0

Tôi có thể xây dựng hai dự án đó chỉ sử dụng một dự án ** Xây dựng một dự án Visual Studio hoặc giải pháp sử dụng phần MSBuild ** không? – MichaelMao

+0

Nếu bạn đang sử dụng VS2015/C# 6 với msbuild, bạn nên chỉ định đường dẫn tệp msbuild thành *** C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin ***, nhờ giải pháp jessehouwing: http://stackoverflow.com/a/32008030/1677041 – Itachi

5

Tôi nghĩ bạn nên đặt một đường dẫn tuyệt đối cho "msbuild.exe" trong cấu hình Jenkins của bạn, ví dụ:

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

Anh ấy đúng. Có lỗi trong trình cắm. Cấu hình Jenkins yêu cầu đường dẫn đến MSBuild.exe, nhưng thực sự phải là đường dẫn đầy đủ của MSBuild.exe. Nó sẽ cảnh báo bạn, nhưng bạn có thể lưu nó theo cách này và nó hoạt động. – justdan23

-2

Bạn có thể thử thực hiện lệnh

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

, mà sẽ tạm thời cập nhật biến đường dẫn môi trường của bạn để phản ánh môi trường xây dựng VS2010. Thực hiện điều này trước khi bạn gọi MSBUILD và xem điều gì xảy ra. Tôi sử dụng điều này trong các kịch bản xây dựng của riêng tôi mà không có vấn đề gì.

Lưu ý phụ; nó rất có khả năng phản tác dụng để có nhiều phiên bản của MSBUILD trên PATH của bạn. Tập trung vào việc làm một phiên bản làm việc và đi từ đó.

+2

Tôi khuyên bạn nên sử dụng Trình cắm thêm MSBuild cho Jenkins. Tuy nhiên, nếu bạn muốn xây dựng một kịch bản dòng lệnh, không sử dụng% comspec%, thay vào đó hãy sử dụng 'CALL' mà không có bất kỳ tham số bổ sung nào và môi trường sẽ vẫn còn trong phần còn lại của tập lệnh của bạn. Ví dụ: GỌI "C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat" x86 – justdan23

12
Jenkins | Manage Jenkins | Configure System 

cuộn xuống phần MSBuild và nhấp MSBuild cài đặt

xác định đường dẫn đầy đủ đến msbuild.exe, trên hệ thống của tôi, tôi có 3.5 và v4.0.30319

Note - chỉ định đường dẫn đến các công cụ 32 bit ngay cả trên hệ thống 64 bit, nếu không bạn có thể nhận được thông báo lỗi:

Xây dựng ứng dụng Windows Phone sử dụng MSBuild 64 bit không được hỗ trợ.

Vì vậy, trong Jenkins - nó có thể là ví dụ:

Tên: Phiên bản 3.5

Đường dẫn: C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

Tên: Phiên bản 4.0

Đường dẫn: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

0

Bạn cũng có thể thêm đường dẫn nơi tệp msbuild.exe, vào PA Biến môi trường hệ thống TH của nút (hoặc nút) đang chạy công việc cụ thể đó.

Các vấn đề liên quan