使用Version="*"引用NuGet包时,如何强制Visual Studio获取最新正式版?
解决Visual Studio固定NuGet通配符版本的问题
方法1:删除锁定文件重新还原
- 删掉项目目录下的
packages.lock.json文件,这个文件是VS用来固定包版本的核心文件 - 右键项目选择「还原NuGet包」,此时VS会重新拉取符合
Version="*"规则的最新正式版
方法2:用命令行强制刷新版本
- 打开VS的「包管理器控制台」,执行命令:
Update-Package -Reinstall -ProjectName 你的项目名称
或者在VS终端里运行dotnet命令(稳定性更高):
dotnet restore --force-evaluate
这两个命令都会强制NuGet重新评估所有包版本,忽略本地缓存的锁定信息
方法3:修改NuGet配置禁用版本锁定
- 在项目根目录新建或修改
NuGet.Config文件,添加以下配置:
<configuration> <config> <add key="disableLockFileCreation" value="true" /> </config> </configuration>
该配置会阻止VS生成版本锁定文件,每次还原都会自动拉取符合规则的最新正式版
方法4:调整VS的NuGet包管理设置
- 打开「工具」→「选项」→「NuGet包管理器」→「常规」,勾选「允许NuGet下载缺少的包」和「在生成时自动检查缺少的包」
- 切换到「包还原」标签,勾选「在生成时自动还原NuGet包」和「允许并行还原NuGet包」,重启VS后再尝试还原
补充说明:Version="*" 默认只会匹配正式版,不会包含预览版,完全符合你的需求。如果问题仍存在,可检查解决方案级的NuGet配置是否覆盖了项目的版本规则。
内容的提问来源于stack exchange,提问作者user15581514
相关产品推荐
相关产品推荐

