Nuget 恢复根本不起作用

Nuget Restore Doesn't work at all

带有 NuGet 包的项目无法编译,错误是:"The project references NuGet package(s) that are missing on this computer, Enable NuGet Package Restore to download them."

这是 Visual Studio 中的 Nuget 恢复选项:

如果我查看项目中的引用,我发现不仅仅是缺少 Nuget 包!

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

如果我尝试以下程序包管理器控制台选项:

update-package -reinstall -projectname myProjectName

输出 window 成功卸载并重新安装所有软件包!

None 的参考资料很好,它们仍然是上图中的所有黄色标记。

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 错误,说缺少包。我尝试成功恢复所有 NUGET pkg。使用解决方案级别 "Restore all Packages"。编译然后为 AllSolutions.sln.

工作

然后我从 C:drive 打开了一个解决方案(正确映射到 TFS)。这是上面显示的问题浮出水面的时候。

现在可以编译了,这是解决方案:

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

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

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

作为证明,上面显示的原始 "Yellow Tagged" 引用现在看起来像这样:

根本原因:

我认为在多个项目中包含同一个项目会产生与 Nuget 恢复相关的副作用。原因是 .nuget 文件夹被移除,如图 post.

学到了什么:

不需要迁移 Nuget 脚本。

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