如何在Visual Studio NuGet包管理器中屏蔽.NET 9相关更新
实现.NET 8项目仅接收8.x.x版本NuGet更新的方案
完全可以通过配置项目文件或NuGet设置实现需求,以下是具体方法:
1. 单个项目锁定包版本范围(推荐)
直接修改项目的.csproj文件,给目标NuGet包指定版本区间约束,确保仅在8.x.x范围内更新:
- 找到对应的
PackageReference节点,将固定版本改为区间格式[8.0.0, 9.0.0)(表示≥8.0.0且<9.0.0的版本) - 示例:
这样NuGet在检查更新时,只会筛选8.x.x系列的补丁版本(比如8.0.12),自动排除9.x.x及以上版本。<!-- 原配置 --> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.11" /> <!-- 修改后 --> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="[8.0.0, 9.0.0)" />
2. 项目级NuGet.Config全局约束
如果需要统一约束多个Microsoft类库,可在项目根目录创建/修改NuGet.Config文件,添加版本依赖约束:
<?xml version="1.0" encoding="utf-8"?> <configuration> <!-- 设置优先选择最高补丁版本 --> <config> <add key="dependencyVersion" value="HighestPatch" /> </config> <!-- 针对.NET 8框架设置包版本范围 --> <dependencyConstraints> <group targetFramework="net8.0"> <dependency id="Microsoft.EntityFrameworkCore" version="[8.0.0, 9.0.0)" /> <dependency id="Microsoft.AspNetCore.Mvc" version="[8.0.0, 9.0.0)" /> <!-- 添加其他需要约束的Microsoft类库 --> </group> </dependencyConstraints> </configuration>
该配置会对整个项目的所有包引用生效,确保所有指定的Microsoft类库仅更新至8.x.x版本。
3. Visual Studio临时筛选更新(快速操作)
如果只是临时不想看到9.x.x版本,可在NuGet包管理器的「可用更新」界面:
- 点击「版本」列的筛选框,输入
8.* - 列表会自动过滤出所有8开头的版本,临时屏蔽9.x.x的更新提示
以上方法均可实现:在目标框架为.NET 8期间,仅接收8.x.x范围的补丁更新通知,同时排除9.x.x版本的更新提示。
内容的提问来源于stack exchange,提问作者KarloX
相关产品推荐
相关产品推荐

