迁移的Visual Studio Project找不到NuGet包

时间:2019-06-26 14:39:59

标签: nuget nuget-package visual-studio-2019 nuget-package-restore

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

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”的目录中查找。

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

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

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

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

谢谢

1 个答案:

答案 0 :(得分:0)

  

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

根据您的错误消息:请转到Tools=>Options=>Nuget Package Manager检查有关“程序包来源”的设置。

也许您没有检查nuget.org作为软件包的来源。请检查以下设置:

enter image description here

在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,而是从{ {1}},如果available package sources中缺少某些内容,则将它们安装到packages folder。(对于packages.config格式)