NuGet包还原问题

时间:2013-08-13 07:51:30

标签: c# dll visual-studio-2012 nuget nuget-package

我需要NuGet自动恢复包。目前,参考的dll丢失了。

我已在我的解决方案上启用了package restore

签入.nuget文件夹。

为每个项目签入packages.config文件。

packages文件夹(在解决方案级别上)是签到的。

packages文件夹包含解决方案使用的所有软件包的文件夹,每个软件包包含nuspecnupkg个文件。 dll未签入。

VisualStudio中安装了软件包,但缺少对每个项目中的dll的引用(请勿检入dll)。

我尝试安装NuGetPowerTools。同样的故事。

谢谢,

4 个答案:

答案 0 :(得分:1)

没有理由在packages文件夹下签到任何内容。 (可选)您可以签入repositories.config文件,但从技术上讲,这不是必需的。

我是否正确检查了Packages文件夹中的nuspec和nupkg文件?如果是这样,删除它们。这些将被恢复,它们的存在可能导致恢复失败(我不认为NuGet包恢复正在检查包内容的存在,而是检查Packages文件夹中是否存在nupkg / nuspec文件,跳过如果发现,包裹将被恢复)

总之,请仅登记:

  1. 空解决方案级别packages文件夹(可选择repositories.config
  2. .nuget文件夹及其内容
  3. 每个项目
  4. packages.config

答案 1 :(得分:1)

我在Visual Studio 2015 Update 3中遇到此问题。

找到一个适合我的solution

  

进入用户配置文件NuGet缓存   (C:\Users\<username>\.nuget\packages\),并删除了所有内容   那里。

     

我认为在恢复过程中,我的缓存已清除所有DLL   文件,当我尝试安装包时,它正在使用缓存   而不是NuGet的文件。现在我已经清除了缓存,我   现在可以安装NuGet包。

答案 2 :(得分:0)

这几乎与我曾经出现的症状相同,然后原因是packages.config上的权限级别。删除文件解决了它。

我不知道它是否会对您有所帮助,但请查看所有文件的权限集。

答案 3 :(得分:0)

此处相同,删除了配置并重新引用了所有包。认为它与SVN有关。