web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'System.Net.Http.Formatting' ou l'une de ses dépendances. Le système ne peut pas trouver le chemin spécifié

J'ai une petite application MVC que j'utilise pour des raisons pratiques, mais maintenant, je rencontre une erreur à chaque fois que j'essaie de déboguer:

Could not load file or Assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

J'ai googlé mais je ne trouve pas de solution. J'utilise .NET 4.5.

Il ne peut pas s'agir du fichier DLL car j'utilise .Net 4.5.

120
Norris

Chaque fois que j'ai une erreur NuGet comme celle-ci, je prends généralement les mesures suivantes:

  1. Accédez au dossier des packages dans l'explorateur Windows et supprimez-le.
  2. Ouvrez Visual Studio et accédez à Outils> Gestionnaire de packages de bibliothèque> Paramètres du gestionnaire de packages et sous l'élément Gestionnaire de packages à gauche, un bouton "Effacer le cache du package". Cliquez sur ce bouton et assurez-vous que la case à cocher "Autoriser NuGet à télécharger les packages manquants lors de la construction" est cochée.
  3. Nettoyer la solution
  4. Cliquez ensuite avec le bouton droit de la souris sur la solution dans l'explorateur de solutions et activez la restauration du package NuGet.
  5. Construire la solution

Toutes ces étapes restaurent presque toujours tous les paquets et les dll dont j'ai besoin pour mon programme MVC.


EDIT >>>

Pour Visual Studio 2013 et supérieur, l’étape 2) devrait se lire comme suit:

  1. Ouvrez Visual Studio et accédez à Outils> Options> Gestionnaire de paquets NuGet. Sur le côté droit, vous trouverez un «bouton Vider le cache du paquet». Cliquez sur ce bouton et assurez-vous que les cases à cocher "Autoriser NuGet à télécharger les packages manquants" et "Rechercher automatiquement les packages manquants lors de la création dans Visual Studio" sont cochées.
156
Jordan_Walters
  • Supprimer toutes les références de code à System.Net.*

  • dans la fenêtre du paquet, 

    Install-Package Microsoft.AspNet.WebApi.Client

  • Nettoyez et reconstruisez votre projet

131
user3919888

J'ai trouvé un extra 

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

dans mon web.config. enlevé que pour le faire fonctionner. un autre paquet que j'ai installé, puis supprimé a causé le problème.

20
realPT

user3919888 m'a orienté dans la bonne direction, mais je devais exécuter Update-Package -reinstall Microsoft.AspNet.WebApi.Client dans la console Package-Manager. L'installation de base en elle-même ne reconnaît pas le problème, mais reconnaît que le package est déjà installé et ne l'écrase pas.

Je poste cette réponse parce que cela arrive si rarement que je finis par googler et atteindre cette page avant de me rappeler ce que j'avais fait la dernière fois.

13
longestwayround

Supprimer les lignes suivantes de web.config a résolu mon problème. Notez que dans ce projet, je n'ai pas utilisé de composants WebApi. Donc, pour d'autres, cette solution peut ne pas fonctionner comme prévu.

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>
12
Mahmoud Moravej
  1. Supprimez toutes les références de code à System.Net. * 
  2. Désinstallez: Package Microsoft.AspNet.WebApi et ses dépendants. 
  3. Tout réinstaller: le package Microsoft.AspNet.WebApi et ses dépendants. 
  4. Nettoyez et reconstruisez votre projet
6
Sandeep

Comme suggéré à l'origine dans un commentaire de GeoMac et documenté sur la documentation de NuGet , les éléments suivants ont fonctionné pour moi lorsqu'aucune des autres réponses ne fonctionnait

Outils/Gestionnaire de paquets NuGet/Console du gestionnaire de paquets

Update-Package -ProjectName MyProjectName -reinstall
5
bbodenmiller

Dans mon cas, aucune des solutions ci-dessus n'a fonctionné. J'ai résolu par un clic droit sur la référence 

System.Net.Http.Formatting

à partir de Visual studio et en définissant la propriété Copier Local vers true

J'espère que cela est utile en quelque sorte. 

3
Hugo Nava Kopp

Ce qui a résolu cette erreur agaçante pour moi, c’est de fermer Visual Studio et de le rouvrir. Reconstruisez ensuite la solution et tout a fonctionné à nouveau. Désolé pour la merde réponse, mais je pense que ça vaut la peine de répondre parce que ça a résolu le problème pour moi. 

1
andreasnico

Pour moi, c'était aussi simple que

  1. Supprimer Microsoft.AspNet.WebApi.Client du dossier des packages dans l'Explorateur Windows
  2. Ouvrir Outils> Gestionnaire de paquets NuGet> Console du gestionnaire de paquets
  3. Cliquez sur le bouton "Restaurer"
1
adam0101

Je faisais face au même problème parce que 

System.Net.Http.Formatting

la version écrite dans webconfig était 5.0.3 mais dans le dossier bin, la bibliothèque System.Net.Http.Formatting dll était 4.0.2

donc je viens de remplacer par la même donnée à l'intérieur bin

 enter image description here

 enter image description here

il suffit de faire ce projet propre et de construire

1
TAHA SULTAN TEMURI

Pour moi, ajouter quelques lignes en-dessous de WebApi.config fonctionne comme après la mise à jour du nouveau paquet Nuget

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

N'oubliez pas d'ajouter un espace de noms:

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;
0
ashish Vicky

VS2019: Outils -> Gestionnaire de paquets Nuget -> Configuration du gestionnaire de paquets -> dans la section Restauration du paquet, cochez 2 options. Après cela, allez dans le dossier des packages de projets et supprimez tous les dossiers enfants à l'intérieur (pour ne plus avoir d'erreur), puis Reconstruisez la solution, Nuget retéléchargera de nouveau tous les packages et le projet devrait s'exécuter sans aucune référence.

0
grandholy

Vous devez probablement définir la référence de la bibliothèque comme "Copier Local = True" dans la boîte de dialogue des propriétés. Sur Visual Studio, cliquez sur "Références", puis cliquez avec le bouton droit de la souris sur la référence manquante. Dans le menu contextuel, cliquez sur Propriétés, vous devriez voir copier les paramètres locaux.

0
mow

Dans mon cas, cependant, rien de ce qui précède n'a fonctionné, mais le remplacement de 5.2.3.0 par 4.0.0.0 a résolu le problème.

Pour ceux qui utilisent .NET Standard project en combinaison avec .NET Framework projects:

De manière standard, les packages inclus dans un projet .NET Standard seront correctement utilisés dans d'autres projets .NET Core et .NET Standard.

Si vous faites référence à un projet .NET Standard à partir d’un projet .NET Framework (MVC), vous devez télécharger et installer manuellement les mêmes packages de nuget.

Donc, la réponse à ma question était que je devais télécharger et installer Microsoft.AspNet.WebApi.Client dans le projet Web (.NET Framework) qui utilise un projet .NET Standard où Microsoft.AspNet.WebApi.Client est requis. En fait, je l'avais déjà installé mais il y avait une différence de version.

J'ajoute simplement cette réponse aux autres: elle ne répond peut-être pas directement à la question de OP, mais elle m'a permis de gagner du temps en vérifiant d'abord cette option au lieu de répondre aux réponses les plus votées.

0
CularBytes

Ce que j'ai fait pour résoudre ce problème est

  1. Allez au gestionnaire de paquets NuGet.

  2. Sélectionnez Mises à jour (dans le panneau de gauche)

  3. Mettre à jour les composants WebApi

  4. Après cela, le projet a été exécuté sans erreur.

0
Raj