2013-06-02 28 views
5

Tôi đang cố gắng thiết lập máy chủ xây dựng bằng cách sử dụng Jenkins (trên Windows Server 2012) sẽ chịu trách nhiệm xây dựng (với cấu hình chuyển đổi) và các dự án ASP.NET MVC/Web API đóng gói (zip). vị trí (C:/Đã xuất bản).Tôi cần gì để thiết lập một máy chủ xây dựng Jenkins có thể xây dựng các dự án ASP.NET mà không có Visual Studio?

Về cơ bản, tôi cần Visual Studio Web Publish for File System qua dòng lệnh mà không phải cài đặt Visual Studio. Quá trình nén có thể được trì hoãn cho dòng lệnh thông qua Jenkins.

Từ tìm kiếm, các bước sau đây là những gì tôi đã làm như vậy cho đến nay:

  1. cài đặt Jenkins
  2. cài đặt Jenkins MSBuild Plugin
  3. sao chép 'C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets 'vào máy chủ xây dựng của tôi
  4. Cài đặt Windows 8 SDK
  5. Tạo công việc Jenkins lấy mã nguồn từ repo
  6. Thêm đối số dòng lệnh vào tác vụ MSBuild ....

Bước 6 là những gì làm tôi bối rối. Tôi đã thử nhiều đề xuất trực tuyến, nhưng không thể tìm ra cách để có được hiệu ứng đầy đủ của lệnh xuất bản của Visual Studio.

Một gợi ý là sử dụng một công bố các thuộc tính thông như các thông số:

/p:WebPublishMethod=FileSystem 
/p:LastUsedBuildConfiguration=Release 
/p:LastUsedPlatform=AnyCPU 
/p:ExcludeApp_Data=False 
/p:publishUrl=C:\Published\ 
/p:DeleteExistingFiles=True 

Nhưng đó doesnt di chuyển bất kỳ tập tin trên để c:\Published\.

Trả lời

8

Tôi cần sao chép các tệp trong C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web từ hộp dev của tôi đến cùng một vị trí trên máy chủ xây dựng, sau đó thuộc tính hoạt động tốt.

Ngoài các bước tôi nêu ở trên, dưới đây là các bước thêm tôi phải làm gì để làm việc này:

  1. Thay đổi dịch vụ Jenkins Windows để đăng nhập as Administrator
  2. Sao chép các tập tin trong C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web từ máy tính dev của tôi ở cùng một vị trí trên máy chủ dựng
  3. Khôi phục gói NuGet đã bật bằng cách chạy [Environment]::SetEnvironmentVariable("EnableNuGetPackageRestore", "true.", "Machine") trong Powershell
Các vấn đề liên quan