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

.NET6 WinForm操作数据库时报无法加载System.Management程序集错误

问题场景

当前开发环境为Windows 11,项目为基于.NET 6的Windows窗体应用,附带多个同为.NET 6目标框架的类库。执行MySQL数据插入操作,调用连接对象的Open()方法时抛出程序集加载错误,此前使用Visual Studio 2013开发同类项目时从未触发该问题,检索公开的同类问题帖均未找到有效解决方案。

触发的错误信息:

Could not load file or assembly 'System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

对应出错的业务代码:

public static void ExecuteNonQuery(MySqlCommand cmd, ref string msg) {
    MySqlConnection conn = new MySqlConnection();
    try {
        conn.ConnectionString = ConString;
        cmd.CommandTimeout = ComTym;
        conn.Open(); // 错误触发位置
        cmd.Connection = conn;
        var rowsAffected = cmd.ExecuteNonQuery();
        conn.Close();
    }
    catch (Exception ex) {
        msg = ErrorMessage(ex);
    }
    finally {
        conn.Close();
    }
}
修复步骤

按顺序排查操作即可:

  • 给WinForm启动项目(不是类库项目)安装System.Management正式版NuGet包,版本选择适配.NET 6的稳定版即可。.NET 6下该程序集不属于框架默认自带的基础库,不会自动引用;且依赖解析以启动项目的输出配置为准,仅在类库中安装不会把对应dll复制到运行目录,这是最常见的触发原因。
  • 右键启动项目选择「编辑项目文件」,检查<PropertyGroup>配置块中是否存在<UseWindowsForms>true</UseWindowsForms>配置,缺失则手动补上。该配置缺失时,SDK不会自动将Windows桌面专属的系统类库复制到输出目录,会触发相关程序集加载失败。
  • 检查当前使用的MySQL驱动(MySql.Data或MySqlConnector)版本,若使用的是适配.NET 7/.NET 8的高版本驱动,降级到支持.NET 6的LTS稳定版即可。高版本驱动的程序集版本映射逻辑在.NET 6环境下运行时,会强制查找4.0.0.0版本的System.Management,很容易出现版本匹配错误。
  • 若使用独立部署模式发布项目,关闭「裁剪未使用的程序集」选项,程序集裁剪逻辑很容易误删System.Management的相关依赖,导致运行时加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:39:55