我在Nuget 2.5.4上。用于安装更新的“管理整个解决方案的软件包”功能会间歇性地显示“误报”。
误报是指解决方案中的某些内容需要更新,但解决方案中的每个项目都已进行最新更新。至少我认为正在发生的事情。
例如(见下文),nuget提供帮助安装NUnit,但每个软件包都显示为灰色。测试项目应该显示为灰色,因为它们已经是最新版本。
没有NUnit的软件包也是灰色的,我认为它们不应该是,所以解决方案管理器可以安装它们。所以不确定我的误报理论是否正确,但某些事情是不同步的。
修复是什么?
干杯,
答案 0 :(得分:19)
从Process Monitor
的输出看来,解决方案范围的更新似乎是根据解决方案根目录下的Packages
文件夹的内容确定的:
它会扫描文件夹并检查已下载的所有软件包的更新,并显示旧软件包的更新,即使新软件包也在那里。
因此,为了同步它,您应该清除此文件夹,然后恢复解决方案的包。之后,下次打开此对话框时,它将显示正确的结果。
答案 1 :(得分:12)
直接转到解决方案的包物理目录,例如C:\ projects \\ packages。
确保误报在此目录中没有旧版本以及当前版本。
答案 2 :(得分:1)
我的源代码管理有时会锁定配置文件,以致我的web.config
和packages.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
中的所有子文件夹。