J'ai plusieurs projets dans ma solution VS. Chaque fois que j'ajoute le package NuGet "System.Net.Http" à celui-ci, il affiche la version 4.2.0.0. Ensuite, je fais la même chose et ajoute le même paquet NuGet, cependant, l’autre dit la version. 4.1.1.2
Ensuite, je reçois un avertissement:
Conflits constatés entre System.Net.Http
EDIT1:
Gathering dependency information took 1.7 sec
Attempting to resolve dependencies for package 'System.Net.Http.4.3.3' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'System.Net.Http.4.3.3'
Resolved actions to install package 'System.Net.Http.4.3.3'
Retrieving package 'System.Net.Http 4.3.3' from 'nuget.org'.
Adding package 'System.Net.Http.4.3.3' to folder 'C:\...Service\packages'
Added package 'System.Net.Http.4.3.3' to folder 'C:\...Service\packages'
Added package 'System.Net.Http.4.3.3' to 'packages.config'
Successfully installed 'System.Net.Http 4.3.3' to ....Service
Executing nuget actions took 2.05 sec
Time Elapsed: 00:00:03.8937113
S'il vous plaît noter la version correcte installée, Cependant => Props => Version dit 4.1.1.2
Vous pouvez forcer la version que vous installez pour aligner les deux projets ou trouver un message dans la fenêtre de sortie, ce qui vous indiquerait ce qui ne va pas ou quelles sont vos dépendances . Depuis le lien officiel ne liste pas la version 4.2, je le ferais (à l'échelle de la solution)
Install-Package System.Net.Http -Version 4.1.1
Ou pour les deux projets
Get-Project ProjectName | Install-Package System.Net.Http -Version 4.1.1
Ou encore mieux (en utilisant la dernière version)
Install-Package System.Net.Http -Version 4.3.3
MODIFIER
Apparemment, vous n'êtes pas le premier à expérimenter cela .. Que diriez-vous de la réponse ici ? En gros, vous pouvez aligner cette section du fichier de configuration de both:
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.2" newVersion="4.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Vous devrez peut-être adapter la valeur du jeton . Juste au cas où, pourriez-vous coller le fichier de configuration pour les deux projets =
Cela a tendance à se produire lorsque vous avez une référence à la structure System.Net.Http, mais qu'une de vos références de package nécessite le package NuGet System.Net.Http.
Voyez si vous avez une référence à cet assemblage, supprimez-le et installez plutôt le paquet NuGet
Après avoir parcouru toutes les solutions présentées ici et les références citées dans cette réponse , j’ai finalement résolu le problème complètement. C’est ce que je crois que toute personne confrontée à ce problème devrait faire:
System.Net.Http
qui ne sont pas gérées par NuGet (pour les projets utilisant PackageReference, vous devriez voir le symbole NuGet à côté de la référence dans l'Explorateur de solutions). Remplacez les références System.Net.Http
supprimées par le package NuGet correspondant si vous êtes certain que votre projet nécessite System.Net.Http
(essayez de construire sans elle auparavant). Pour les projets utilisant packages.config, veillez à ce que les références à System.Net.Http
soient obligatoires et à ce qu'ils utilisent également NuGet. Quoi qu'il en soit, il peut être utile de supprimer et d'ajouter de nouveau System.Net.Http
via NuGet (pour les projets tous le référençant), même s'il est déjà référencé avec NuGet. J'ai trouvé que l'étape 2 peut causer des disjoints quelque part.Si vous constatez par la suite que vous obtenez des exceptions au moment de l’exécution (même lors des tests d’unités) en raison de différences apparentes après l’ajout d’une référence, supprimez toutes les redirections de liaison du projet de site Web concerné, puis ajoutez à nouveau les suggestions suggérées par étape 6.
J'ai passé beaucoup de temps à essayer de résoudre ce problème de manière méthodique. Je pense donc que les étapes ci-dessus résoudraient pleinement les problèmes de la plupart des gens, bien qu'une certaine réflexion latérale puisse être nécessaire pour les cas inhabituels. Faites-moi savoir si cela fonctionne (ou ne fonctionne pas) pour vous.
Il existe une nouvelle solution à ce problème qui fonctionne à partir du 9 octobre 2018.
System.Net.Http
vers la dernière version 4.3.4. Si votre projet possède la nouvelle structure de projet, modifiez-la et assurez-vous qu'elle inclut la référence de package suivante:
<PackageReference Include="System.Net.Http" Version="4.3.4" />
Recherchez votre solution et supprimez toute redirection de liaison existante pour System.Net.Http.
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
Reconstruire, l'avertissement devrait maintenant être parti et votre code devrait construire et fonctionner correctement