2008-11-04 44 views
14

nếu tôi quyết định sử dụng tùy chọn 'xuất bản' cho trang web ASP.NET của tôi, thay vì một Dự án Triển khai Web, tôi có thể làm những thứ tùy chỉnh không? Hoặc tôi cần phải gắn bó với WDP nếu tôi muốn làm công cụ tùy chỉnh msbuild trong biên dịch/triển khai.Trang web ASP.NET 'Xuất bản' so với Dự án Triển khai Web

Trả lời

4

Tôi nghĩ tùy chọn xuất bản là một phần của bộ công cụ VS.NET dành cho nhà phát triển để sử dụng để xuất bản các trang web trên máy dev. Nó không thực sự được xây dựng để là một triển khai thực sự.

Nếu bạn cần hành động tùy chỉnh, Dự án triển khai web sẽ phù hợp hơn với triển khai thực mà nhiều người không phải nhà phát triển chạy thường xuyên và bạn muốn tạo với mỗi bản dựng.

tôi cũng sẽ xem xét ba lựa chọn khác:

  • PowerShell: Một cách tốt để kịch bản chống lại IIS, thiết lập các trang web, vv Bạn thậm chí có thể xây dựng cmdlets từ mã OO (như C#) mà tập lệnh của bạn có thể gọi. Nhiều công ty CNTT chuyên nghiệp sử dụng nó để triển khai các trang web lớn.

  • MSDeploy: Một công cụ mới triển khai cho các trang web có thể tái tạo một vroot trên một số máy chủ. Rất tốt để có hình ảnh vàng của bạn và sau đó nổ nó ra đến những nơi khác nhau.

  • C# ứng dụng: Nếu bạn là một nhà phát triển hơn tiên tiến, bạn luôn có thể viết ứng dụng của riêng bạn mà xcopies file (thông qua Process) và sử dụng WMI để cấu hình IIS. Khó hơn, nhưng bạn có toàn quyền kiểm soát.

1

Có vẻ như bạn có thể tùy chỉnh tác vụ Xuất thông qua mục tiêu MSBuild _CopyWebApplication. Hoặc bạn ít nhất có thể tạo một tập tin thực thi sẽ gọi đích đó, mà bạn có thể tùy chỉnh.

Chi tiết khác herehere.

2

Bạn có thể sử dụng tùy chọn MSBuild tùy chỉnh. Trong thực tế, bạn có thể thực thi MSBuild trên một tệp sln được cấu hình để xuất bản dưới dạng một trang web, và sau đó sao chép các tệp trang web được biên dịch trước vào một máy chủ web. Chúng tôi làm điều đó trong nội bộ bằng cách sử dụng Cruise Control.net từ Thoughtworks.

Các tập tin sln chứa thông tin về nơi trang web precompiled sẽ được đặt:

Release.AspNetCompiler.VirtualPath = "/PrecompiledWeb" 
Release.AspNetCompiler.PhysicalPath = "..\Web\" 
Release.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\" 
Release.AspNetCompiler.Updateable = "true" 
Release.AspNetCompiler.ForceOverwrite = "true" 
Release.AspNetCompiler.FixedNames = "true" 
Release.AspNetCompiler.Debug = "False" 
2

Chúng tôi không sử dụng xuất bản để triển khai các dự án web của chúng tôi, nhưng chúng tôi sử dụng để sử dụng Web Triển khai Dự án. Khi chúng tôi chuyển sang Visual Studio 2008, chúng tôi gặp phải một loạt vấn đề với họ, vì vậy chúng tôi đã loại bỏ chúng.

Điều tôi có thể nói với bạn là chúng tôi có thể thay thế chức năng WDP mà chúng tôi đang sử dụng với aspnet_merge.exe. Chúng tôi sử dụng một sự kết hợp của msbuild và aspnet_merge.exe trong một kịch bản để thực hiện các triển khai của chúng tôi.

+0

Wow. Tôi thậm chí không nghe nói về aspnet_merge cho đến khi bạn đề cập đến nó. Dưới đây là các tài liệu: http://msdn.microsoft.com/en-us/library/bb397866.aspx –

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