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

C#编写的DLL无法加载System.Drawing.Common,Python调用失败

解决C# DLL调用时System.Drawing.Common加载失败的问题

针对你遇到的System.IO.FileNotFoundException(找不到System.Drawing.Common 8.0.0.0)问题,可按以下步骤排查修复:

  • 确保依赖DLL被复制到输出目录
    右键项目中System.Drawing.Common的引用 → 属性 → 把复制本地设为True。编译后检查主DLL所在的输出文件夹(如bin/Debug/net8.0-windows),确认是否存在System.Drawing.Common.dll,且版本为8.0.0.0。

  • 调整发布/编译配置
    如果是通过发布生成DLL,在发布设置中勾选包含所有项目依赖项;或者选择**自包含部署(Self-Contained)**模式,该模式会将.NET运行时及所有依赖库一并打包,避免依赖缺失。

  • 确认Python调用路径的正确性
    Python调用C# DLL时,需保证System.Drawing.Common.dll与你的主DLL处于同一目录,或该目录已被添加到系统PATH环境变量中,确保CLR加载时能找到依赖文件。

  • 检查项目目标框架匹配性
    确认你的C#项目目标框架是.NET 8(与System.Drawing.Common 8.0版本对应),若目标框架不一致,可能导致版本不兼容的加载问题。

  • 添加版本绑定重定向(若存在版本冲突)
    在项目的app.config(或生成的[你的DLL名].config文件)中添加绑定重定向配置,强制CLR加载指定版本的依赖:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Drawing.Common" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    确保该配置文件与主DLL放在同一目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:13:16