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

OpenFileDialog抛出System.IO.FileNotFoundException:无法加载System.Drawing.Common程序集的问题求助

解决System.Drawing.Common加载失败与OpenFileDialog无法弹出的问题

嘿,我看你这问题核心在于System.Drawing.Common程序集加载失败,这直接卡死了OpenFileDialog的初始化,所以窗口才弹不出来。我给你几个实打实的排查和解决方向,你挨个试试:

1. 先确认System.Drawing.Common NuGet包装对了

这个错误80%都是因为项目没引用这个包或者版本不对:

  • 打开你的NuGet包管理器,搜System.Drawing.Common,确认它已经装到你的项目里了
  • 如果是.NET Core/.NET 5+的项目,这个包是必须手动装的;要是.NET Framework项目,虽然自带System.Drawing,但有时候也会因为引用丢失出问题,这时候可以卸载重新引用

2. 核对目标框架和包版本的兼容性

别随便装最新版的包,得和你的项目目标框架匹配:

  • 比如你用.NET 6,就装6.x系列的System.Drawing.Common;用.NET Framework 4.8,就对应兼容的版本
  • 跨平台的包在Windows上有时候会有适配问题,你这是用OpenFileDialog(Windows专属组件),一定要选Windows环境下稳定的版本

3. 微调STA线程的写法(虽然你已经设置了,但细节可能出问题)

你当前的线程代码逻辑没问题,但可以试试我这个更严谨的写法,确保STA状态真的生效:

var openFileThread = new Thread(() =>
{
    Console.Title = "Low Pixel | Loading Combos...";
    using (var dialog = new OpenFileDialog())
    {
        dialog.Title = "Load Combo List";
        dialog.Filter = "Text Files |*.txt";
        dialog.RestoreDirectory = true;

        if (dialog.ShowDialog() == DialogResult.OK)
        {
            Checker.Combo = new ConcurrentQueue<string>(File.ReadAllLines(dialog.FileName));
            Console.WriteLineFormatted("Successfully loaded {0} lines of combos", Color.Aqua, Color.LightBlue, new object[] { Checker.Combo.Count() });
            Thread.Sleep(2500);
        }
    }
});
openFileThread.SetApartmentState(ApartmentState.STA);
openFileThread.Start();
openFileThread.Join();

另外,别忘了给你的主程序入口(Main方法)加上[STAThread]特性,虽然你是在单独线程里开对话框,但主线程的公寓状态有时候也会间接影响UI组件的初始化,加了没坏处。

4. 检查程序集的「复制本地」设置

如果是.NET Framework项目,右键引用的System.Drawing程序集,看属性里的复制本地是不是设为True。要是设成False,运行时可能找不到对应的dll文件,就会报加载失败的错。

5. 排查系统环境的问题

  • 确保你的Windows系统装了对应版本的.NET运行时,比如你项目用.NET 6,就得装.NET 6桌面运行时
  • 有时候系统缺少GDI+相关组件也会导致System.Drawing.Common加载失败,你可以试试修复.NET运行时,或者给系统打个最新补丁

先从第一步的NuGet包检查开始,这是最容易解决的,大概率能搞定你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:49:10