2011-12-18 20 views
9

Tôi đã nhận MSDeploy/WebDeploy làm việc để cập nhật ứng dụng web của mình - điều này giải quyết khoảng 90% vấn đề triển khai của tôi cho những thứ tôi đã đặt cho đến nay.Sử dụng MSDeploy để sao chép tệp thực thi vào máy chủ và sau đó chạy cùng một

Điều tôi muốn làm, ngoài ra, là sao chép nội dung thực thi - một thư mục - đến máy chủ và sau đó chạy tệp thực thi đó (cập nhật giản đồ).

Tôi có thể thấy rằng điều này nên có thể, nhưng tôi đang đấu tranh để đặt các mảnh với nhau (điều này rõ ràng là một trường hợp cạnh).

Cụ thể:

  • Tôi không muốn sao chép tập tin thực thi (thư mục) vào thư mục web.
  • tôi cần phải xem xét kết quả của hoạt động thực thi (có ích để trả lại trạng thái thất bại, mặc dù nếu có ý nghĩa này sẽ được ném ra bởi những kiểm tra bài triển khai)

Càng nhiều càng tốt bất cứ điều gì do đó, những gì các lệnh cụ thể theo thứ tự nào - nếu tôi có thể tìm thấy một mô hình tôi có thể làm cho nó hoạt động nhưng tôi đang gặp khó khăn để tìm ra một mô hình


Ghi chú:

nó xảy ra với m e rằng tôi có thể sao chép thư mục vào thư mục web, chạy mã và sau đó xóa thư mục một lần nữa nhưng tôi không thoải mái với điều này và trong mọi trường hợp sẽ tốt hơn nếu có sẵn mã trên triển khai bài đăng trên máy chủ.

của nó cũng đáng chú ý là tôi thực sự thực sự hài lòng với cách tôi duy trì schemas cơ sở dữ liệu để thực tế rằng đó là những gì thực thi đang làm là ngẫu nhiên cho câu hỏi

Trả lời

12

Web Triển khai thực sự cung cấp khá nhiều tùy chọn đây. Các tùy chọn bạn chọn loại phụ thuộc vào số lượng thứ bạn muốn đưa vào một lệnh.

Để nhận thư mục chứa các tệp đến đích, bạn có thể sử dụng nhà cung cấp dirPath của Triển khai web để thực hiện sao chép đến vị trí bạn chọn. Để sao chép một tệp riêng lẻ, bạn có thể sử dụng nhà cung cấp filePath. Nếu nguồn sao chép của bạn có nhiều tệp nhỏ, Web Deploy thực sự hiệu quả hơn RoboCopy qua mạng (xem bài đăng blog của tôi Web Deploy vs. Robocopy).

Để chạy tệp lệnh mà bạn đã sao chép vào máy chủ đích, bạn có thể sử dụng nhà cung cấp runCommand. (Đây là một điều quan trọng, tôi chắc chắn sẽ đọc lên nó.)

Lưu ý rằng tại thời điểm này, chúng ta đang nói về ít nhất hai lệnh Triển khai Web riêng biệt, không tính bất kỳ hoạt động triển khai Web “thông thường” nào như triển khai một trang web hoặc máy chủ web.

Tuy nhiên, nếu mục tiêu của bạn là đạt được mọi thứ trong một thao tác Triển khai Web, bạn có thể sử dụng nhà cung cấp manifest. Tạo tệp kê khai tùy chỉnh chỉ định một loạt các hoạt động của nhà cung cấp Web Deploy sẽ thực hiện lần lượt. Sau đó, trong lệnh Triển khai Web, trỏ nhà cung cấp tệp kê khai đến tệp kê khai tùy chỉnh. Để biết thêm thông tin về cách tiếp cận này, hãy xem Creating and Synchronizing a Custom Manifest.

Nếu bạn sử dụng các nhà cung cấp manifest, bạn có thể xác định dirPath nhà cung cấp trong file manifest để sao chép các tập tin hoặc các tập tin trên, và sau đó xác định runCommand cung cấp trên dòng tiếp theo để thực sự chạy file thực thi đó bạn đã sao chép.

Cuối cùng, một cách tiếp cận một bước ngắn của việc sử dụng một file manifest là sử dụng preSync và/hoặc postSync dòng lệnh chuyển sang chạy một lệnh trên máy chủ đích trước hoặc sau khi Web thực tế triển khai hoạt động diễn ra . Bạn có thể tìm thêm thông tin về preSyncpostSync trên trang Web Deploy Operation Settings.

Tất cả các trang được tham chiếu đều có các ví dụ cú pháp, do đó sẽ giúp ích.

+0

Cảm ơn, điều đó rất hữu ích - dirPath + runCommand nên thực hiện thủ thuật độc đáo (tôi rất vui khi chạy nhiều bước triển khai web khi cần thiết và thực tế tôi cần quy trình thất bại trước khi triển khai trang nếu lệnh chạy không thành công) – Murph

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