VS2017:类在调试模式下未注册错误,已编译的.exe工作

时间:2019-03-22 11:09:58

标签: c# winforms visual-studio-2017 com

我有一些大约在2005或2006年左右的旧外部32位库,称为eDocEngineX / PDFToolkitX。两者都可以通过MSI软件包(甚至可以通过System32和/或SysWOW64中的regsrv32进行手动安装和注册):Windows似乎正确放置了注册表项。从Windows 10使用它们启动某些软件时,我没有问题。

我的问题是我无法再使用这些调试我的WinForms解决方案。每当实例化这些库之一中的对象时,它都会引发以下异常:

  

System.Runtime.InteropServices.COMException:“由于以下错误,检索具有CLSID {EDE601A4-FFD6-4B99-BDB6-CB6C60B03BFD}的组件的COM类工厂失败:: 80040154类未注册(HRESULT的异常:0x80040154 (REGDB_E_CLASSNOTREG)。”

当我在VS之外启动已编译的.exe文件时,一切都按预期工作,没有异常,错误或其他任何情况。这些库的所有功能都运行流畅。

所以我的问题似乎只在使用调试器时存在。在网上可以找到的主要提示是将Debug配置设置为x86,以强制64位VS使用32位DLL。我在此解决方案中的每个项目中都进行了此操作,并检查了构建属性,但是在实例化这些类之一时仍然会收到错误。

将组件重新注册和读取到引用也不起作用,因此我认为我缺少VS中的其他设置。

使用发布模式(将所有内容再次设置为x86)导致我的软件甚至无法启动(尽管VS诊断工具显示后台活动)。

所以请告诉我:为什么这些库不能在Debug模式下工作,而在Windows中工作?

感谢您的帮助!

0 个答案:

没有答案