Vb.net System.Runtime.InteropServices.COMException一次又一次

Vb.net System.Runtime.InteropServices.COMException一次又一次,vb.net,visual-studio-2015,comexception,Vb.net,Visual Studio 2015,Comexception,我不知道为什么/何时会发生这种情况,但每年都会有这样的错误消息困扰我: 引发异常:mscorlib.dll中的“System.Runtime.InteropServices.COMException” 其他信息:无法访问CLSID为{C70F08F3-3F2A-477D-9F7A-B5463E973BDC}的组件的COM类工厂,原因如下:80040154类未注册(HRESULT除外:0x80040154(REGDB_E_CLASSNOTREG)) 我不记得每次发生这种情况时我是如何解决的。 我想

我不知道为什么/何时会发生这种情况,但每年都会有这样的错误消息困扰我:

引发异常:mscorlib.dll中的“System.Runtime.InteropServices.COMException”

其他信息:无法访问CLSID为{C70F08F3-3F2A-477D-9F7A-B5463E973BDC}的组件的COM类工厂,原因如下:80040154类未注册(HRESULT除外:0x80040154(REGDB_E_CLASSNOTREG))

我不记得每次发生这种情况时我是如何解决的。 我想我重新编译了OCX组件,然后再次添加它

但是,这会很奇怪,因为我可以在VB6中使用OCX组件。 那么为什么它不应该在.NET中访问呢

有人能解释一下这里发生了什么吗


谢谢。

如果OP中没有任何支持代码,很难猜测,但是症状与OCX出于任何原因(例如,由于接口更改)更改了CLSID是一致的

在这种情况下:

  • 重建OCX通常会在最后重新注册它,因此注册正确的类

  • 重新添加对OCX的引用会将引用的CLSID更新为正确的CLSID

至于它在VB6中工作的原因,最有可能的是该参考已经以某种方式进行了更新。鉴于缺乏细节,很难猜测到底是如何发生的