You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET应用如何配置忽略NuGet包补丁版本以适配系统运行时?

解决.NET应用中Microsoft.AspNetCore.Mvc.NewtonsoftJson版本匹配问题

方法1:修改项目文件使用浮动版本号

在你的项目文件(.csproj)中,将Microsoft.AspNetCore.Mvc.NewtonsoftJson的包引用版本改为浮动格式,让NuGet自动兼容同主次要版本的最新补丁版:

<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.*" />

重新编译发布后,应用会自动适配系统中已安装的6.0系列补丁版本(比如6.0.23),无需严格匹配6.0.22。

方法2:修改运行时配置文件(已发布应用适用)

如果应用已经发布到目标机器,可直接修改应用目录下的[应用名].runtimeconfig.json文件,添加版本绑定规则,让运行时自动匹配兼容版本:

{
  "runtimeOptions": {
    "framework": {
      "name": "Microsoft.AspNetCore.App",
      "version": "6.0.*"
    },
    "configProperties": {
      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
    }
  }
}

将version设为6.0.*后,运行时会优先使用系统中已安装的最高6.0系列ASP.NET Core Runtime版本。

方法3:确认部署模式为框架依赖

检查你的发布配置,确保应用是框架依赖部署(而非自包含部署)。框架依赖模式下,应用会直接使用系统中已安装的.NET运行时组件,不需要携带特定版本的dll文件:

  • 命令行发布时使用:dotnet publish -c Release -f net6.0 --framework-dependent
  • Visual Studio发布设置中,选择“框架依赖”,目标运行时选“便携”。

额外注意事项

  • 系统中已安装的ASP.NET Core Runtime版本是6.0.12,而Windows Desktop Runtime是6.0.23,建议统一升级ASP.NET Core Runtime到6.0.23(同桌面运行时补丁版本),避免版本碎片化问题。
  • 若必须保留特定版本,可在项目文件中添加RuntimeFrameworkVersion指定运行时版本,但这会限制应用只能使用该版本的运行时:
<PropertyGroup>
  <RuntimeFrameworkVersion>6.0.12</RuntimeFrameworkVersion>
</PropertyGroup>

内容的提问来源于stack exchange,提问作者Febertson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:57:12