Come ottenere 'System.Web.Http, Version = 5.2.3.0?


88

Ho appena creato un progetto MVC5 e aggiunto diversi pacchetti da nuget, ma poi quando ho compilato il progetto, ho ricevuto questo errore. Sembra che uno dei pacchetti dipenda davvero da system.web.http versione 5.2.3.0, che non sono riuscito a trovare da nessuna parte. Mi chiedo solo come ottenere l'ultima versione di system.web.http?

Errore 2 Assembly 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' utilizza 'System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' che ha una versione successiva all'assembly di riferimento 'System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' 
d: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ packages \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll

Risposte:


117

Nella console di Gestione pacchetti

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3


L'ho fatto ma mi dà ancora lo stesso errore <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Tentativo di risolvere la dipendenza 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. Tentativo di risolvere la dipendenza "Newtonsoft.Json (≥ 6.0.4)". "Microsoft.AspNet.WebApi.Core 5.2.3" già installato. www.ptsol.com.au contiene già un riferimento a "Microsoft.AspNet.WebApi.Core 5.2.3". </pre>
John Hadikusumo,

4
@JohnHadikusumo fa questo per tutti i tuoi progetti. Sembra che tu abbia un progetto dipendente con una versione precedente.
Rap

Sì, questo funzionerà. Leggi attentamente il tuo Web.config e il tuo packages.config sia prima che dopo aver eseguito questo comando e vedrai cosa è cambiato.
AlfredBr

Ho risolto il mio problema.
Phon Soyang

19

Un modo per risolverlo è modificare il reindirizzamento dell'assembly nel file web.config.

Modificare quanto segue:

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

per

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="4.0.0.0" />
</dependentAssembly>

Quindi l'attributo oldVersion dovrebbe cambiare da "...- 4.0.0.0" a "...- 5.2.3.0".


Questo ha funzionato per me. Avevamo la bindingRedirectconfigurazione come <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />ma l'abbiamo modificata per usarla 4.0.0.0. Ancora non ha senso per me, perché dovrebbe usare la DLL del pacchetto NuGet e non la versione GAC, ma ehi, ha funzionato ... quindi grazie!
jamiebarrow

8

L'ho fatto, Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3ma ancora non ha funzionato. Quindi ho guardato nella cartella bin del mio progetto e ho visto che aveva ancora il vecchio file System.Web.Mvc.

Quindi ho copiato manualmente il file più recente dal pacchetto alla cartella bin. Poi ero di nuovo attivo e funzionante.


7

Pacchetto di installazione Microsoft.AspNet.WebApi.Core -version 5.2.3

Quindi nel progetto Aggiungi riferimento -> Sfoglia. Premi il pulsante Sfoglia e vai a C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 e aggiungi il file .dll necessario


7

I pacchetti che hai installato hanno introdotto dipendenze alla versione 5.2.3.0 dll come mostrato sopra dall'utente Bracher. Microsoft.AspNet.WebApi.Cors è un pacchetto di esempio. Il percorso che prendo è aggiornare il proir del progetto MVC a qualsiasi installazione di pacchetto:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

https://www.nuget.org/packages/microsoft.aspnet.mvc


3

La disinstallazione e la reinstallazione del pacchetto NuGet ha funzionato per me.

  1. Rimuovi qualsiasi vecchio riferimento dal progetto.

Eseguilo nella console di Gestione pacchetti:

  1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
  2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

Solo questo ha risolto il mio problema. Ho fatto così tanto e l'azione vincente è stata così semplice.
George Lanetz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.