NuGet 包管理器控制台默认项目下拉列表为空

Posted

技术标签:

【中文标题】NuGet 包管理器控制台默认项目下拉列表为空【英文标题】:NuGet Package Manager Console Default Project dropdown is empty 【发布时间】:2012-08-15 05:45:39 【问题描述】:

我最近从 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 命令添加迁移配置。


我的尝试

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

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


问题

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

【问题讨论】:

您可以运行get-Help Add-Migration 以获得该命令的完整帮助。该命令支持-ProjectName-StartUpProjectName。尝试使用它们。我不确定这是否对您有帮助,因为那些空的下拉菜单很奇怪。如果您还没有尝试过,也可以尝试重新启动 VS / 关闭和打开包管理器。 -StartupProjectName 应该可以解决问题。我有同样的问题:下拉列表是空的 @LadislavMrnka 谢谢。请参阅下面的答案。 @amhed 谢谢。请参阅下面的答案。 【参考方案1】:

在 VS 2015 中,我刚刚重启了 IDE,下拉菜单又被填满了。

【讨论】:

同样对我有用。出于某种原因,当一切都打开时,我的下拉菜单在某个时候变空了——似乎没有什么剧烈的变化。为 EF 运行 update-database 并收到“EntityFramework Package is not installed in project ''”消息。重新启动VS2015,一切恢复正常。奇怪 VS2019 相同【参考方案2】:

我可以通过以下方式手动指定项目:

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

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

我必须先恢复 NuGet 包。然后就显示出来了。

【讨论】:

【参考方案6】:

我不得不打开解决方案。

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

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

【讨论】:

【参考方案7】:

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

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

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

您可以选择Solution explorer 下的项目。然后它会显示在包管理器控制台上。它对我有用

【讨论】:

【参考方案10】:

如果有人在使用 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 包管理器和控制台将按预期工作。

【讨论】:

以上是关于NuGet 包管理器控制台默认项目下拉列表为空的主要内容,如果未能解决你的问题,请参考以下文章

Nuget包管理器控制台 - 包不包含清单

善用 NuGet 程序包管理器控制台

ABP中使用MySql数据库

vs2013怎么关闭nuget程序包预加载

解决“程序包管理器控制台”输入命令找不到Nuget包问题

如何从自定义 NuGet 包运行 EF 迁移?