2010-06-09 78 views
28

我建立一個GIS應用,但每當我運行的代碼,它給我這個錯誤HRESULT:0x80040154的(REGDB_E_CLASSNOTREG))

System.Runtime.InteropServices.COMException was unhandled Retrieving the COM class factory for component with CLSID {FBF5715D-A05D-11D4-A64C-0008C711C8C1} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

此外,在項目屬性的註冊選項爲COM Interop被禁用。

+1

我試過以下兩種解決方案都無濟於事。有沒有人有另一個想法? – 2013-08-15 14:10:29

回答

17

只看消息,它聽起來像是您引用的一個或多個組件,或者一個或多個依賴項未正確註冊。

如果您知道它是哪個組件,您可以使用regsvr32.exe進行註冊,只需打開命令提示符,轉到組件所在的目錄並鍵入regsvr32 filename.dll(假設它是一個dll),如果它工作正常,嘗試再次運行代碼,否則返回錯誤。

如果您不知道它是哪個組件,請嘗試重新安裝/修復GIS軟件(我假設您已經安裝了一些包含您嘗試使用的組件的GIS軟件)。

+0

thanx很多工作:) 我註冊了它,並且它的工作正常.. ..你是對的我在我的應用程序中使用GIS組件。 thanx再次爲我的幫助 – user362130 2010-06-11 05:05:59

+0

我有一個.exe(而不是.dll)。從Visual Studio Cmd提示符(.exe所在的位置),我運行「MyProgram.exe/regsvr」 – robor78 2013-11-04 09:04:36

37

這也可能是使用64 bit配置構建代碼的問題。您可以嘗試選擇x86作爲可以解決此問題的構建平臺。爲此,請右鍵單擊該解決方案,然後選擇Configuration Manager從那裏您可以將使用32位.dll項目的Platform更改爲x86

+0

我有相同的問題 - 我需要一個64位項目,「任何CPU」和「x32」都沒有工作。 – 2015-01-26 15:41:33

+0

只想說謝謝。這幫助我得到了一個正常工作的升級項目。 – impr0t 2015-03-06 16:45:45

+0

我不能相信從'任何CPU'改變爲'x86'會使所有不同,但它! – 2015-05-17 22:25:28

相關問題