7
votes

Votre projet de démarrage 'projet' ne fait pas référence à Microsoft.EntityFrameworkCore.Design

Je construis une application WPF avec EntityFrameworkCore version 2.2.2

Cependant, lorsque je veux Add-Migration , cela me renvoie une erreur ...

Le «projet» de votre projet de démarrage ne fait pas référence à Microsoft.EntityFrameworkCore.Design. Ce package est requis pour que les outils de base d'Entity Framework fonctionnent. Assurez-vous que votre projet de démarrage est correct, installez le package et réessayez.

Je ne sais pas pourquoi cela se produit, car je peux l'utiliser avant que cette erreur ne se produise. P >

Ceci est mon fichier packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Costura.Fody" version="3.3.2" targetFramework="net461" />
  <package id="Fody" version="4.0.2" targetFramework="net461" developmentDependency="true" />
  <package id="Microsoft.CSharp" version="4.5.0" targetFramework="net461" />
  <package id="Microsoft.Data.Sqlite.Core" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.DotNet.PlatformAbstractions" version="2.1.0" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Abstractions" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Analyzers" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Design" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Relational" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Sqlite" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Sqlite.Core" version="2.2.2" targetFramework="net461" />
  <package id="Microsoft.EntityFrameworkCore.Tools" version="2.2.2" targetFramework="net461" developmentDependency="true" />
  <package id="Microsoft.Extensions.Caching.Abstractions" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Caching.Memory" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Configuration" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Configuration.Abstractions" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Configuration.Binder" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.DependencyInjection" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.DependencyModel" version="2.1.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Logging" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Logging.Abstractions" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Options" version="2.2.0" targetFramework="net461" />
  <package id="Microsoft.Extensions.Primitives" version="2.2.0" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
  <package id="Remotion.Linq" version="2.2.0" targetFramework="net461" />
  <package id="SQLitePCLRaw.bundle_green" version="1.1.12" targetFramework="net461" />
  <package id="SQLitePCLRaw.core" version="1.1.12" targetFramework="net461" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.linux" version="1.1.12" targetFramework="net461" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.osx" version="1.1.12" targetFramework="net461" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.v110_xp" version="1.1.12" targetFramework="net461" />
  <package id="SQLitePCLRaw.provider.e_sqlite3.net45" version="1.1.12" targetFramework="net461" />
  <package id="System.Buffers" version="4.4.0" targetFramework="net461" />
  <package id="System.Collections.Immutable" version="1.5.0" targetFramework="net461" />
  <package id="System.ComponentModel.Annotations" version="4.5.0" targetFramework="net461" />
  <package id="System.Diagnostics.DiagnosticSource" version="4.5.0" targetFramework="net461" />
  <package id="System.Interactive.Async" version="3.2.0" targetFramework="net461" />
  <package id="System.Memory" version="4.5.1" targetFramework="net461" />
  <package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net461" />
  <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="net461" />
</packages>

Le package est déjà installé.

Gestionnaire de packages NuGet

Merci beaucoup pour toute aide.


7 commentaires

faites un clic droit sur votre projet, choisissez Gérer les packages nuget , allez dans Parcourir , recherchez Microsoft.EntityFrameworkCore.Design et assurez-vous qu'il est installé.


@Masoud Keshavarz J'ai vérifié et il a été installé.


Avez-vous plusieurs projets dans votre solution? Vous devez définir votre Modèle comme projet de démarrage, qui contient la classe DBContext . Choisissez également Modèle comme projet par défaut dans Package Manager Console


@Masoud Keshavarz Je n'ai qu'un seul projet dans ma solution. J'ai essayé tout ce que vous avez dit et ne fonctionne toujours pas .... J'ai essayé de créer un nouveau projet, et je ne travaille pas trop ...


@MasoudKeshavarz pensez-vous que réinstaller Visual Studio peut le résoudre?


Non, ce n'est pas pertinent, peut-être sa meilleure idée d'installer dotnet core sdk


@MasoudKeshavarz Je pense avoir trouvé le problème. J'ai installé le package Fody pour le Costura.Fody, après avoir désinstallé le Fody, je travaille comme d'habitude ...


3 Réponses :


6
votes

Add-Migration peut devenir confus car vous utilisez Costura pour incorporer des assemblys. Essayez de supprimer costura pour voir si cela résout le problème.


2 commentaires

# $ && $ * & $ ** Je viens de passer 3 heures effrayantes dessus et c'était Costura !!!!,!


@ChristopherKelly désolé d'entendre ça. heureux d'accepter un PR qui fait fonctionner ce scénario



1
votes

Je l'ai installé en utilisant cette commande et cela fonctionne!

J'utilise .net core version 3.1.1

dotnet add package Microsoft.EntityFrameworkCore.Design --version 3.1.1


1 commentaires

Super ça marche pour moi :) Il suffit d'adapter avec la bonne --version selon le youproject.context.csproj



0
votes

Installez-le à nouveau en utilisant PMC et il trouvera la référence:

PM> dotnet add package Microsoft.EntityFrameworkCore.Design


2 commentaires

Qu'est-ce que PMC? Pourriez-vous s'il vous plaît développer?


Oh, je vois, vous voulez dire "Package Manager Console". Ceux qui ne sont pas habitués à cet environnement ont des difficultés à décoder les acronymes (cela n'a pas fonctionné dans mon cas, cependant).