Wo finde ich ein NuGet-Paket für das Upgrade auf System.Web.Http v5.0.0.0?

125

Sie haben gerade ein ASP.NET MVC4-Projekt auf Unity.WebApi Version 5.0.0.0 aktualisiert und benötigen System.Web.Http v 5.0.0.0 gemäß dem folgenden Fehler:

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'   

Ich verweise derzeit auf System.Web.Http v4.0, habe jedoch die folgenden NuGet-Pakete auf die jeweils neuesten Versionen aktualisiert:

  • ANTLRv3

  • Microsoft ASP.NET Universal Providers

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET Razor

  • Kernbibliotheken von Microsoft ASP.NET Universal Providers

  • Microsoft ASP.NET Universal Providers

  • Microsoft ASP.NET Web API 2-Client

  • Microsoft ASP.NET Web API 2 Core

  • Microsoft ASP.NET Web API 2-Webhost

  • Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET-Webseite

  • Microsoft.Web.Infrastructure

  • WebGrease

    über NuGet. Ich habe keine relevanten JavaScript-Bibliotheken wie Micrososft.jQuery.Unobtrusive Validation usw. aufgelistet.

Was ist das NuGet-Paket, um System.Web.Http zu aktualisieren, oder muss ich dies manuell tun?

Klaus Nji
quelle
Wenn Sie im NuGet Package Manager "Prerelease einschließen" anstelle von "Stabil" auswählen, wird System.Web.Http angezeigt. Ist es das, wonach du suchst?
William
Soll ich nach Auswahl von "Prerelease einschließen" nach System.Web.Http suchen? Oder wo soll ich suchen?
Klaus Nji
Ignoriere meinen obigen Kommentar! Das Paket ist veraltet. Sie sollten versuchen, Stjins Vorschlag unten zu folgen. Seltsamerweise wird bei der Installation von Unity.WebApi in meinem MVC 4-Projekt der System.Web.Http-Verweis auf Version 5.0 automatisch aktualisiert, sodass ich nicht sicher bin, warum es bei Ihnen nicht funktioniert. Wenn alles andere fehlschlägt, können Sie versuchen, das Unity-Paket zu deinstallieren und neu zu installieren.
William

Antworten:

206

Sie benötigen das Microsoft.AspNet.WebApi.Core- Paket.

Sie können es in der .csproj-Datei sehen:

<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>
user247702
quelle
Ich habe Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) wie oben aufgeführt auf v5.0.0.0 aktualisiert. Sieht so aus, als müsste ich sie entfernen und erneut hinzufügen?
Klaus Nji
7
Musste auch bereinigen, bin_deployableAssemblies löschen und neu erstellen.
Klaus Nji
Fast das gleiche Projekt haben. Wo befindet sich der Ordner bin_deployable Assemblies, über den alle reden?
Nzondlo
@nzondlo Ich glaube, dass Ordner beim Veröffentlichen einer Anwendung generiert wird. Nicht ganz sicher.
user247702
1
@nzondlo bin_deployableAssembliesist nur ein regulärer Ordner, wird jedoch speziell behandelt, wenn er im Verzeichnis Ihres Projekts vorhanden ist. Jede DLL-Datei in diesem Ordner wird beim Veröffentlichen Ihrer Webanwendung in das Verzeichnis bin kopiert. Es wurde verwendet, um die System.Web.Mvc-DLL (und andere) mit Ihrer Web-App bereitzustellen, bevor NuGet zum Mainstream wurde.
Steven Liekens
9

Ich habe mehrere Projekte in einer Lösung. Bei einigen Projekten habe ich die Referenzen zuvor manuell hinzugefügt. Als ich das WebAPI-Paket mit NuGet aktualisierte, wurden diese Referenzen nicht automatisch aktualisiert.

Ich habe herausgefunden, dass ich diese Referenz entweder manuell aktualisieren kann, sodass sie auf die v5-DLL im Paketordner meiner Lösung verweist, oder wie folgt vorgehen kann.

  1. Gehen Sie zu "NuGet-Pakete verwalten"
  2. Wählen Sie das installierte Paket "Microsoft ASP.NET Web API 2.1" aus.
  3. Klicken Sie auf Verwalten und überprüfen Sie die Projekte, die ich zuvor manuell hinzugefügt habe.
Tony
quelle
Wenn Sie das Paket deinstallieren und dann sofort neu installieren, beheben Sie es für mich. Dies geschah, als das Projekt auf einer anderen Entwicklungsmaschine aufgerufen wurde. Die automatische Paketwiederherstellung hat irgendwie die falsche Version.
Matt J.
1
Das Hauptproblem ist die Aktualisierung von Web.Api für das Hauptprojekt, aber referenzierte Projekte verwenden immer noch eine ältere Version davon. Es sollte zusammen aktualisiert werden, indem Sie mit der rechten Maustaste auf den Lösungsnamen und das Menü Nuget-Pakete verwalten klicken, wie bei @Tony erwähnt. Prost!
Orhaan
Installationspaket Microsoft.AspNet.WebApi.Core
C Sharper