2016-07-25 91 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中工作,最有可能的參考已被更新已經。究竟發生了什麼,再次,由於缺乏細節,很難猜測。