2011-12-14 42 views
23

Tôi cố gắng để 'xây dựng' ứng dụng MVC3 web của tôi trong VS2010 tuy nhiên vẫn gặp lỗi sau:lỗi Build - 'System.Web.Mvc.ModelClientValidationRule' Xung đột

Lỗi 2 Các loại 'System.Web.Mvc .ModelClientValidationRule 'tồn tại trong cả hai' c: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll 'và' c: \ Program Files (x86) \ Microsoft ASP NET \ ASP.NET trang web \ v2.0 \ Assemblies \ System.Web.WebPages.dll 'C: \ Users \ brownp \ Documents \ Visual Studio 2010 \ Dự án \ Cab \ Cab \ Mô hình \ AccountModels.cs 223 28 Cab

Ngoài ra, mỗi khi tôi mở giải pháp, nó sẽ nhắc tôi như sau:

VS2010 error when opening solution

Tôi cài đặt qua Trình nền tảng web và cài đặt thành công tuy nhiên thư xuất hiện mỗi khi tôi mở giải pháp.

Có ai có thể cung cấp bất kỳ hướng dẫn nào không?

Cảm ơn Paul

Trả lời

44

Sau khi cài đặt MVC4 beta hôm nay, một vài dự án MVC 3 của tôi sẽ không biên dịch. (ModelClientValidationRule xung đột) Cách khắc phục là:

Edit:

ProjectName.csproj 

Thay đổi

<Reference Include="System.Web.WebPages"/> 

Để

<Reference Include="System.Web.WebPages, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/> 
+1

cuối cùng tôi đã có thể xác nhận rằng chỉ cần thêm Version = 1.0.0.0 là đủ. Do đó

+0

cho MVC5 sử dụng phiên bản = 2.0.0.0 –

+0

Chọn 'System.Web.WebPages' trong danh sách Tham chiếu và thay đổi thuộc tính' Specific Version' thành 'Sai' làm việc cho tôi. –

13

Ok thử giải pháp này ...

  1. Trong tệp Web.config gốc, thêm một mục mới với các trang web chính: Phiên bản và giá trị 1.0.0.0.

2.In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the name again and select Edit ProjectName.csproj.

3.Locate the following assembly references:

<Reference Include="System.Web.WebPages"/> 
    <Reference Include="System.Web.Helpers" /> 

Thay thế chúng với những điều sau:

<Reference Include="System.Web.WebPages, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/> 
<Reference Include="System.Web.Helpers, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/> 

4.Save những thay đổi, đóng dự án (csproj) tập tin bạn đang chỉnh sửa và sau đó nhấp chuột phải vào dự án và chọn Tải lại.

THAM KHẢO: http://forums.asp.net/t/1723108.aspx/1

cũng thử: http://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815

10

Xóa System.Web.WebPages từ tài liệu tham khảo giải pháp. Đó là tất cả.

3

Cách tốt nhất để tránh xung đột này là-

  1. Tới solution explorer
  2. Reference
  3. Nhấp chuột phải vào System.Web.WebPages
  4. Di

Bây giờ chạy ứng dụng của bạn và thưởng thức !

0

Vấn đề này, giống như bạn mô tả trong VS2010, xảy ra trong trường hợp của tôi trong VS2015 với phiên bản mới hơn của MVC (V5).

Đây là cách tôi đã có thể sửa chữa nó:

  • Cập nhật các gói NuGet lên phiên bản mới nhất.

  • Trong dự án của bạn, hãy xóa tham chiếu cho Microsoft.AspNet.WebPages. Sau đó, lại thêm tài liệu tham khảo bằng cách sử dụng các gói mới nhất (sử dụng "Browse ..."):

    C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40

  • Đảm bảo rằng tất cả các dự án đang tham chiếu cùng một assembly, nếu không, khắc phục chúng như đã mô tả ở trên. Sau đó, xây dựng lại giải pháp. Trong trường hợp của tôi, nó đã sửa lỗi.

Kiểm tra các tập tin Web.config, và sửa chữa các thiết lập như:

<appSettings> 
<add key="webpages:Version" value="3.0.0.0" /> 
<add key="webpages:Enabled" value="true" /> 
... 
<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
    </dependentAssembly>