20

I am on Nuget 2.5.4. The 'Manage packages for entire solution' feature to install Updates is intermittently showing 'false positives'.

By false positive, I mean an indication that something in the solution needs an update, BUT every project in the solution is already at the latest update. At least I think that is what is going on.

For example (see below), nuget is offering to help install NUnit but every package is grayed out. The test projects should be grayed out since they are already at the latest release.

Packages without NUnit are also grayed out though, and I would think they should not be, so the solution manager can install them. So not sure if my false positive theory is correct, but something is out of sync.

What is the fix?

Cheers,

enter image description here

enter image description here

4

5 回答 5

19

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

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

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

于 2013-09-30T10:31:05.520 回答
12

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

确保误报在当前版本旁边没有此目录中的旧版本。

于 2014-01-06T16:48:39.687 回答
1

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

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

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

编辑:根据您的项目类型,您可能没有 web.config 并且并非所有包都写入应用程序配置设置。

于 2013-05-28T19:58:39.273 回答
0

很久以后,但提到以防其他人出现。运行 NuGet 2.8.x,我在包管理器 GUI 上遇到了很多相同的问题(转到控制台进行更新,它会说明每个包都是最新的)。

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

于 2015-02-12T20:05:46.347 回答
0

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

于 2015-05-19T14:50:20.033 回答