2014-04-24 11 views
5

Ho il seguente pacchetto di data NuGet:Impossibile aggiornare package NuGet "Microsoft ASP.NET MVC" dalla versione 4.0.20710.0 a 5.1.2

enter image description here

Tuttavia, quando si fa clic su il pulsante Aggiorna, viene visualizzato il seguente errore:

Errore: l'aggiornamento di "Microsoft.AspNet.Mvc 4.0.20710.0" a "Microsoft.AspNet.Mvc 5.1.2" non è riuscito.

Unable to find a version of 'AspNetMvc' that is compatible with 'Microsoft.AspNet.Mvc 5.1.2'.

Questo accade su entrambi i progetti che utilizzano questo pacchetto:

enter image description here

Io corro su .NET 4.5 framework su entrambi i progetti. C'è qualcosa che posso fare per aggiornare questo pacchetto, o semplicemente non è compatibile con 4.5, o dovrei usare un diverso pacchetto NuGet adesso?

risposta

2

Per quanto posso dire, l'aggiornamento alla 4.5.1 non ha effettivamente risolto il problema. In effetti sono stato in grado di risolverlo lasciando il framework di destinazione a 4.5.

Ecco la magia nera che ho eseguito che sembrava risolverlo. Innanzitutto, disinstallare le 3 vecchie librerie MVC (come suggerito in this comment), reinstallare i nuovi, ricostruire. Almeno per questa parte potrei farlo nell'interfaccia utente dei pacchetti NuGet Manage, in cui l'aggiornamento non è riuscito nello stesso punto. A questo punto NuGet è felice, puoi compilare, ma la tua app non funzionerà.

Successivamente, assicurarsi di seguire assolutamente ogni passaggio nel Upgrade ASP.NET 4 document referenced in the other comment. Quando ho omesso accidentalmente un solo passaggio, ricevo strani errori non intuitivi (ovvio in retrospettiva). Ad esempio, è necessario aggiornare due file Web.config separati, root e uno nella directory Views. Devi trovare i vecchi numeri di versione e cambiarli manualmente in quello, dove la radice Web.config viene a volte riparata automaticamente per te. Altrimenti vedrei errori spaventosi come "regole di sicurezza dell'eredità violate dal tipo System.Web.WebPages.Razor.WebPageRazorHost" e così via. Dovrei aver copiato ogni messaggio di errore per i posteri, suppongo, ma il punto è che per ogni errore tornerei a quella guida all'aggiornamento, controlla i passaggi, mi rendo conto di averne perso uno, di correggerlo e di ottenere un nuovo errore fino a quando non sono tutti andato via.

Ci sono buone notizie. Almeno nel mio caso, nonostante tutti i terribili avvertimenti che devi trovare per trovare incompatibilità, il resto dell'app ha funzionato come prima senza alcuna modifica.

2

MVC 5.1 è basato su .NET 4.5.1. Questo è il primo dei tuoi problemi. È necessario modificare il framework di destinazione in ".NET Framework 4.5.1" nel menu di scelta rapida del progetto> Proprietà.

Se ciò non funziona, è possibile disinstallare il pacchetto MVC e reinstallarlo.

La mia esperienza è stata che l'aggiornamento da versioni principali può essere un problema, e la vostra attenzione ai dettagli, specialmente quando si apportano modifiche a web.config, è fondamentale. Puoi controllare la guida passando da 4 a 5 qui e aggiustare di conseguenza per 5.1: http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

A seconda della complessità del progetto, può essere più semplice trasferire semplicemente i file di codice esistenti in un progetto appena creato utilizzando il 4.5.1 Modello MVC di Visual Studio.

+0

Ottimo! Abbiamo appena effettuato l'aggiornamento da .NET 4.0 a 4.5, quindi proverò ad andare su 4.5.1 e vedere se questo aiuta. –

+1

Grazie! Il targeting 4.5.1 e la rimozione e la reinstallazione del pacchetto hanno risolto il problema. Ora, ricevo errori di runtime quando carico il sito ma immagino che sia un problema separato. Segnando questo come risposta. –

9

Prima modificare il framework del progetto su 4.5.1

Aprire la console di NuGet package manager e

  1. disinstallare-Package AspNetMvc
  2. disinstallare-Package Microsoft.AspNet.Mvc
  3. Installare-Pacchetto Microsoft.AspNet.Mvc

Questo funziona per me.

Problemi correlati