Visual Studio不为NuGet包下载DLL

Dre*_*eep 14 nuget visual-studio-2015

我们在本地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.如果还有其他我可以添加的内容,请告诉我.

Avr*_*oel 24

发布此作为答案,以便其他人可以找到它,即使您似乎自己找到了答案.我遇到过这个问题,所以要了解你的问题.

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

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

解决这个问题的最简单方法是从他们的网站下载最新的nuget.exe.将它保存在远离任何项目的地方,以防您再次需要它.

此时,您将无法运行命令来清除缓存,因为您需要先升级nuget本身.鉴于您刚下载了最新版本,我同意这看起来很奇怪,但您需要执行以下操作...

nuget update -self
Run Code Online (Sandbox Code Playgroud)

完成后,您可以清除缓存,因为jessehouwing提到了......

nuget.exe locals all -clear
Run Code Online (Sandbox Code Playgroud)

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

希望一切都清楚.


Hoc*_*eyJ 5

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

当我搬到新机器(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. 删除了packages文件夹
  6. 包恢复,或重建项目

这为我解决了这个问题。希望它也能对其他人有所帮助。


归档时间:

查看次数:

9423 次

最近记录:

7 年,3 月 前