迁移的 Visual Studio 项目未找到 NuGet 包

Posted

技术标签:

【中文标题】迁移的 Visual Studio 项目未找到 NuGet 包【英文标题】:Migrated Visual Studio Project not finding NuGet packages 【发布时间】:2019-06-26 14:39:59 【问题描述】:

我正在将 MVC ASP.NET Visual Studio 2010 项目迁移到 Visual Studio 2019。

Visual Studio 2010 项目使用了一些旧的 jQuery NuGet 包,由于时间限制以及整个项目中不适合我当前范围的大量更改,我无法更新到当前包。

迁移的 2019 年项目显示许多与 NuGet 包相关的错误:

NuGet Package restore failed for project MyWebProject: Unable to find version '3.2.0' of package 'Microsoft.jQuery.Unobtrusive.Ajax'.
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'Microsoft.jQuery.Unobtrusive.Ajax.3.2.0' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
  Please see Error List window for detailed warnings and errors.            

NuGet Package restore failed for project MyWebProject: Unable to find version '2.1.1' of package 'jQuery'.
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'jQuery.2.1.1' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
  Please see Error List window for detailed warnings and errors.        
...
...
...

在 Visual Studio 2019 项目中,当我查看 NuGet 已安装的包时,我看到列出的包但带有一条消息此源中不可用

根据错误信息,Visual Studio 正在 C:\Program Files(x86)\Microsoft SDKs\NuGetPackages 中寻找包;但是它应该在一个名为“packages”的目录中查找实际包含这些包的目录。

我已将包目录与项目放在同一目录中(但最好将它们放在公共资源目录中,以便团队在/如果他们正在处理此项目时可以找到它们)。我还编辑了包目录中的 repositories.config 文件以指向项目的 packages.config 文件。

如果需要,我可以将所有这些恢复为默认值。

我所做的一切都没有帮助我解决这个问题。

如何指示 Visual Studio 2019 使用存在于不是 Program Files 目录的目录中的包?

谢谢

【问题讨论】:

【参考方案1】:

如何指导 Visual Studio 2019 使用现有的包 在不是 Program Files 目录的目录中?

根据您的错误信息:请到Tools=>Options=>Nuget Package Manager检查您的包源设置。

也许你还没有检查 nuget.org 作为你的包源。请检查此设置:

在VS中,当你点击Restore Nuget Packages选项时,它会搜索包from available sources。大多数时候我们需要恢复的包来自Nuget Gallery。就像JQuery 2.1.1 一样,默认情况下我们会将nuget.org 设置为我们必要的包源。

我检查了是否取消选中 nuget.org,然后我遇到了和你一样的问题。

所以请:

1.检查nuget.org作为你的包源,如果它不存在,只需点击绿色的+创建一个新的源并将其源设置为https://api.nuget.org/v3/index.json

2.如果 nuget.org 存在且处于选中状态,请确保其链接正确 另外:

但是它应该在一个名为“packages”的目录中查找 实际上包含包。

如果你的意思是packages文件夹是位于Solution directory的文件夹:在我看来,Restore Nuget Package并不意味着searching sources from the packages folder,而是它会从available package sources搜索包并将它们安装到@987654335 @如果packages folder.(对于packages.config格式)中缺少某些内容

【讨论】:

哇,非常感谢。我根本没找对地方!它没有 nuget.org 源代码。

以上是关于迁移的 Visual Studio 项目未找到 NuGet 包的主要内容,如果未能解决你的问题,请参考以下文章

Teamcity Visual Studio sln 未找到目标(项目文件夹内的项目)

Microsoft Visual Studio2013 新建项目时“弹出未找到约束”对话框

在 Visual Studio 2019 中编译默认 Angular 项目时未找到(但已安装)node.js

从 Visual Studio 2015 迁移后,Qt Creator 未显示 Qlabel 的边框图像

包含上的 Visual Studio C++“未找到函数定义”

Windows小技巧11--Visual Studio 未找到与约束ContractName *** 错误