开发EA插件调用csmatio遇HRESULT 0x80131044错误求解决
解决EA插件加载未强签名csmatio程序集的问题
错误提示明确指出需要强名称签名的程序集,csmatio默认发布的版本没有强签名,导致EA的插件加载机制拒绝加载。以下是可行的解决办法:
重新编译带强签名的csmatio程序集
- 获取csmatio的开源源代码
- 在Visual Studio中打开项目,右键项目→属性→签名→勾选“为程序集签名”,选择“新建”生成一个强名称密钥文件(.snk)
- 重新编译项目,得到带强签名的csmatio.dll
- 在你的EA插件项目中替换原有的csmatio引用,指向这个新编译的DLL,确保“复制本地”属性设为
True
对现有csmatio.dll重新签名(无需源码)
- 打开Visual Studio开发者命令提示符(管理员身份)
- 生成强名称密钥文件:
sn.exe -k csmatio.snk - 导出DLL的IL代码:
ildasm csmatio.dll /out:csmatio.il - 重新编译并签名:
ilasm csmatio.il /dll /key:csmatio.snk - 用重新签名后的DLL替换插件项目中的原引用,确保“复制本地”为
True
确保EA能找到签名后的DLL
编译插件后,将签名后的csmatio.dll复制到EA安装目录(通常为C:\Program Files\Sparx Systems\EA),或插件输出的同目录下,避免EA加载时找不到依赖。
内容的提问来源于stack exchange,提问作者Ivan Mijatovic
相关产品推荐
相关产品推荐

