Nuget Restore根本不起作用

时间:2016-08-17 22:41:04

标签: visual-studio nuget-package-restore

使用NuGet包的项目将无法编译,错误是:“项目引用此计算机上缺少的NuGet包,启用NuGet包还原以下载它们。”

这是Visual Studio中的Nuget Restore选项:

Nuget Restore Option

如果我查看项目中的参考文献,我看到的不仅仅是Nuget包丢失了!

Missing References

如果我尝试在解决方案层恢复...

Solution Restore

如果我尝试使用Package Manager Console选项:

update-package -reinstall -projectname myProjectName

输出窗口成功卸载然后重新安装所有软件包!

没有一个参考文献是好的,它们仍然都是黄色标记,如上图所示。

Packages.Config文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="NUnit" version="3.4.0" targetFramework="net45" />
  <package id="Selenium.Support" version="2.53.1" targetFramework="net45" />
  <package id="Selenium.WebDriver" version="2.53.1" targetFramework="net45" />
  <package id="Selenium.WebDriver.ChromeDriver" version="2.23.0.1" targetFramework="net45" />
</packages>

什么时候开始失败?

今天我必须创建一个包含文件夹中所有项目的解决方案(其中只有一个是上面示例中显示的项目)。我把它命名为AllSolutions.sln。当我添加所有这些项目时,我得到Nuget错误,说pacakges丢失了。我成功地试图恢复所有NUGET pkgs。使用解决方案级别“还原所有包”。编译然后适用于AllSolutions.sln。

然后我从我的C:驱动器中打开了一个解决方案(正确映射到TFS)。这是当上面显示的问题出现时。

1 个答案:

答案 0 :(得分:1)

编译现在正在运行,这是解决方案:

我重新启动了Visual Studio,连接到TFS并点击了与之前相同的解决方案。但这次,该项目的新项目如下:

New Items in Project

.nuget文件夹是我在AllSolutions.sln中包含此项目时显然消失的原始文件夹。 (注意我没有手动删除此文件夹)。第二个是我们的内部项目,它只是指定我们在packages.config文件中使用的包。

我不知道为什么重新连接到TFS,从团队资源管理器菜单打开解决方案文件(在VS重新启动后)修复了此问题。但也许这会帮助其他人。

作为证明,原始&#34;黄色标记&#34;上面显示的参考文件现在看起来像这样:

Original

根本原因:

我认为在多个项目中包含相同的项目会产生与Nuget restrore相关的副作用。原因是.nuget文件夹被删除,如本文所示。

学到了什么:

没有必要迁移Nuget脚本。

如果您的项目遇到此问题,则可能与缺少的.nuget文件夹有关!祝它恢复好运。