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

升级VS2022后Blazor Server应用遇FileNotFoundException问题求助

解决Blazor Server项目改回.NET Core 3.1后加载System.Runtime 6.0失败的问题

出现这个问题的核心原因是VS2022自动升级框架后,项目中残留了.NET 6相关的配置、引用或编译输出,导致运行时错误加载高版本程序集。以下是具体解决步骤:

  • 彻底检查项目文件(.csproj)
    用文本编辑器打开项目的.csproj文件,确认所有配置项都指向.NET Core 3.1:

    • 确保<TargetFramework>值为netcoreapp3.1,无额外目标框架配置
    • 检查所有<PackageReference>版本,比如Microsoft.AspNetCore.Components.Server、Microsoft.NET.Sdk.Web等,必须是3.1.x系列,不能包含6.0.x版本
    • 移除任何与.NET 6相关的配置节点,比如若<RuntimeFrameworkVersion>指定了6.0版本,需改回3.1对应版本
  • 清理残留编译文件
    手动删除项目目录下的bin和obj文件夹,同时删除发布输出的全部内容,再重新执行清理、构建、发布操作。旧编译输出中可能残留.NET 6程序集,引发发布后冲突。

  • 配置全局SDK版本(可选但推荐)
    在解决方案根目录新建global.json文件,强制使用.NET Core 3.1的SDK构建,避免VS2022默认调用高版本SDK:

    {
      "sdk": {
        "version": "3.1.426" // 替换为你安装的3.1最新SDK版本
      }
    }
    
  • 检查发布配置文件
    打开项目的发布配置文件(.pubxml,位于Properties/PublishProfiles目录下),确认<TargetFramework>值为netcoreapp3.1,无.NET 6相关发布参数。

  • 验证服务器运行时环境
    在部署项目的服务器上执行dotnet --list-runtimes命令,确认已安装.NET Core 3.1运行时(版本号格式为3.1.x)。若缺失,需下载安装对应运行时包。

  • 排查NuGet依赖冲突
    在VS2022的NuGet包管理器中,查看项目所有依赖项,检查是否有包间接引用了.NET 6版本的程序集。通过“依赖项”面板的树形结构,逐一排查每个包的目标框架兼容性,替换为兼容.NET Core 3.1的版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:35:00