包管理器控制台中的NuGet默认安装包的旧版本

包管理器控制台中的NuGet默认安装包的旧版本,nuget,Nuget,我们有一个用于类库的内部NuGet存储库。我创建了一个包MyPackage Version 1.0.0,它有一个bug,所以我推送了一个包的新版本(或修订版),1.0.0.1 现在,当我创建一个新项目并使用Manage NuGet Packages对话框时,我会在安装包时获得最新版本(1.0.0.1)。但是,当我为另一个新项目使用包管理器控制台并键入Install Package MyPackage时,默认情况下我得到的版本是1.0.0.0 为什么会发生这种情况?我在NuGet文档中找不到解释为

我们有一个用于类库的内部NuGet存储库。我创建了一个包MyPackage Version 1.0.0,它有一个bug,所以我推送了一个包的新版本(或修订版),1.0.0.1

现在,当我创建一个新项目并使用Manage NuGet Packages对话框时,我会在安装包时获得最新版本(1.0.0.1)。但是,当我为另一个新项目使用包管理器控制台并键入Install Package MyPackage时,默认情况下我得到的版本是1.0.0.0


为什么会发生这种情况?我在NuGet文档中找不到解释为什么会发生这种情况的任何内容,因此它似乎是NuGet.exe中的一个错误。

尝试运行Update Package命令

包可能是本地“缓存”的,当您使用“安装”时,它只获取缓存版本

您还可以通过转到以下位置进行验证:

C:\Users\~MyUserName~\AppData\Local\NuGet\Cache\
(当然要替换~MyUserName~)

然后从那里删除包…然后“安装”。
(这个想法是,如果它不在缓存中,它将返回服务器获取它)

如果有人遇到这个问题,它是2.7中的一个bug,从2.8开始已经修复。详情见:


将客户端升级到2.8将修复此问题。

我也遇到此问题,下面的修复没有帮助-我删除了缓存版本,然后进行了“安装”,仍然获得了旧版本。但是,运行更新会将包更新为最新版本。有人对此有解决方案吗?我在Nuget codeplex上提出了一个问题:升级投票,以便有人修复错误!谢谢我投了更高的票。我现在无法尝试下面建议的解决方案,但从您在CodePlex的问题链接到的问题来看,这似乎是NuGet中的一个错误。Fraid这对我不起作用-我从缓存中删除了所有软件包,然后在我们的一个私有软件包上安装了该软件包,得到了一个旧版本。之后运行更新包将提供最新版本,但安装包首先应提供最新版本。它适用于nuget.org,但不适用于我们的私有服务器:(//安装包首先应该提供最新版本//……,这是其中之一”d@mned如果你这样做,d@mned如果你不为原始开发者提供“场景”,这就是为什么“更新包”存在……移动到更高版本。因此,我对缓存部分不感兴趣,但在某个地方它“记得”已安装版本的方式。由于我对所有场景的了解不多,我可以站在您的一边,但可能(在某个地方)有一种情况可能会让最终开发人员陷入困境。我知道你的意思,但似乎90%的情况下,当你安装软件包时,你想要的是最新的版本。如果你想要一个旧版本,你已经有了-version标志来选择一个特定的旧版本。不管怎样,对nuget.org运行命令都没有意义提供了最新版本,但在本地服务器上运行该命令却没有。