Visual Studio不为NuGet包下载DLL

时间:2016-09-13 13:13:16

标签: visual-studio-2015 nuget

我们在本地TeamCity服务器上有一些NuGet包,并在各种项目中使用它们。我刚刚从假期回来,从源代码中获取最新信息,并尝试重建,但由于缺少DLL而导致一堆编译错误。

似乎我们的某个软件包的DLL没有从NuGet下载。我尝试启动一个新的WPF项目,并添加了三个包。这三个都出现在packages.config文件中,但只有两个下载了DLL。第三个只下载了* .pdb文件。

团队中没有其他人有这个问题,我在我的备用机器上尝试了它,它下载得很好,所以看起来我的机器,Visual Studio或NuGet安装问题。但是,由于我可以毫无问题地从同一来源获取其他软件包,因此它看起来不像是VS或NuGet的全局问题。

我意识到还有很多事情要做,但我不知道还能告诉你什么。如果有人可以提出任何建议,我将非常感激。由于包装来源是我们自己的,不幸的是我无法分享。

我在Windows 10 Pro 64位(版本1607,版本14393.105)上使用Visual Studio Enterprise 2015 Update 3(内部版本14.0.25424.00)和NuGet包管理器版本3.4.4.1321。如果还有其他我可以添加的内容,请告诉我。

4 个答案:

答案 0 :(得分:21)

将此作为答案发布,以便其他人可以找到它,即使您似乎自己找到了答案。我一直在解决这个问题,所以要了解你的问题。

首先关闭Visual Studio的所有实例。当在VS之外做任何会影响VS认为正在发生的事情时,这通常是一个好主意。

如您所见,您需要使用nuget的命令行版本来清除缓存。你的第一个问题是找到这个,因为它并不明显。你的第二个问题(如果你搜索它)是你会发现它们的负载,每个解决方案的.nuget文件夹中有一个。

解决此问题的最简单方法是从他们的网站download the latest nuget.exe。将它保存在远离任何项目的地方,以防再次需要它。

此时,您将无法运行命令来清除缓存,因为您需要先升级nuget本身。我同意这看起来很奇怪,因为你刚刚下载了最新的,但你需要做以下事情...

nuget update -self

完成后,您可以按照jessehouwing提到的那样清除缓存...

nuget.exe locals all -clear

下次启动Visual Studio时,您会发现所有内容都按预期工作。您可能需要卸载并重新安装软件包以使其全部正常工作,但清除缓存后,应该可以正常工作。

希望一切都清楚。

答案 1 :(得分:2)

为了搜索者的利益(因为这让我感到有些沮丧)。

当我搬到新机器(Windows 10)时遇到了类似的问题,Nuget(在我的旧Win10机器上很好)会导致除了dll之外的所有内容。

解决方案

  1. 转到开始菜单,然后键入“通过Windows防火墙允许应用”
  2. 点击“更改设置”,然后点击“允许其他应用”
  3. 输入您的Visual Studio位置(例如,对于VS 2017 - C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE,然后单击devenv.exe)
  4. 为了确定,我检查了私人和公共网络。
  5. 删除了包文件夹
  6. 包恢复或重建项目
  7. 这为我修好了。希望它也会帮助其他人。

答案 2 :(得分:0)

转到您的.NET CLI并粘贴以下内容:

dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design --version 3.1.3>

答案 3 :(得分:0)

这确实使我们的程序员感到沮丧。不编码,只是弄乱一台PC上运行的东西,而不是另一台。

坦率地说,它经常发生。

无论如何,我想我应该共享一个带有复选框的小滑块面板,它可以为我解决这个问题。

在某些包装的参考书中,我得到了黄色的小星号图标。

发布Update-Package -Reinstall失败,因为这些软件包与其他软件包有依赖关系。

进入nuget菜单,我看到了一个“选项”滑块。单击它。

所以现在您看到类似这样的内容:

enter image description here

现在检查是否允许强制重新安装有问题的软件包。

顺便说一句,当在新机器上开始开发时,我已经花了几个小时了(这不是第一次出现相同的问题)。