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

如何在Visual Studio 2022中指定Microsoft.AspNetCore.App版本以规避运行异常

解决方案:指定Microsoft.AspNetCore.App运行时版本

1. 显式在项目文件中锁定框架版本

编辑你的.csproj文件,添加FrameworkReference节点并指定具体版本,覆盖默认的自动引用逻辑:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <!-- 可选:同时锁定运行时框架版本 -->
    <RuntimeFrameworkVersion>8.0.10</RuntimeFrameworkVersion>
  </PropertyGroup>

  <ItemGroup>
    <!-- 显式指定Microsoft.AspNetCore.App版本 -->
    <FrameworkReference Include="Microsoft.AspNetCore.App" Version="8.0.10" />
  </ItemGroup>
</Project>

该配置会强制项目编译和运行时依赖8.0.10版本的ASP.NET Core框架。

2. 调整运行时自动升级策略

修改runtimeconfig.template.json中的rollForward参数,避免自动升级到更高的次版本:

{
  "runtimeOptions": {
    "tfm": "net8.0",
    // 将Minor改为Patch或Disable,禁止跨次版本升级
    "rollForward": "Patch",
    "frameworks": [
      {
        "name": "Microsoft.NETCore.App",
        "version": "8.0.10"
      },
      {
        "name": "Microsoft.AspNetCore.App",
        "version": "8.0.10"
      }
    ],
    "configProperties": {
      "System.GC.Server": true,
      "System.Globalization.Invariant": false,
      "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
      "System.Reflection.NullabilityInfoContext.IsSupported": true,
      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
    }
  }
}
  • Patch:仅允许补丁版本升级(比如8.0.10 → 8.0.10.x),不会升级到8.0.11
  • Disable:完全禁止自动升级,必须严格匹配指定的8.0.10版本

3. 发布时强制指定运行时版本

如果是发布应用,使用dotnet publish命令时显式指定框架版本和运行时:

dotnet publish -c Release --runtime linux-x64 --framework net8.0 --self-contained false

加上--self-contained false确保使用共享框架,结合项目文件配置,会强制依赖8.0.10版本。

4. 验证已安装的运行时

运行以下命令确认系统中已安装目标版本的运行时:

dotnet --list-runtimes

确保输出中包含Microsoft.AspNetCore.App 8.0.10 [x64]。若不想系统自动更新.NET框架,可通过系统包管理器(如apt、yum)禁用.NET自动更新源,或在Windows中关闭Windows更新里的.NET相关更新。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:32:44