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

.NET 5单文件发布MySQL应用报CodeBase不支持错误解决方案问询

问题根因

你遇到的异常是Oracle官方MySql.Data驱动的已知兼容性问题:该驱动依赖System.Configuration.ConfigurationManager组件读取配置,该组件初始化时会调用程序集的CodeBase属性,而.NET单文件捆绑模式下加载的程序集默认不支持该属性,因此触发报错。直接用dotnet run运行时程序集为独立加载状态,不存在该限制,所以运行正常。

可行解决方案

方案1:替换为MySqlConnector驱动(最推荐)

MySqlConnector是社区维护的MySQL兼容驱动,完全适配.NET单文件、AOT等发布模式,且API和MySql.Data高度兼容,大部分场景下无需修改业务代码:

  • 卸载项目中已安装的MySql.Data NuGet包
  • 安装最新版MySqlConnector NuGet包
  • 重新执行原单文件发布命令即可正常运行

方案2:保留MySql.Data驱动,调整发布参数

如果不想更换驱动,可在发布命令中添加IncludeAllContentForSelfExtract参数,让单文件运行前先将所有依赖解压到临时目录再加载,避免CodeBase读取失败:

  • 调整后的发布命令如下:
dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true -p:IncludeAllContentForSelfExtract=true -o publish/ GarLoader.MySqlUploader

该方案缺点是程序首次启动速度稍慢,运行时会在系统临时目录生成解压后的依赖文件。

方案3:保留MySql.Data驱动,提前初始化配置规避

在程序入口Program.Main方法的最开头添加以下代码,手动初始化MySQL配置,避免驱动自动读取系统配置触发异常:

// 提前禁用复制配置读取,绕过ConfigurationManager调用
MySql.Data.MySqlClient.MySqlConfiguration.Settings.Replication = false;

修改完成后执行原发布命令即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:57:04