使用NuGet包的项目将无法编译,错误是:“项目引用此计算机上缺少的NuGet包,启用NuGet包还原以下载它们。”
这是Visual Studio中的Nuget Restore选项:
如果我查看项目中的参考文献,我看到的不仅仅是Nuget包丢失了!
如果我尝试在解决方案层恢复...
如果我尝试使用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)。这是当上面显示的问题出现时。
答案 0 :(得分:1)
编译现在正在运行,这是解决方案:
我重新启动了Visual Studio,连接到TFS并点击了与之前相同的解决方案。但这次,该项目的新项目如下:
.nuget文件夹是我在AllSolutions.sln中包含此项目时显然消失的原始文件夹。 (注意我没有手动删除此文件夹)。第二个是我们的内部项目,它只是指定我们在packages.config文件中使用的包。
我不知道为什么重新连接到TFS,从团队资源管理器菜单打开解决方案文件(在VS重新启动后)修复了此问题。但也许这会帮助其他人。
作为证明,原始&#34;黄色标记&#34;上面显示的参考文件现在看起来像这样:
根本原因:
我认为在多个项目中包含相同的项目会产生与Nuget restrore相关的副作用。原因是.nuget文件夹被删除,如本文所示。
学到了什么:
没有必要迁移Nuget脚本。
如果您的项目遇到此问题,则可能与缺少的.nuget文件夹有关!祝它恢复好运。