web-dev-qa-db-fra.com

La liste des projets par défaut de la console NuGet Package Manager Console est vide

J'ai récemment mis à niveau vers Visual Studio 2012 RTM Ultimate à partir de MSDN. J'utilise EF Code First Migrations pour créer ma base de données dans mon application. Récemment, j'ai ajouté une nouvelle entité et je souhaite échafauder la migration. 

Pour ce faire, vous devez ouvrir la fenêtre Package Manage Console dans VS et saisir add-migration "some name here". Cela échafaudera toutes les modifications apportées à votre base de données depuis sa dernière mise à jour.


Le problème

Ce problème ne s'est pas produit sur VS 2012 RC

Le problème que je rencontre est la liste déroulante "Projet par défaut" dans la console du gestionnaire de package, même si plusieurs projets figurent dans ma solution. Le projet par défaut utilisé lorsque je tape simplement la commande ci-dessus est un projet incorrect (mes migrations se font dans un autre projet). J'obtiens l'erreur suivante quand je fais ceci:

Aucun type de configuration de migration n'a été trouvé dans l'assembly 'ProjectA'. (Dans Visual Studio, vous pouvez utiliser la commande Enable-Migrations de la console Package Manager pour ajouter une configuration de migrations).

Visual Studio 2012 Package Manager Console


Ce que j'ai essayé

J'ai essayé de définir le projet correct (ProjectB) en tant que projet de démarrage, uniquement pour obtenir cette erreur:

Impossible de charger Assembly 'ProjectA'. (Si vous utilisez Migration de Code First dans Visual Studio, cela peut se produire si le projet de démarrage de votre solution ne fait pas référence au projet contenant vos migrations. Vous pouvez modifier le projet de démarrage de votre solution ou utiliser le paramètre -StartUpProjectName.)


La question

Comment puis-je spécifier manuellement les migrations de projets à ajouter ou forcer le menu déroulant Projet par défaut à être renseigné?

19
Kyle Trauberman

J'ai été en mesure de spécifier manuellement le projet en utilisant les éléments suivants:

add-migration "Locations" -StartupProjectName "ProjectA" -ProjectName "ProjectB"

La documentation de cette commande est rare, alors voici ce que je suppose:

  1. -StartupProjectName spécifie le projet dans lequel la configuration de la base de données est stockée (un projet MVC4 dans mon cas)
  2. -ProjectName spécifie le projet dans lequel les migrations doivent être échafaudées.

J'avais ProjectB défini comme projet de démarrage dans mon application en raison du test de cette question, mais je pense que vous pouvez omettre -StartupProjectName si le projet correct est défini comme projet de démarrage dans VS.

15
Kyle Trauberman

Dans VS 2015, je viens de redémarrer le IDE et le menu déroulant a été rempli à nouveau.

11
danpop

Fermez le IDE et ouvrez-le à nouveau peut aider. Cela a fonctionné sur mon VS2015

2
Hung Vu

Fermez la solution et ouvrez-la à nouveau. La fermeture de IDE prend parfois plus de temps. Cela fonctionne dans VS 2017

0
dE Source

Je devais d'abord restaurer les paquets NuGet. Ensuite, il a montré.

0
Halvard

J'ai eu un problème similaire avec Visual Studio 2013. En cliquant avec le bouton droit de la souris sur [Solution] -> [Propriétés] -> [Projet de démarrage], assurez-vous que [Projet de démarrage unique] est sélectionné. Auparavant, plusieurs projets avaient été sélectionnés pour le test du rôle de travail Azure.

Après le VS existant, le gestionnaire de paquets a bien fonctionné.

0
Greg Engle