System.Runtime.InteropServices.COMException一次又一次
System.Runtime.InteropServices.COMException once and again
我不知道为什么/什么时候会发生这种情况,但这条错误消息每年都让我感到困扰:
抛出异常:'System.Runtime.InteropServices.COMException' in mscorlib.dll
附加信息:由于以下原因,无法访问具有 CLSID {C70F08F3-3F2A-477D-9F7A-B5463E973BDC} 的组件的 COM class 工厂:80040154 Class未注册(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
我不记得每次出现这种情况我是如何解决的。
我想我重新编译了 OCX 组件,然后我又添加了它。
但是,这会很奇怪,因为我可以在 VB6 中使用 OCX 组件。
那为什么不能在 .NET 中访问它呢?
任何人都可以解释这里可能发生的事情吗?
谢谢。
如果 OP 中没有任何支持代码,很难猜测,但症状与 OCX 出于某种原因(例如,由于接口更改)更改了 CLSID 是一致的。
在那种情况下:
重建OCX一般在最后会重新注册,所以正确的class被注册了;
重新添加对 OCX 的引用会将引用的 CLSID 更新为正确的。
至于为什么它在 VB6 中工作,很可能参考已经以某种方式更新了。鉴于缺乏细节,这又是如何发生的,很难猜测。
我不知道为什么/什么时候会发生这种情况,但这条错误消息每年都让我感到困扰:
抛出异常:'System.Runtime.InteropServices.COMException' in mscorlib.dll
附加信息:由于以下原因,无法访问具有 CLSID {C70F08F3-3F2A-477D-9F7A-B5463E973BDC} 的组件的 COM class 工厂:80040154 Class未注册(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
我不记得每次出现这种情况我是如何解决的。 我想我重新编译了 OCX 组件,然后我又添加了它。
但是,这会很奇怪,因为我可以在 VB6 中使用 OCX 组件。 那为什么不能在 .NET 中访问它呢?
任何人都可以解释这里可能发生的事情吗?
谢谢。
如果 OP 中没有任何支持代码,很难猜测,但症状与 OCX 出于某种原因(例如,由于接口更改)更改了 CLSID 是一致的。
在那种情况下:
重建OCX一般在最后会重新注册,所以正确的class被注册了;
重新添加对 OCX 的引用会将引用的 CLSID 更新为正确的。
至于为什么它在 VB6 中工作,很可能参考已经以某种方式更新了。鉴于缺乏细节,这又是如何发生的,很难猜测。