7

Tôi biết đủ để biết rằng chúng tôi cần để ứng dụng của chúng tôi triển khai với một hành động người dùng. Tuy nhiên, tôi không biết:Tài nguyên triển khai tự động

  1. Một số công cụ tốt để sử dụng trong cửa hàng .NET là gì?
  2. Làm cách nào để quản lý các thay đổi cấu hình cho từng môi trường của bạn?

Ai đó có thể chỉ cho tôi một số tài nguyên tốt để tích hợp liên tục. Tôi muốn xem một số lý thuyết cũng như hướng dẫn thực hành từng bước.

Chỉnh sửa:
Tôi cần tự động triển khai web ngay bây giờ; tuy nhiên, tôi cũng muốn tìm hiểu cách thực hiện việc này cho các ứng dụng dành cho máy tính để bàn.

+0

Những loại môi trường - web hoặc máy tính để bàn? –

Trả lời

5

tôi đã viết một bài đăng blog có thể hữu ích:

Visual Studio Web Deployment Projects

Đó là một năm rưỡi tuổi, nhưng nói về một số mới (lúc bấy giờ) mẫu dự án cho VS và cũng là một lệnh tiện ích trực tuyến từ nhóm IIS được gọi là MSDeploy. Họ có vẻ thực sự hứa hẹn và xuất hiện chúng lý tưởng cho việc nhắm mục tiêu nhiều cấu hình xây dựng, đồng bộ hóa nhiều máy chủ trên một trang trại và kiểm soát nhiều hơn về sản lượng thực tế triển khai trang web của bạn.

Có lẽ đến nay các công nghệ cũng đã trưởng thành.

1

Visual Build Pro từ Kinook là một công cụ khá tốt để triển khai một cú nhấp chuột. Nó rất dễ sử dụng và có rất nhiều khả năng. Tôi đã sử dụng nó trong nhiều năm. Tất nhiên cũng có NAnt, mà tôi đã không sử dụng nhiều.

Theo như quản lý thay đổi cấu hình, tôi quản lý nhiều tệp cấu hình với tiện ích mở rộng cho biết môi trường triển khai và sau đó chỉ cần đổi tên đơn giản làm bước trong tập lệnh xây dựng của tôi.

Ví dụ, nếu tôi đang triển khai để thử nghiệm, tôi có thể có một tập tin cấu hình được gọi là Web.test.config, được tự động đổi tên thành Web.config bởi kịch bản xây dựng.

2

Chúng tôi đã thành công lớn với Windows Installer XML. Về cơ bản, bạn xác định các thành phần tạo nên ứng dụng của bạn trong XML và WiX biến nó thành một gói MSI. Tài liệu tương đối thưa thớt, nhưng tệp CHM được cung cấp kết hợp với tìm kiếm fu sẽ giúp bạn có một chặng đường dài ở đó.

Các gói MSI có thể lấy thông số đầu vào cho các giá trị cấu hình và thực hiện các thao tác để thao tác các tệp cấu hình sau khi ứng dụng được triển khai. Ví dụ: "msiexec/i MyCustomPackage.msi SqlServer = SomeSQLBox" có thể triển khai ứng dụng web và sửa đổi mục nhập cấu hình cho hộp SQL phụ thuộc.

+1

Gói MSI phù hợp cho các ứng dụng windows, nhưng đối với các ứng dụng web, tôi cảm thấy rằng quá trình cập nhật gia tăng sẽ tốt hơn. Ví dụ, VBP (như đã đề cập trong phản hồi của tôi) có thể phát hiện rằng chỉ một trang ASPX duy nhất đã thay đổi và * chỉ * triển khai, giúp tiết kiệm thời gian chết, thời gian chờ của phiên, v.v. – jeremcc

0

tôi thấy hai câu hỏi khác nhau:

  • Đối với điều triển khai: Việc triển khai ClickOnce nên làm điều đó. Bạn chỉ cần xuất bản ứng dụng máy tính để bàn của mình bằng cách vào VS.net tại menu Xây dựng> Xuất bản. VS.net sau đó biên dịch một trang web và một setup.exe. Khi người dùng có trình duyệt IE hoặc Firefox và .net 3.5 SP1 nhấp vào liên kết, nó sẽ chạy ngay lập tức. ClickOnce cũng xử lý việc cập nhật cho bạn và có API mở rộng để phát triển cho nó.
  • Tích hợp liên tục là một điều rất khác. Tôi đề nghị bạn google cho 'CruiseControl.net' và tải xuống và thử nhiều tài nguyên nhất có thể. Về cơ bản nó là một máy chủ xây dựng nhưng bạn có thể kết nối nó với SVN, NUnit để thử nghiệm và vân vân. Tôi sẽ không đề nghị mua một cuốn sách cho một sản phẩm dễ bay hơi như vậy. Tốt nhất là tải xuống và thử mọi thứ.
0

CruiseControl.NET cho giải pháp ContinuousIntegration của bạn. Để triển khai, tôi sử dụng tệp dự án MSBuild. Ở trên cùng, tôi giữ tất cả các tệp cấu hình máy chủ. Tôi vượt qua để MSBuild trên thông qua các thông số một tài sản máy chủ mà nói với MSbuild mà cấu hình các giá trị để sử dụng và sau đó hoàn thành việc triển khai. Việc triển khai duy nhất mà không thể được thực hiện ngay từ CruiseControl là một trong những máy chủ trực tiếp của chúng tôi. Chúng tôi để lại dòng lệnh MSBuild chỉ vì vậy chúng tôi không vô tình nhấn một nút, hoặc vì vậy ai đó có quyền truy cập vào CC.NET web bảng điều khiển hiện nó chỉ chơi xung quanh.

1

Tôi đã viết một bài khá chi tiết blog nào sử dụng TeamCity, và các dự án triển khai Web để tự động xây dựng và triển khai như một khởi động ở đây:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

Tôi đã sau đó thêm vào này để hiển thị FTP Ngoài

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Một dòng chảy quá trình cơ bản là khá đơn giản:

  • Sử dụng một TeamCity xây dựng máy chủ tôi tải về từ repo SVN của tôi
  • tôi xây dựng và triển khai các trang web vào một thư mục địa phương về việc xây dựng máy chủ
  • Tôi bắn một dòng lệnh FTP client có hỗ trợ scripting gọi
  • WinSCP sử dụng các MSBUILD nhiệm EXEC (http://winscp.net/)
  • Tải lên tất cả các trang web của tôi nội dung
  • Có [chèn uống] của sự lựa chọn

sau đó tôi chắc chắn tha t tôi chỉ triển khai Trunk của repo SVN của tôi, và phát triển và kiểm tra tất cả mọi thứ trong một chi nhánh trước khi sáp nhập - theo cách này chỉ những công cụ được thử nghiệm mới được triển khai. Thêm Thử nghiệm tự động vào chu kỳ xây dựng của bạn và bạn đã có một trận đấu được thực hiện trên thiên đàng.

Một số công cụ miễn phí tuyệt vời để đi là: