Comment obtenir 'System.Web.Http, Version = 5.2.3.0?

87

Je viens de créer un projet MVC5 et d'ajouter plusieurs packages à partir de nuget, mais lorsque j'ai compilé le projet, j'ai eu cette erreur. Il semble que l'un des packages dépend vraiment de la version 5.2.3.0 de system.web.http, que je n'ai trouvé nulle part. Je me demande simplement comment obtenir la dernière version de system.web.http?

Erreur 2 L'assembly 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' utilise 'System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' qui a une version supérieure à l'assembly référencé '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
John Hadikusumo
la source

Réponses:

117

Dans la console du gestionnaire de package

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

Roman Patutin
la source
J'ai fait mais en me donnant toujours la même erreur <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Tentative de résolution de la dépendance 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) ». Tentative de résolution de la dépendance «Newtonsoft.Json (≥ 6.0.4)». «Microsoft.AspNet.WebApi.Core 5.2.3» déjà installé. www.ptsol.com.au a déjà une référence à «Microsoft.AspNet.WebApi.Core 5.2.3». </pre>
John Hadikusumo
4
@JohnHadikusumo le fait pour tous vos projets. Il semble que vous ayez un projet dépendant avec une version plus ancienne.
Rap
Oui, cela fonctionnera. Lisez attentivement votre Web.config et votre packages.config avant et après l'exécution de cette commande et vous verrez ce qui a changé.
AlfredBr
J'ai résolu mon problème.
Phon Soyang
20

Une façon de résoudre ce problème consiste à modifier la redirection d'assembly dans le fichier web.config.

Modifiez ce qui suit:

<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>

à

<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>

L'attribut oldVersion devrait donc passer de "...- 4.0.0.0" à "...- 5.2.3.0".

Bracher
la source
Cela a fonctionné pour moi. Nous avions la bindingRedirectconfiguration <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />mais l' avons modifiée pour l'utiliser 4.0.0.0. Cela n'a toujours pas de sens pour moi, car je devrais utiliser la DLL du package NuGet et non la version GAC, mais bon, cela a fonctionné ... alors merci!
jamiebarrow
8

Je l'ai fait Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3mais cela n'a toujours pas fonctionné. Ensuite, j'ai regardé dans le dossier bin de mon projet et j'ai vu qu'il contenait toujours l'ancien fichier System.Web.Mvc.

J'ai donc copié manuellement le fichier le plus récent du package dans le dossier bin. Ensuite, je suis redevenu opérationnel.

Bob Koury
la source
7

Package d'installation Microsoft.AspNet.WebApi.Core -version 5.2.3

Puis dans le projet Ajouter une référence -> Parcourir. Appuyez sur le bouton Parcourir et accédez au C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 et ajoutez le fichier .dll nécessaire

Vitali Siamenau
la source
7

Les packages que vous avez installés ont introduit des dépendances vers les DLL de la version 5.2.3.0 comme l'a montré l'utilisateur Bracher ci-dessus. Microsoft.AspNet.WebApi.Cors est un exemple de package. Le chemin que je prends est de mettre à jour le proir du projet MVC vers toutes les installations de package:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

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

Doug Wiley
la source
3

La désinstallation et la réinstallation du package NuGet ont fonctionné pour moi.

  1. Supprimez toute ancienne référence du projet.

Exécutez ceci dans la console du gestionnaire de package:

  1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
  2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
Ram Kishore K
la source
Juste celui-ci a résolu mon problème. J'ai tellement fait et gagner-action était si simple.
George Lanetz