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 包管理器控制台默认项目下拉列表为空的主要内容,如果未能解决你的问题,请参考以下文章