首页 > 解决方案 > 迁移的 Visual Studio 项目未找到 NuGet 包

问题描述

我正在将 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 Installed 包时,我看到列出的包但带有消息Not available in this source

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

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

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

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

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

谢谢

标签: nugetnuget-packagevisual-studio-2019nuget-package-restore

解决方案


如何指示 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这并不意味着,相反,如果.(对于 packages.config 格式)中缺少某些内容searching sources from the packages folder,它将从中搜索软件包available package sources并将其安装到packages folderpackages folder


推荐阅读