Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Version conflict with System.Web.Mvc

Tags:

c#

asp.net-mvc

Now I read the book "ASP.NET MVC 5, Freeman", and I've created 3 projects:

  • SportsStore.Domain - for logic
  • SportsStore.UnitTests - for tests
  • SportsStore.WebUI - for views and controllers

Using NuGet command line I have install a lot of packages, like in the book:

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

But I think that I have install something wrong, because now I have error:

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

Can't understand, how to solve it

like image 992
Dima Kozyr Avatar asked Jan 08 '15 14:01

Dima Kozyr


5 Answers

I ran into this exact same problem myself and decided to update the versions of Microsoft.Aspnet.Mvc to the same version defined in the WebUI project. It did the trick for me and I thought I would share.

So in Package Manager Console, I ran:

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

Note: My version at the time of this writing was 5.2.3 . You state above that yours was 5.2.2, so use that instead.

like image 143
Doug Corbett Avatar answered Oct 18 '22 19:10

Doug Corbett


Normally when you upgrade/ install/ uninstall MVC package it depends on any other library for example I had issue that it was depending on MvcSiteMapProvider which was not compatible with MVC Version 5.2.7.

Here is solution for these type of issues

  1. Uninstall dependency library (for example in my case I uninstall MvcSiteMapProvide)
  2. Upgrade MVC version either use NuGet Package

  3. Manager or console. Install again uninstall library ( In my case I install again MvcSiteMapProvider)

Delete Obj folder, Clean and Build project.

like image 24
Muhammad Bilal Avatar answered Oct 06 '22 20:10

Muhammad Bilal


The error message in the build explains the problem in clear terms if you know how to read it.

It starts by telling you that the WebUI project uses 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

Then it tells you that one of your projects is referencing a different version:

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

Since you stated in your question that you installed 5.0.0.0 in your domain project, you will need to remove that version from the project, and install the correct version (in this case 5.2.2.0)

like image 10
thorkia Avatar answered Oct 18 '22 18:10

thorkia


You have to update your Microsoft Asp.NET MVC version. To do that;

  1. Click Tool and select "NuGet Package Manager"
  2. Select "Manage NuGet Package Manager Console"
  3. Search for Microsoft Asp.NET MVC and update it.
  4. Restart Visual Studio
like image 3
Chamara Avatar answered Oct 18 '22 20:10

Chamara


You may also try to replace the corresponding section by this section in web.config. Not sure if it will work but it will only take 2 minutes to try.

<dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.2.0" />
      </dependentAssembly>
like image 1
Allen King Avatar answered Oct 18 '22 19:10

Allen King