nuget包管理器不同步

时间:2013-05-28 18:53:30

标签: .net visual-studio-2010 nuget

我在Nuget 2.5.4上。用于安装更新的“管理整个解决方案的软件包”功能会间歇性地显示“误报”。

误报是指解决方案中的某些内容需要更新,但解决方案中的每个项目都已进行最新更新。至少我认为正在发生的事情。

例如(见下文),nuget提供帮助安装NUnit,但每个软件包都显示为灰色。测试项目应该显示为灰色,因为它们已经是最新版本。

没有NUnit的软件包也是灰色的,我认为它们不应该是,所以解决方案管理器可以安装它们。所以不确定我的误报理论是否正确,但某些事情是不同步的。

修复是什么?

干杯,

enter image description here

enter image description here

5 个答案:

答案 0 :(得分:19)

Process Monitor的输出看来,解决方案范围的更新似乎是根据解决方案根目录下的Packages文件夹的内容确定的:

它会扫描文件夹并检查已下载的所有软件包的更新,并显示旧软件包的更新,即使新软件包也在那里。

因此,为了同步它,您应该清除此文件夹,然后恢复解决方案的包。之后,下次打开此对话框时,它将显示正确的结果。

答案 1 :(得分:12)

直接转到解决方案的包物理目录,例如C:\ projects \\ packages。

确保误报在此目录中没有旧版本以及当前版本。

答案 2 :(得分:1)

我的源代码管理有时会锁定配置文件,以致我的web.configpackages.config在NuGet更新后有时会不同步。

通常显示构建事件的output窗口将显示NuGet更新/安装通常出现的问题。

大多数时候在配置文件上释放readonly,然后进行另一次更新将修复配置文件。如果这不起作用,我必须删除并重新安装一些软件包。

修改:根据您的项目类型,您可能没有web.config,并且并非所有软件包都会写入应用配置设置。

答案 3 :(得分:0)

很久以后,但提到有人出现的情况。运行NuGet 2.8.x时,我遇到了与包管理器GUI相同的问题(转到控制台进行更新,并指出每个包最新)。

要解决这个问题,我清理了我的项目包目录(当然除了repositories.config文件),这反过来表明存在一个NuGet版本冲突:在我的解决方案的根目录中,.nuget目录包含一个过时的NuGet 。可执行程序。我删除了.nuget目录,重建了,现在我们又好了(所有下载的包和包管理器中只包含更新的包)。

答案 4 :(得分:0)

我的解决方案是关闭Visual Studio并删除/packages文件夹中的所有内容。您还可以删除NuGet更新列表中列为误报的/packages中的所有子文件夹。