Dove posso trovare un pacchetto NuGet per l'aggiornamento a System.Web.Http v5.0.0.0?


125

Ho appena aggiornato un progetto ASP.NET MVC4 per utilizzare Unity.WebApi versione 5.0.0.0 e richiede System.Web.Http v 5.0.0.0 secondo il seguente errore:

Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   

Attualmente sto facendo riferimento a System.Web.Http v4.0 ma ho i seguenti pacchetti NuGet aggiornati alle rispettive versioni più recenti:

  • ANTLRv3

  • Provider universali Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Rasoio Microsoft ASP.NET

  • Librerie di base dei provider universali Microsoft ASP.NET

  • Provider universali Microsoft ASP.NET

  • Client API Web 2 ASP.NET Microsoft

  • Core ASP 2 Web API 2 Microsoft

  • Host Web API Web ASP.NET Microsoft 2

  • API Web Microsoft ASP.NET 2

  • Pagina Web Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • WebGrease

    tramite NuGet. Non ho elencato le librerie JavaScript pertinenti come Micrososft.jQuery.Unobtrusive Validation, ecc.

Che cos'è il pacchetto NuGet per aggiornare System.Web.Http o devo farlo manualmente?


Se si seleziona "Includi Prerelease" anziché "Stabile" in Gestione pacchetti NuGet, verrà visualizzato System.Web.Http. È quello che stai cercando?
William,

dovrei cercare System.Web.Http dopo aver selezionato "Includi Prerelease"? O dove dovrei cercare?
Klaus Nji,

Ignora il mio commento sopra! Quel pacchetto è obsoleto. Dovresti provare a seguire il suggerimento di Stjin di seguito. Stranamente, quando installo Unity.WebApi nel mio progetto MVC 4, aggiorna automaticamente il riferimento System.Web.Http alla v5.0, quindi non sono sicuro del perché non funzioni per te. Se tutto il resto fallisce, puoi provare a disinstallare il pacchetto Unity e reinstallarlo.
William,

Risposte:


206

È necessario il pacchetto Microsoft.AspNet.WebApi.Core .

Puoi vederlo nel file .csproj:

<Reference Include="System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>

Ho Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) aggiornato alla v5.0.0.0 come elencato sopra. Sembra che devo rimuoverli e aggiungerli di nuovo?
Klaus Nji,

7
Ho dovuto anche pulire, eliminare bin_deployableAssemblies e ricostruire.
Klaus Nji,

Avere quasi lo stesso progetto. Dov'è la cartella degli assiemi bin_deployable di cui tutti continuano a parlare?
nzondlo,

@nzondlo Credo che la cartella sia generata durante la pubblicazione di un'applicazione. Non del tutto sicuro però.
user247702,

1
@nzondlo bin_deployableAssembliesè solo una cartella normale, ma riceve un trattamento speciale quando esiste nella directory del progetto. Qualsiasi file DLL in quella cartella viene copiato nella directory bin quando si pubblica l'applicazione Web. È stato utilizzato per distribuire la dll System.Web.Mvc (e altri) con la tua app Web prima che NuGet diventasse mainstream.
Steven Liekens,

9

Ho diversi progetti in una soluzione. Per alcuni dei progetti, ho precedentemente aggiunto i riferimenti manualmente. Quando ho usato NuGet per aggiornare il pacchetto WebAPI, quei riferimenti non sono stati aggiornati automaticamente.

Ho scoperto che posso aggiornare manualmente quei riferimenti in modo che puntino alla DLL v5 all'interno della cartella Pacchetti della mia soluzione o faccia quanto segue.

  1. Vai a "Gestisci pacchetti NuGet"
  2. Seleziona il pacchetto installato "Microsoft ASP.NET Web API 2.1"
  3. Fai clic su Gestisci e controlla i progetti che ho aggiunto manualmente prima.

La disinstallazione del pacchetto e la reinstallazione immediata lo risolvono per me. È successo quando il progetto è stato avviato su una macchina di sviluppo diversa. Il ripristino automatico dei pacchetti ha ottenuto in qualche modo la versione sbagliata.
Matt J.

1
Il problema principale è l'aggiornamento di Web.Api per il progetto principale, ma i progetti referenziati ne utilizzano ancora una versione precedente. Dovrebbe essere aggiornato insieme facendo clic con il pulsante destro del mouse sul nome della soluzione e sul menu Gestisci pacchetti Nuget come indicato da @Tony. Saluti!
Orhaan,

Pacchetto di installazione Microsoft.AspNet.WebApi.Core
C Sharper
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.