27 votes

Erreur d'analyse du code Impossible de charger le fichier ou l'assembly 'System.Net.Http, Version=2.0.0.0 dans MVC4 Web API

Ce problème est exactement le même que ce post http://forums.asp.net/t/1807797.aspx/1?System+Net+Http+is+not+found et celui-ci sur StackOverflow

J'ai toutes les dernières versions RTM, j'ai commencé un nouveau projet MVC 4 en .Net 4.5, ajouté le package nuget WebAPI et maintenant mon analyse de code échoue avec la même erreur que celle rapportée dans le lien ci-dessus.

Erreur CA0058 lors de l'exécution de l'analyse du code CA0058 : L'assembly de référence 'System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' est introuvable. Cet assembly est nécessaire pour l'analyse et a été référencé par : C:\Projects\InHouse\TimeRecorder\StopGap\TimeRec\bin\TimeRec.dll, C:\Projects\InHouse\TimeRecorder\StopGap\packages\Microsoft.AspNet.WebApi.Core.4.0.20710.0\lib\net40\System.Web.Http.dll. [Erreurs et Avertissements] - (Global)

D'après ce que j'ai pu trouver, cela semblait se produire avec les versions RC car il y avait un conflit entre le framework .NET 4.5 System.Net.Http et la version de System.Net.Http de WebApi.

Les autres réponses sur la réponse StackOverflow parlent de rétrogradation de .Net 4.5 à 4.0, pour des raisons évidentes, ce n'est pas ma solution préférée !

70voto

Yao Points 674

Essayez ce qui suit:

  1. En fonction de votre édition de Visual Studio, accédez à :
    • VS 2010:
      % ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
    • VS 2012:
      % ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop
  2. Ouvrez FxCopCmd.exe.config et changez AssemblyReferenceResolveMode de StrongName à StrongNameIgnoringVersion.
  3. Enregistrez les modifications et reconstruisez votre projet.

5voto

David Kean Points 3353

À partir de Visual Studio 2012 et versions ultérieures, au lieu de modifier vos fichiers d'installation, utilisez le contournement spécifié ici: Utiliser Microsoft.Bcl.Async avec l'analyse de code provoque des erreurs.

2voto

pajics Points 135

J'ai eu le même problème (impossible de construire localement et à distance sur Azure). Cette solution de contournement m'a aidé : http://connect.microsoft.com/VisualStudio/feedback/details/760208/nuget-package-for-asp-net-mvc-4-web-api-does-not-reference-correct-net-4-5-assemblies#

Voici la partie dont vous avez besoin :

Copiez les fichiers System.Net.Http.dll et System.Net.Http.xml contenus dans le répertoire packages\Microsoft.Net.Http.2.0.20710.0\lib\net40 vers le répertoire packages\Microsoft.AspNet.WebApi.Core.4.0.20710.0\lib\net40. Étant donné que l'assemblage System.Net.Http.dll manquant se trouve maintenant au même emplacement que l'assemblage System.Web.Http.dll référencé, l'analyse du code peut maintenant résoudre correctement le conflit de l'assemblage System.Net.Http.

0voto

TheCodeKing Points 11632

Le problème est causé car vous avez une dépendance sur une version plus récente de System.Net.Http, que celle requise par l'une des autres assemblies référencées.

La bonne manière de résoudre ce problème est d'ajouter des redirections de dependentAssembly dans le app.config des projets incriminés. La réponse acceptée de désactiver les erreurs ne fait que masquer un problème sous-jacent.

Ajoutez ce qui suit à la section runtime de votre app.config pour remapper l'ancienne version qui ne peut pas être résolue à la version référencée dans votre projet. Les numéros de version devraient évidemment être mis à jour pour correspondre à votre situation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X