2016-08-17 126 views
0

NuGet包的项目无法编译,错误是:“项目引用了此计算机上缺少的NuGet包,请启用NuGet包还原以下载它们。”Nuget Restore完全不起作用

这里的的NuGet在Visual Studio中恢复选项:

Nuget Restore Option

如果我期待在项目的参考,我看到的不仅仅是的NuGet包丢失更多!

Missing References

如果我试图恢复在溶液层...

Solution Restore

如果我尝试的软件包管理器控制台选项:

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

编译现在正在工作,这里是解决办法:

我重新启动Visual Studio中,连接到TFS和前点击了相同的解决方案。但是这一次,这个项目已经在其新项目如下:

New Items in Project

的.nuget文件夹是当我列入AllSolutions.sln这个项目,这显然不见了原来的文件夹。 (注意我没有手动删除这个文件夹)。第二个是我们拥有的内部项目,它只是指定了我们在packages.config文件中使用的包。

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

而且作为证明,上面显示原来的“黄标”引用现在这个样子:

Original

根本原因:

我相信,包括在多个项目在同一项目有副作用与Nuget restrore相关的效果。原因是.nuget文件夹被删除,如本文所示。

我们了解了什么:

的NuGet的迁移脚本是没有必要的。

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