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
相关产品推荐
相关产品推荐

