2012-05-04 26 views
44

Tôi đã một ứng dụng MVC 4 và chạy tốt trên máy DEV của tôi, nơi tôi đã cài đặt MVC 4 phần mở rộng cho VS 2010.Tôi có cần phải cài đặt MVC 3/4 trên máy chủ web để chạy ứng dụng MVC

Khi triển khai để các máy chủ web với IIS 7, tôi cần phải cài đặt MVC 4 hoặc dll nên bao gồm trong dự án của tôi là đủ?

Lý do tôi hỏi là chúng tôi cần cung cấp yêu cầu cho nhóm cơ sở hạ tầng.

Cảm ơn.

Trả lời

79

Bạn có thể chạy ứng dụng MVC mà không cần cài đặt MVC trên máy chủ của mình. Có một cái gì đó gọi là phụ thuộc triển khai trong Visual studio. Điều đó sẽ xuất bản của bạn MVC DLLs trong thư mục bin của bạn khi bạn xuất bản nó.

từ trang msdn,

này sẽ bổ sung thêm cụm (file DLL) cho một dự án trang web hoặc ứng dụng Web dự án. Khi bạn triển khai trang web hoặc ứng dụng của mình, các tệp này là được bao gồm trong dự án được triển khai. Điều này rất hữu ích nếu các ứng dụng hoặc các công nghệ mà dự án của bạn phụ thuộc vào chưa được cài đặt trên máy chủ lưu trữ dự án Web của bạn. Ví dụ, bạn có thể sử dụng tính năng này để triển khai một ứng dụng ASP.NET MVC 3 Web đến một máy chủ mà không có ASP.NET MVC 3 được cài đặt.

Kích chuột phải vào dự án và chọn Add Deployable phụ thuộc từ menu ngữ cảnh

enter image description here

Chọn những gì tất cả các file DLL bạn muốn được xuất bản

enter image description here

Sau khi nhấp OK, Bạn sẽ thấy một thư mục mới có tên _bin_deployableAssemblies. Bạn có thể làm thủ tục xuất bản bình thường ngay bây giờ và bạn sẽ có các dll trong thư mục bin của đầu ra xuất bản.

enter image description here

Kiểm tra bài này để biết thêm chi tiết http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Bạn nên có Visual Studio 2010 SP1. Nếu không, nó sẽ không được hiển thị trong menu ngữ cảnh khi bạn nhấp chuột phải vào dự án sẽ được xuất bản.

EDIT: Tính đến MVC4, tất cả các assembly cần thiết để chạy một ứng dụng MVC sẽ được tự động thêm vào thư mục bin, và bất kỳ ứng dụng MVC4 là bin-triển khai (có nghĩa là bạn có thể chạy nó trong một máy chủ mà không cần cài đặt một cách rõ ràng MVC). Vì lý do này, hộp thoại Bao gồm hội thảo triển khai đã bị xóa khỏi Visual Studio 2012

+1

Shyju Tôi có ứng dụng MVC4 không thêm tất cả các cụm cần thiết vào thùng (System.Web.Razor). Bạn có thông tin hoặc liên kết đến cách điều khiển này được kiểm soát/hoàn thành trong MVC4 không? Cảm ơn bạn – Joe

+2

Tôi đã tìm ra. Trong VS 2012, bạn phải thiết lập tham chiếu Copy Local thành True trong Properties của nó. Xem bài đăng: http://stackoverflow.com/questions/15145253/general-system-web-razor-error-also-postal-project Chỉ thấy rằng AvkashChauhan đã trả lời rằng bên dưới. – Joe

+1

Tôi đã cài đặt cụ thể các gói MVC 3 và MVC 4 trên máy chủ để tránh sao chép các thư viện MVC phổ biến mỗi lần (chúng tôi có rất nhiều trang web riêng biệt nhỏ và các thư viện chung tổng cộng tới gigabyte). Nó hoạt động hoàn hảo với MVC 3 (không chia sẻ tập tin nhị phân được sao chép), nhưng không làm việc ở tất cả với MVC 4 - nếu tôi đặt CopyLocal = false cho chia sẻ binraies, trang web không hoạt động. Vậy thì điểm của gói phía máy chủ là gì? Có cách nào được hỗ trợ thích hợp để cài đặt MVC 4 trên toàn cầu trong GAC, như có cho MVC3 không? – GSerg

4

Khi u tạo dự án cụ thể MVCx trong Visual Studio, bạn sẽ thấy nhiều tham chiếu MVC. * Được thêm vào dự án của bạn và theo mặc định tất cả các thuộc tính tham chiếu "Sao chép cục bộ" này được đặt là "Đúng" là một phần của giải pháp cuối cùng của bạn bất cứ khi nào bạn triển khai. Bạn cũng có thể xác minh rằng các tham chiếu cụ thể MVC này cũng là một phần của thư mục BIN của bạn.

Cuối cùng, khi bạn gói giải pháp này và xuất bản lên một Máy chủ Web cụ thể hoặc tới Windows Azure hoặc sử dụng WebDeploy, tất cả các tham chiếu này cũng sẽ là một phần của gói của bạn. Và bởi vì các tham chiếu này được vận chuyển trong gói của bạn nên khi bạn sẽ triển khai giải pháp, tất cả các tham chiếu cụ thể của MVC sẽ ở đó và do đó bạn không cần triển khai MVC cho các máy chủ cụ thể đó. Tôi cũng muốn thêm rằng bất cứ khi nào bạn thêm một tham chiếu cụ thể vào dự án của bạn trong Visual Studio, hãy đặt thuộc tính "Sao chép Địa phương" thành TRUE để tham chiếu sẽ luôn là một phần của giải pháp cuối cùng của bạn và sẽ tiết kiệm bạn từ rắc rối trong tương lai.

+0

Câu trả lời hay. Điều này rất quan trọng đối với MVC4 vì các Dependencies Add Deployable đã bị loại bỏ khỏi VS 2012. – Joe

6

Bạn không còn có tùy chọn để "Thêm phụ thuộc triển khai" trong Visual Studio 2012. Vì vậy, bạn sẽ phải làm điều đó bằng tay, bởi bin triển khai tất cả các hội đồng MVC:

Microsoft.Web.Infrastructure 
System.Web.Helpers 
System.Web.Mvc 
System.Web.Razor 
System.Web.WebPages 
System.Web.WebPages.Deployment 
System.Web.WebPages.Razor 

Một từng bước hướng dẫn được tìm thấy here.

+2

Vâng, tôi không thấy sự lựa chọn "Add dependable dependencies" trong VS2015. –

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