Выпадающий список проектов по умолчанию для диспетчера пакетов NuGet пуст

Недавно я обновился до версии RTM Ultimate от Visual Studio 2012 от MSDN. Я использую EF Code First Migrations для создания моей базы данных в своем приложении, и недавно я добавил новый объект и хочу поднять на него миграцию.

Для этого вам нужно открыть окно консоли управления пакетами в VS и ввести add-migration "some name here". Это приведет к изменению любых изменений в вашей базе данных с момента последнего обновления.


Проблема

Эта проблема не возникала на VS 2012 RC

Проблема, с которой я сталкиваюсь, - это раскрывающийся список "Проект по умолчанию" в консоли диспетчера пакетов не заполнен, несмотря на то, что в моем решении есть несколько проектов. Проект по умолчанию, который используется, когда я просто набираю команду выше, является неправильным проектом (мои миграции находятся в другом проекте). При этом я получаю следующую ошибку:

В сборке "ProjectA" не найден тип конфигурации миграции. (В Visual Studio вы можете использовать команду Enable-Migrations из консоли диспетчера пакетов, чтобы добавить конфигурацию миграции).

Visual Studio 2012 Package Manager Console


Что я пробовал

Я попытался установить правильный проект (ProjectB) в качестве запуска, только чтобы получить эту ошибку:

Не удалось загрузить сборку "ProjectA". (Если вы используете First First Migrations в Visual Studio, это может произойти, если проект startUp для вашего решения не ссылается на проект, содержащий ваши миграции. Вы можете либо изменить проект startUp для своего решения, либо использовать параметр -StartUpProjectName.)


Вопрос

Как я могу вручную указать, к какой миграции проекта добавлены, или принудительно заполнить раскрывающийся список Default Project?

Ответы

Ответ 1

Мне удалось вручную указать проект, используя следующее:

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

Документация для этой команды разрежена, поэтому я предполагаю, что это происходит:

  • -StartupProjectName указывает проект, в котором хранится конфигурация базы данных (проект MVC4 в моем случае)
  • -ProjectName указывает проект, в котором должны выполняться перемещения.

У меня был ProjectB установлен как проект запуска в моем приложении из-за тестирования для этого вопроса, но я думаю, что вы можете опустить -StartupProjectName, если правильный проект задан как проект запуска в VS.

Ответ 2

В VS 2015, я только что перезапустил IDE, и выпадающее меню было заполнено снова.

Ответ 3

Закройте среду IDE и снова откроется. Он работал над моим VS2015

Ответ 4

У меня была аналогичная проблема с Visual Studio 2013. Щелкнув правой кнопкой мыши по [Solution] → [Properties] → [Startup Project], убедитесь, что выбран [Single startup project]. Раньше у меня было несколько проектов, выбранных для тестирования роли рабочих Azure.

После существования VS менеджер пакетов работал нормально.

Ответ 5

Закройте решение и откройте его снова. Закрытие IDE иногда занимает больше времени. Это работает в VS 2017