6

Tôi đang trong quá trình tạo ứng dụng để cho phép tự động triển khai ứng dụng, (https://github.com/twistedtwig/AutomdatedDeployments#readme).cách triển khai gói zip msbuild cục bộ hoặc từ xa mà không yêu cầu sự tham gia IIS

Ý tưởng là mọi thứ đều nằm trong kiểm soát nguồn, tệp ứng dụng, cấu hình ứng dụng cũng như cấu hình IIS. Ứng dụng của tôi cho phép giải pháp tự động triển khai, (thêm một tập hợp xây dựng bài đăng vào tệp sln/proj), sau khi xây dựng cho máy dev. Nó sẽ cho phép máy chủ CI tự động triển khai vào máy của nó để kiểm tra cũng như Máy chủ CI đẩy xây dựng thành công tới các máy chủ QA/Test/production. Một trong những vấn đề tôi có với msdeploy là yêu cầu của IIS phải được thiết lập với trang web/ứng dụng trước khi bàn tay, (mà ứng dụng của tôi đang cố gắng để có được xung quanh).

Cho đến nay tôi có thể tạo, cập nhật và xóa, các ứng dụng, trang web và ứng dụng thông qua tệp cấu hình tự động. Tôi có thể đồng bộ hóa các tập tin và thư mục tốt. Bước cuối cùng là sử dụng chuyển đổi/target: package trong msbuild để tạo các cấu trúc tệp sạch cho việc triển khai web. Ví dụ tôi sẽ chạy một lệnh như:

msbuild.exe myMvcSite.csproj /target:clean /target:package /p:Configuration=Release /p:_PackageTempDir=C:\websites\mySite /p:PackageLocation=C:\dropLocation\mySite.zip 

này tạo ra một tập tin zip tốt đẹp với các đường dẫn tập tin nội bộ là "C_C \ wbesites \ mysite" sẵn sàng (như tôi hiểu nó) để được đồng bộ hóa để sản xuất máy chủ.

Vấn đề của tôi là cách tôi triển khai tệp zip này. Tôi muốn nó độc lập với bất kỳ thông tin IIS nào, tức là tôi chỉ đơn giản là đẩy các tệp/thư mục đến một vị trí, (trên máy cục bộ cho các nhà phát triển hoặc từ xa để thử nghiệm, v.v.). Việc thiết lập IIS với các nhóm ứng dụng và các trang web vv sẽ được thực hiện một cách riêng biệt. Một số các lệnh (và đầu ra của họ) Tôi đã thử dưới:

"C:\Program Files\IIS\Microsoft Web Deploy v2\msdeploy.exe" -verb:sync -source:package="C:\Temp\deploy\installer\test\testPackage.zip" -dest:auto 
Info: Adding sitemanifest (sitemanifest). 
Error: The application pool that you are trying to use has the 'managedRuntimeVersion' property set to 'v2.0'. This application requires 'v4.0'. 
Error count: 1. 

"C:\Program Files\IIS\Microsoft Web Deploy v2\msdeploy.exe" -verb:sync -source:package="C:\website\installer\testPackage.zip" -dest:contentpath=C:\temp\mytest 
Error: Source (sitemanifest) and destination (contentPath) are not compatible for the given operation. 
Error count: 1. 

Lệnh đầu tiên tôi đang cố gắng để cho nó giải nén các tập tin với cấu trúc nó có. Nó có vẻ là khó chịu về công cụ hồ bơi ứng dụng mặc dù, (mà tôi không muốn nó liên lạc).

Cái thứ hai tôi đang cố gắng để có được xung quanh "tự động" bit nhưng điều này là không hạnh phúc hoặc.

Tôi đang cố gắng tìm nhiều thông tin về quy trình này. Cách duy nhất tôi có thể thấy làm thế nào tôi có thể đạt được điều này tại thời điểm này là không sử dụng msdeploy cho nó, nhưng để tạo nhiệm vụ của riêng tôi để tích hợp cấu trúc tập tin và làm các tập tin đồng bộ tự của tôi, (không lý tưởng).

+0

lỗi gì được bạn nhận được trên Lệnh thứ hai? –

+0

Lỗi: Nguồn (sitemanifest) và đích (contentPath) không tương thích với thao tác đã cho. Số lỗi: 1. (khối mã thứ hai trong câu hỏi của tôi). – Jon

Trả lời

1

Tôi đã kết thúc mã hóa xung quanh vấn đề này, thay vì có thể giải quyết vấn đề này.

Tôi lấy gói zip:

  1. giải nén ở một vị trí tạm thời
  2. tìm ra con đường cuối cùng nó sẽ được đi đến (thường là từ archive.xml)
  3. kiểm tra để xem nếu tôi sáp nhập các thư mục hoặc cài đặt sạch, (tức là tôi xóa thư mục đích trước).
  4. sao chép/đẩy tệp đến vị trí kết thúc, (thông thường với msdeploy).

tôi nguồn mở giải pháp của tôi như thế này: https://github.com/twistedtwig/AutomatedDeployments

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