2015-01-08 18 views
8

Bây giờ tôi đọc cuốn sách "ASP.NET MVC 5, Freeman", và tôi đã tạo ra 3 dự án:Version mâu thuẫn với System.Web.Mvc

  • SportsStore.Domain - cho logic
  • SportsStore .UnitTests - cho kiểm tra
  • SportsStore.WebUI - cho quan điểm và điều khiển

Sử dụng dòng lệnh NuGet tôi đã cài đặt rất nhiều gói, như trong cuốn sách:

Instal-Package Microsoft.Aspnet.Mvc -version 5.0.0.0 -projectname SportsStore.Domain .. vv ..

Nhưng tôi nghĩ rằng tôi có cài một cái gì đó sai, bởi vì bây giờ tôi có lỗi:

Build "SportsStore.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" use "System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" of the later version than the assembly "System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", to which reference is made c:\Users\Дима\Documents\Visual Studio 2013\Projects\SportsStore\SportsStore.WebUI\bin\SportsStore.WebUI.dll SportsStore.UnitTests

không thể hiểu, làm thế nào để giải quyết nó

+3

gỡ cài đặt MVC pakcage khỏi gói Miền và lần này cài đặt nó với thẻ phiên bản là 5.2.2.0 (phiên bản 5.2.2.0) – thorkia

+0

Nó đã giúp, cảm ơn – dima

+0

Tôi đã thêm một câu trả lời - Tôi sẽ đánh giá cao nếu bạn đánh dấu nó là chính xác nếu nó giải quyết vấn đề của bạn – thorkia

Trả lời

10

các thông báo lỗi trong xây dựng giải thích các vấn đề về rõ ràng nếu bạn biết làm thế nào để đọc nó.

Nó bắt đầu bằng cách nói với bạn rằng dự án WebUI sử dụng 5.2.2.0:

SportsStore.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null use System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 

Sau đó, nó sẽ cho bạn biết rằng một trong những dự án của bạn được tham khảo một phiên bản khác nhau:

later version than the assembly System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 

Vì bạn nói trong câu hỏi của bạn rằng bạn đã cài đặt 5.0.0.0 trong dự án miền của mình, bạn sẽ cần xóa phiên bản đó khỏi dự án và cài đặt phiên bản chính xác (trong trường hợp này là 5.2.2.0)

+0

Trong trường hợp của tôi, điều này là do tôi đã sử dụng Nuget để tải xuống MVC5 trong dự án chính của mình, tuy nhiên dự án TEST được dàn dựng với MVC4 mặc định. Tôi chỉ đơn giản là thêm vào dự án Trsts một tham chiếu đến các DLL MVC5 trong dự án cốt lõi. – markau

1

Bạn cũng có thể thử thay thế phần tương ứng theo phần này trong web.config. Không chắc chắn nếu nó sẽ làm việc nhưng nó sẽ chỉ mất 2 phút để thử.

<dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.2.0" /> 
     </dependentAssembly> 
10

Tôi đã gặp chính vấn đề này chính xác và quyết định cập nhật phiên bản Microsoft.Aspnet.Mvc thành cùng phiên bản được xác định trong dự án WebUI. Nó đã làm cho các trick cho tôi và tôi nghĩ rằng tôi sẽ chia sẻ.

Vì vậy, trong Package Manager Console, tôi chạy:

Update-Package Microsoft.Aspnet.Mvc -version 5.2.3 -projectname SportsStore.Domain 
Update-Package Microsoft.Aspnet.Mvc -version 5.2.3 -projectname SportsStore.UnitTests 

Lưu ý: phiên bản của tôi tại thời điểm viết bài này là 5.2.3. Bạn nói ở trên rằng máy của bạn là 5.2.2, vì vậy hãy sử dụng nó thay thế.

2

Đến Tool -> Quản lý NuGet Package -> Manage NuGet Package Manager Console -> (search Result) cập nhật microsoft Asp.Net MVC sau đó khởi động lại chương trình của bạn

0

Tôi có vấn đề này với cùng một dự án và giải quyết nó rất dễ dàng, chỉ cần nhấp vào Build►Clean Solution, thao tác này sẽ xóa một số tệp trong thư mục bin và sau đó chỉ cần xây dựng lại giải pháp của bạn. điều này thực sự đã khắc phục được sự cố của tôi.

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