92 votes

Échec de la construction de EF Core add-migration

J'ai un développeur qui obtient le message "Build failed." lorsqu'il exécute add-migration dans un projet EF .NET Core, sans explication sur la raison de l'échec de la construction. Comment dépanner cette erreur ?

Voici ce qu'il obtient dans la console du gestionnaire de paquets : enter image description here

Informations complémentaires :

Nous avons quelques autres développeurs utilisant le même code de solution (moi y compris) qui n'ont pas de problèmes avec l'add-migration.

C'est ce que je vois dans la console du gestionnaire de paquets : enter image description here

Nous avons vérifié que le projet se construit, et la solution entière se construit. Nous avons fait "dotnet restore" et rebuild all plusieurs fois, en plus de redémarrer VS2015. Nous avons vérifié que la bonne solution par défaut est sélectionnée à la fois dans l'explorateur de solutions et dans le menu déroulant de la console du gestionnaire de paquets. Nous avons vérifié que le SDK correct est installé sur sa machine. Je ne sais pas quoi vérifier ensuite... Chaque fois que j'ai eu un échec pendant l'ajout de migration, j'ai obtenu suffisamment d'informations pour m'orienter vers ce qu'il fallait vérifier, mais le simple "Build failed." est une sortie d'erreur assez inutile.

35 votes

Vous devriez essayer d'utiliser l'option -v et voir si vous obtenez plus de détails sur l'erreur.

1 votes

Lorsque j'obtiens des erreurs de construction sur une seule machine, je commence par effacer le fichier de solution personnel (.suo). Vous devrez réinitialiser le projet de démarrage après cela.

11 votes

Nous avons utilisé l'option -v, nous n'avons pas obtenu plus de détails sur l'erreur.

102voto

mmh18 Points 400

C'est à cause d'autres projets dans vos solutions. Par exemple, si vous avez deux projets dans votre solution comme le projet A et le projet B. Si le projet A n'est pas construit avec succès, la migration des données du projet B échouera. Vous devez donc décharger le projet A et ajouter la migration au projet B à nouveau.

Je pense que ce n'est pas une bonne réponse mais j'espère que cela vous aidera.

1 votes

J'avais un projet de base de données non désiré dans ma solution qui a été ajouté comme un test aléatoire et je n'en étais pas conscient ! Lorsque j'ai construit la solution, aucune erreur n'a été affichée, mais le fichier add-migration Échec de la construction ! Après avoir supprimé ce projet temporaire, tout fonctionne !

3 votes

J'avais le dotnet run watch qui fonctionnait et qui empêchait tout de fonctionner

3 votes

Le moyen le plus simple d'identifier le problème : 1. ouvrir la ligne de commande 2. naviguer dans le dossier du projet où vous voulez ajouter la migration 3. exécuter dotnet build La sortie montrera toutes les erreurs et les avertissements

41voto

Makla Points 2796

J'ai eu exactement le même problème (.NET Core 2.0.1).

Parfois, il est utile de reconstruire le projet.

J'ai également rencontré le problème lorsque j'ai ouvert le projet dans 2 Visual Studios.
La fermeture d'un Visual Studio a corrigé l'erreur.

4 votes

Reconstruire le projet après avoir changé la chaîne de connexion sur l'interface utilisateur. appsettings.json fonctionne pour moi.

0 votes

J'avais la solution ouverte dans VS2019 et le simple fait de fermer VS2019 a fait fonctionner la commande.

0 votes

J'ai fermé tous les studios visuels ouverts, ça s'est arrangé.

15voto

Liam Kernighan Points 391

Dans ma situation, il s'agissait de l'erreur

namespace aspnetcore does not exist .. are you missing a reference?

J'ai trouvé la solution en ajoutant le drapeau -v (ou --verbose) à la commande dotnet ef.

7 votes

L'ajout de -v m'a sauvé.

13voto

user9229685 Points 41

Essayez ces étapes :

  1. Nettoyez la solution.

  2. Construisez chaque projet séparément.

  3. Résolvez les erreurs si vous en trouvez (parfois, VS n'affiche pas les erreurs tant que vous ne l'avez pas construit séparément).

  4. Ensuite, essayez à nouveau d'exécuter la migration.

0 votes

Incroyable !!! thnks !!!! l'a travaillé

9voto

Yaroslav Points 127

J'ai eu la même situation. Ceci m'a aidé :

  1. Ouvrir la console du gestionnaire de paquets

  2. Changez de répertoire pour Migrations dossier :

    cd C:\YourSolution\YourProjectWithMigrations
  3. Entrez dans le PM :

    dotnet ef migrations add YourMigrationName

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