我们在本地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。如果还有其他我可以添加的内容,请告诉我。
答案 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之外的所有内容。
解决方案
这为我修好了。希望它也会帮助其他人。
答案 2 :(得分:0)
转到您的.NET CLI
并粘贴以下内容:
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design --version 3.1.3>
答案 3 :(得分:0)