web-dev-qa-db-fra.com

Conflit de version détecté pour Microsoft.EntityFrameworkCore.Install

J'obtiens l'erreur suivante lors de l'ajout d'une API principale asp.net à un projet existant sur lequel je travaille.

"Conflit de version détecté pour Microsoft.EntityFrameworkCore.Install/référence Microsoft.EntityFrameworkCore 2.2.1 directement au projet pour résoudre ce problème"

J'ai essayé d'ajouter le package Nuget mais j'obtiens d'autres conflits de version sur un certain nombre de packages différents et le processus échoue toujours. Au début, je pensais que cela pouvait être un problème avec mon projet, j'ai donc commencé une nouvelle solution à partir de zéro et j'ai réussi à reproduire le problème en quelques étapes simples.

  1. Créer une nouvelle solution (EFDemo)
  2. Ajoutez une nouvelle bibliothèque de classes .net Core à la solution appelée EFDemo.BL
  3. Ajoutez les packages Nuget suivants au projet EFDemo.BL (car j'utilise une base de données existante pour mon nouveau projet)
  4. Microsoft.EntityFrameworkCore.SqlServer (v2.2.1)
  5. Microsoft.EntityFraneworkCore.Tools (v2.2.1)
  6. Ajoutez une nouvelle application Web de base .net appelée EFDemo.Api et sélectionnez le modèle de projet API.
  7. Ajoutez une référence de EFDemo.BL à EFDemo.Api.
  8. Construisez et voyez l'échec.

J'ai examiné le post suivant mais sa solution ne fonctionne pas pour moi car je n'ai aucune référence à "Microsoft.EntityFrameworkCore" dans aucun de mes fichiers csproj. Conflit de version détecté pour les packages NuGet .

J'ai également réinstallé le SDK .net, redémarré un million de fois et je ne comprends toujours pas le problème.

16
user1474992

J'ai rencontré la même erreur récemment.

Ce que j'ai fait pour régler cela:

SDK .Net Core 2.2 installé

Ensuite, dans mon projet, j'ai changé dans tous les fichiers .csproj:

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>

alors qu'auparavant c'était:

      <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>

Cela a tout de suite aidé et l'erreur a disparu.

10
Paul de Champignon

La réponse à cette question est assez difficile à cataloguer car j'ai apporté de nombreuses modifications en essayant de comprendre cela. Au final, je pense que les étapes suivantes ont résolu mon problème:

  • Mettre à niveau VS vers la dernière version (v15.9.3)
  • Désinstaller les SDK .Net Core 2.1 et 2.2 (mon projet utilisait 2.1 à l'époque)
  • Installer le SDK .Net Core 2.2
  • Convertir tous les projets de ma solution pour utiliser .Net Core 2.2 (Une douleur. J'aimerais qu'il y ait une fonction Retarget All!)
  • Redémarrez, nettoyez, construisez et cela fonctionne. Phew.

Maintenant, pour faire un peu de travail au lieu de me battre avec mes outils!

8
user1474992

Pour moi, cela a aidé cet article, c'était un changement très simple sur la configuration, que j'ai oublié de changer:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

https://dotnetcoretutorials.com/2018/11/18/how-to-target-net-core-2-2/

4
Ulises Moreno

J'ai corrigé cela simplement en installant .NET Core 2.2 et en changeant la balise TargetFramework en netcoreapp2.

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
3
user3645907

Je ne sais pas quel package vous avez installé dans votre projet.

Mais maintenant, Visual Studio n'ajoute plus qu'un seul paquet de pépites qui inclut tout le paquet requis pour l'application principale asp.net.

Essayez d'installer ce package et supprimez tous les autres packages et voyez qu'il fonctionne pour vous.

Microsoft.AspNetCore.All

De cette façon, vous n'aurez pas de conflit de version au moins dans les packages Microsoft. Vous pouvez ensuite vérifier un autre package externe que vous avez peut-être installé et qui pose problème.

3
Krunal Parmar

J'avais suivi les étapes pour résoudre mon problème

  1. Téléchargez et installez le dernier framework (dotnet core 2.2 dans mon cas)
  2. Définissez le cadre cible du projet sur le plus élevé (dotnet core 2.2 dans mon cas) à partir des propriétés du projet
  3. Solution propre 4 Solution de reconstruction
  4. Mettre à jour tous les litiges de version (facultatif)
  5. Reconstruisez et enregistrez.

J'espère que cela t'aides.

0
snnpro