检索COM类工厂失败错误:80040154

时间:2018-09-19 19:05:32

标签: c# eclipse solidworks

感谢您的阅读。

我正在开发一段代码,该代码可在商业辐射计划软件(Eclipse)中执行并从中访问数据。 我正在尝试让这个application.exe也更新SolidWorks模型中的一些模型参数。

这是问题所在: 尝试打开SolidWorks应用程序(SldWorks swApp = new SldWorks();)时,出现错误:“由于以下错误,检索具有CSLID {xxx-xxx-xxx}的组件的COM类工厂失败:80040154未注册类(来自HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。”

我也尝试过这里描述的方法:

https://www.codestack.net/solidworks-api/getting-started/stand-alone/
尝试这些方法后,我再次收到相同的错误。

我知道这意味着应用程序正在尝试访问注册表中不存在的内容,但是尚不清楚我应该采取什么措施来解决此问题。

我正在Windows 7中运行Solidworks 2018,使用Visual Studio Community 2017作为编辑器。该段代码是独立运行的,我相信我的模型中已正确引用了所有相关的Solidworks .dll。有趣的是,如果我在Visual Studio中运行与.dll相同的代码,Solidworks实际上将打开。使用“ SldWorks swApp = new SldWorks();”完成此操作。方法(这是Solidworks API方法的一部分)

我的解决方案中没有构建错误。我对此感到抱歉,因为我是C#和这些API的新手。我会尽力澄清任何问题。

我尝试过这里的方法: C#: DLL is registered but COM error 80040154 still appear无济于事。 非常感谢您的帮助!
谢谢!

1 个答案:

答案 0 :(得分:0)

尝试注册swpublished dll

“ C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ RegAsm.exe”“ C:\ Program Files \ SOLIDWORKS Corp \ SOLIDWORKS \ api \ redist \ SolidWorks.Interop.swpublished.dll” / codebase < / p>

您还可以检查32/64位注册表是否与您的问题有关。创建一个测试项目,该项目将调用新的SldWorks()并先以32位然后以64位运行。