2016-07-25 83 views
-1

我不知道为什么/当这种情况发生,但这个错误信息的错误我每年都一样:System.Runtime.InteropServices.COMException一次又一次

抛出异常:“System.Runtime.InteropServices.COMException” in mscorlib.dll

附加信息:由于以下原因,无法访问CLSID为{C70F08F3-3F2A-477D-9F7A-B5463E973BDC}的组件的COM类工厂:80040154未注册的类HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。

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

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

任何人都可以解释可能发生的事情吗?

谢谢。

回答

1

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

在这种情况下:

  • 在端重建OCX通常重新登记,所以正确的类被注册;

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

至于为什么它在VB6中工作,最有可能的参考已被更新已经。究竟发生了什么,再次,由于缺乏细节,很难猜测。