2011-01-16 29 views
7

Tôi đang cố gắng chạy tương lai cho Mvc3 RTM. Không có .dll bao gồm sau khi cài đặt mvc3 từ webPI.Tương lai RTM MVC3 - Cài đặt Microsoft.Web.Mvc

Tôi đã tải xuống nguồn và đã cố gắng tự xây dựng, nhưng khi tôi thả nó vào giải pháp của mình và thêm không gian tên vào web.config dưới thư mục Chế độ xem, tôi nhận được lỗi sau trên mỗi trang:

S0012: The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null'. 

Tôi đoán đó là do đặt tên mạnh hoặc điều gì đó dọc theo các dòng đó.

Làm cách nào để tôi có thể bắt đầu và chạy với tương lai?

Edit:

1) Tôi có thể sai, nhưng từ bộ nhớ, khi bạn đã tải về và cài đặt phiên bản trước của MVC, nó sẽ cung cấp cho bạn một Microsoft.Web.Mvc .dll trong Chương trình File/Microsoft ASP. NET/Asp .net MVC2. Với cài đặt WebPI, chỉ có System.Web.Mvc.dll ở vị trí đó.

2) Nó chắc chắn không nằm trong GAC ... nó không phải là nơi để lắp ráp này (tôi cũng đã kiểm tra chỉ để chắc chắn)

3) Các dự án không hoạt động là dự án mục tiêu. Tôi đã tạo một ứng dụng 'Asp .net Mvc 3' mới chạy nó để đảm bảo nó hoạt động (nó đã làm). Sau đó, tôi đã thêm một tham chiếu đến assembly mà tôi đã xây dựng từ Mã nguồn Mvc 3 và thay đổi web.config dưới thư mục 'Views'.

<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="Microsoft.Web.Mvc" /> 
    </namespaces> 
</pages> 

4) Ngay sau khi tôi loại bỏ các yếu tố không gian tên và dll, dự án các công trình một lần nữa.

+0

Bạn đang sử dụng một MVC3 mẫu dự án trong cả hai VS hoặc VWD ? Dự án nào nhận được lỗi, dự án mục tiêu hoặc dự án tương lai? Khi bạn nói không có một dll bao gồm trong cài đặt của MVC3, bạn có tất cả các công cụ hỗ trợ cho phiên bản nào của VS bạn đang sử dụng? Bạn có thể cần phải cài đặt lại. – kim3er

Trả lời

10

Bạn có thể tải xuống source code of MVCContrib và bên trong thư mục bin/AspNetMvc bạn sẽ tìm thấy hội đồng Microsoft.Web.Mvc được biên soạn với ASP.NET MVC 3.0.

+1

Điều đó đã làm được điều đó, cảm ơn! –

+0

Thánh bò, tôi không thể tin rằng đây là cách duy nhất để có được điều này ... Cảm ơn bạn rất nhiều – CubanX

+0

Chỉ cần tải về nó, không có Microsoft.Web.Mvc.dll có – Ash

-1

Bạn cần phải bao gồm lắp ráp trong web.config cũng như không gian tên - nếu bạn bắt đầu với một dự án mvc2 bạn có thể có một dòng trong đó như

Điều đó sẽ cần phải thay đổi đến 3,0 dĩ nhiên và bạn cũng có thể cần cập nhật chuyển hướng ràng buộc.

Khi bạn nói không có dll đi kèm, bạn đã kiểm tra gac chưa? Nếu nó ở đó bạn không cần một tập tin cục bộ cho hệ thống để tìm nó dựa trên tên mạnh.

Nếu bạn đã xây dựng từ nguồn và do đó phiên bản của bạn có tên mạnh khác, bạn có thể gặp sự cố với thành phần của bên thứ ba tham chiếu đến phiên bản chính thức, nhưng miễn là tên trong cấu hình web phù hợp với bạn công cụ cốt lõi. Bạn sẽ muốn thêm khóa của riêng mình để mã thông báo không phải là giá trị mặc định.

0

Khi bạn xây dựng dự án MvcFutures, bạn sẽ phải thay thế các tham chiếu của System.Web.Mvc và System.Web.WebPages thành những người trong GAC nếu không bạn sẽ phải xây dựng dự án đích của mình dựa vào mã nguồn Mvc mà bạn đã tải xuống.

Cả hai tùy chọn đều hoạt động tốt cho bạn.