Выпадающий список проектов по умолчанию для диспетчера пакетов 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