繁体   English   中英

NuGet 重新安装将 package 更新到更新版本

[英]NuGet reinstall updates the package to newer version

我已经清除了所有本地 NuGet 缓存,Visual Studio 16.9 无法恢复包。

它说:

所有软件包都已安装,没有什么可恢复的。

当我构建项目时,由于 NuGet 包没有恢复,我得到了很多错误。

该项目必须包含与 csproj 文件中的PackageReferences中完全相同的包,并且我已经读过使用 Package 管理器控制台可以通过执行Update-Package -reinstall命令来提供帮助。

Install-Package 命令不提供强制重新安装的选项,因此请改用 Update-Package -reinstall。

我试过了,现在我的日志中有这个:

项目的当前 package 源中没有 package 更新可用......

更新? 我不想更新任何东西...

已恢复 D:\Dev\MyProject01\MyProject01.csproj(在 29 毫秒内)。

从 MyProject01 成功卸载“Acr.UserDialogs 7.1.0.475”

成功将“Acr.UserDialogs 7.1.0.481”安装到 MyProject01

是如何重新安装 似乎更像是将 package 更新到更新版本...

我怎样才能重新安装相同的软件包?

更新

当我在解决方案资源管理器中使用重建命令时,这就是我所看到的。

在此处输入图像描述

实际上,右键单击解决方案->恢复 nuget 包是针对带有packages.config的缺少项目packages文件夹。 而且它不能单独检测全局缓存丢失的数据包。

这就是微软启用这两个设置的原因:

在此处输入图像描述

所以你不必担心恢复步骤。 只需单击Rebuild按钮而不是Build按钮。 这两个还原设置都在重建过程中。

该项目必须包含与 csproj 文件中 PackageReferences 中完全相同的包

update-package -reinstall命令适用于具有packages.config nuget 管理格式的非 sdk 样式项目,并且始终重新安装相同的版本。 而且我想知道您的解决方案是否具有使用packages.config的非 sdk 项目,并且该项目可以使用该命令。

我有一个带有net framework 4.5.2的非 SDK 项目。 看:

在此处输入图像描述

但是update-package -reinstall不适用于 new-sdk 项目。

ConsoleApp1是一个网络核心项目。

在此处输入图像描述

所以,我想知道你是否使用它下Update-Package 该命令是将旧版本更新为新版本,该版本可以在非 sdk 项目和 new-sdk 项目上运行。

在此处输入图像描述

在此处输入图像描述

结论

下次遇到问题时,只需单击“重建”按钮。 它更容易。

尝试删除项目的obj/目录(这是 NuGet 存储有关它决定使用哪些包的信息的位置),然后重新运行恢复。

如果您有源依赖项(即ProjectReference ),您可能还需要删除它们的obj/目录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM