C# SolidWorks二次开发EXE程序 生成安装包发给别人 出现错误: 80040154 没有注册类
如果直接用插件ISwAddin的方式开发,发现调试的时候总是重新打开了一个sw进程,所以用EXE的方式开发调试更方便。但是程序完成,做成安装包发给别人安装后报错:
“System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {13551C8B-F74D-493E-B550-489532B7A905} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。”
几经折腾,终于明白是自己new的姿势不对:
//iSwApp = new SldWorks();//这样new在别人的机器上会报错! iSwApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application")); // //SldWorks.Application.26 = sw 2018 //iSwApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application.26"));
参考文章:
C#:DLL已注册,但COM错误80040154仍然出现(C#: DLL is registered but COM error 80040154 still appear)
https://www.it1352.com/1836106.html