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

C# SolidWorks 二次开发 API---连接solidworks

https://blog.csdn.net/zengqh0314/article/details/100690000

原文地址:https://www.cnblogs.com/yiguxianyun/p/13869356.html