NuGet包管理器Update-Package命令中-r参数的作用是什么?
NuGet
Update-Package 命令中 -r 参数的作用说明 你关于该参数对应重装功能的猜测是完全准确的。
核心行为
-r是 NuGet 包管理器控制台内置的简写参数,对应的完整参数名为-Reinstall。执行带该参数的Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r命令时,NuGet 不会尝试将指定包升级到在线仓库中的最新版本,而是执行完整重装流程:- 遍历解决方案下所有引用了该指定包的项目
- 先完全卸载每个项目中已安装的对应包
- 再按照项目配置文件中记录的包版本,重新安装完全相同版本的包文件
为什么公开指南中找不到对应说明
你查阅的 NuGet 官方包重装与更新指南未提及该参数,属于文档同步不全的情况:
- NuGet 早期版本曾提供独立的
Reinstall-Package命令实现重装能力,后续版本迭代时把重装逻辑合并进了Update-Package的参数体系,将完整功能参数命名为-Reinstall。PowerShell 控制台默认支持取参数名的首字母作为简写别名,因此衍生出了-r的通用写法。 - 社区中大量技术解答沿用了这个简写参数的用法,没有严格按照官方文档的完整参数名做表述,进一步导致新用户很难找到对应官方说明。
适用场景
带 -r 的重装命令,通常会在以下场景被使用:
- 项目构建报错,提示 NuGet 引用的包文件缺失、引用路径失效时
- 项目调整目标框架版本,需要重新适配安装对应兼容版本的包时
- 本地 NuGet 缓存损坏,导致项目无法正常还原包文件时
内容的提问来源于stack exchange,提问作者OliverRadini
相关产品推荐
相关产品推荐

