33

我最近从 MSDN 升级到 Visual Studio 2012 RTM Ultimate。我正在使用 EF Code First Migrations 在我的应用程序中构建我的数据库,并且我最近添加了一个新实体,并希望为它搭建迁移框架。

为此,您需要在 VS 中打开 Package Manage Console 窗口,然后键入add-migration "some name here". 这将为您的数据库自上次更新以来所做的任何更改提供支架。


问题

VS 2012 RC 上没有出现此问题

我遇到的问题是包管理器控制台中的“默认项目”下拉列表未填充,尽管我的解决方案中有多个项目。当我只键入上面的命令时使用的默认项目是错误的项目(我的迁移在另一个项目中)。执行此操作时出现以下错误:

在程序集“ProjectA”中找不到迁移配置类型。(在 Visual Studio 中,您可以使用包管理器控制台中的 Enable-Migrations 命令添加迁移配置)。

Visual Studio 2012 包管理器控制台


我试过的

我尝试将正确的项目(ProjectB)设置为启动项目,但得到此错误:

无法加载程序集“ProjectA”。(如果您在 Visual Studio 中使用 Code First 迁移,如果您的解决方案的启动项目未引用包含您的迁移的项目,则可能发生这种情况。您可以更改解决方案的启动项目或使用 -StartUpProjectName 参数。)


问题

如何手动指定添加到哪些项目迁移,或强制填充默认项目下拉列表?

4

10 回答 10

20

在 VS 2015 中,我刚刚重新启动了 IDE,并且再次填充了下拉菜单。

于 2016-05-16T13:57:17.090 回答
17

我可以使用以下命令手动指定项目:

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

该命令的文档很少,所以我假设正在发生的事情:

  1. -StartupProjectName指定存储数据库配置的项目(在我的例子中是 MVC4 项目)
  2. -ProjectName指定要在其中构建迁移的项目。

ProjectB由于对此问题的测试,我已在我的应用程序中设置为启动项目,但我认为-StartupProjectName如果在 VS 中将正确的项目设置为启动项目,您可以省略。

于 2012-08-20T03:18:31.590 回答
4

关闭 IDE 并再次打开可能会有所帮助。它适用于我的 VS2015

于 2017-12-14T03:47:16.630 回答
2

关闭解决方案并再次打开它。关闭 IDE 有时需要更多时间。这适用于 VS 2017

于 2018-01-17T15:11:08.317 回答
1

我必须先恢复 NuGet 包。然后它显示了。

于 2018-07-13T13:07:15.840 回答
1

我不得不打开解决方案。

要查看解决方案,请查看“解决方案资源管理器”窗格的底部。应该有一个“团队资源管理器”选项卡。点击它。然后在窗格的下半部分,应该列出您的解决方案。双击要为其安装东西的解决方案,或右键单击它并选择“打开”。

这应该会打开包管理器控制台,并预先选择正确的项目。

于 2020-07-14T19:27:51.683 回答
0

我在 Visual Studio 2013 中遇到了类似的问题。右键单击 [Solution]->[Properties]->[Startup Project] 确保选择了 [Single startup project]。我之前为 Azure 辅助角色测试选择了多个项目。

在现有的 VS 之后,包管理器工作正常。

于 2014-01-17T14:30:55.250 回答
0

首先关闭vs,然后转到设置您的计算机,应用程序和功能,microsoft-visual-studio-installer,修改,在第二个选项卡中,您将获得一个选项来定义您要使用vs的哪些部分,选择任何属于努吉特。完成后,再次打开vs。现在它应该工作成功!

于 2020-05-12T10:34:05.873 回答
0

您可以选择解决方案资源管理器下的项目。然后它显示在包管理器控制台上。它对我有用

于 2020-05-29T06:47:21.547 回答
0

如果有人在使用 Visual Studio 2019 和 .NET Core 项目时遇到此问题,这是因为该界面缺少将解决方案文件添加到项目的方法。

我能够通过使用命令行工具解决问题,如下所示:

首先导航到保存项目的文件夹并打开一个 (git) bash控制台窗口。

然后将解决方案文件添加到文件夹中。

dotnet new sln 

然后在解决方案中添加对每个项目的引用(* 会找到所有解决方案)

dotnet sln *.sln add <project-folder-1>/<project-name-1>.csproj
dotnet sln *.sln add <project-folder-2>/<project-name-2>.csproj

注意 请记住将项目文件夹和名称替换为您需要的内容。

关闭 Visual Studio 2019 并重新打开。

Nuget 包管理器和控制台将按预期工作。

于 2020-06-30T09:45:08.130 回答