2015-01-08 19 views
8

Ora ho letto il libro "ASP.NET MVC 5, Freeman", e ho creato 3 progetti:conflitto Versione con System.Web.Mvc

  • SportsStore.Domain - per la logica
  • SportsStore .UnitTests - per le prove
  • SportsStore.WebUI - per le viste e controllori

Uso riga di comando NuGet ho installare un sacco di pacchetti, come nel libro:

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

Ma penso che ho installare qualcosa di sbagliato, perché ora ho errore:

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

non può capire, come risolverlo

+3

disinstallare il pakcage MVC dal pacchetto Domain e questa volta installarlo con il tag versione 5.2.2.0 (versione 5.2.2.0) – thorkia

+0

Mi è stato utile, grazie – dima

+0

Ho aggiunto una risposta - Apprezzerei se lo contrassegnassi come corretto se risolvesse il tuo problema – thorkia

risposta

10

il messaggio di errore nella build spiega il problema in termini chiari se si sa come leggerlo.

Si inizia col dirvi che il progetto WebUI utilizza 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 

Poi ti dice che uno dei vostri progetti fa riferimento una versione diversa:

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

Dal momento che lei ha dichiarato nella tua domanda che hai installato 5.0.0.0 nel tuo progetto di dominio, dovrai rimuovere quella versione dal progetto e installare la versione corretta (in questo caso 5.2.2.0)

+0

Nel mio caso, ciò è dovuto al fatto che ho utilizzato Nuget per scaricare MVC5 nel mio progetto principale, tuttavia il progetto Tests era impalcato con il MVC4 predefinito. Ho semplicemente aggiunto al progetto Trsts un riferimento alle DLL MVC5 nel progetto principale. – markau

1

Si può anche provare a sostituire la sezione corrispondente da questa sezione in web.config. Non sono sicuro se funzionerà, ma ci vorranno solo 2 minuti per provare.

<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

mi sono imbattuto in questo stesso problema me stesso e ha deciso di aggiornare le versioni di Microsoft.Aspnet.Mvc alla stessa versione definita nel progetto WebUI. Ha fatto il trucco per me e ho pensato di condividere.

Quindi, in console di Package Manager, mi sono imbattuto:

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

Nota: mia versione al momento in cui scriviamo è stato 5.2.3. Dichiari sopra che il tuo era 5.2.2, quindi usa quello.

2

Vai Tool -> Gestione NuGet Package -> Gestisci NuGet Console Package Manager -> (risultato) aggiornamento di Microsoft Asp.Net MVC quindi riavviare il programma

0

ho avuto questo problema con la lo stesso progetto e per risolverlo è molto semplice, basta fare clic su Build►Clean Solution, questo cancellerà alcuni file nella cartella bin e successivamente ricostruirà la tua soluzione. questo ha effettivamente risolto il mio problema.

Problemi correlati