2014-05-07 134 views
1

我有一個應用程序連接到訪問2003年。 我正面臨插入大量的行訪問問題,所以我來到一個解決方案使用DAO(Microsoft.Office.interop.access.dao.dll),以提高這一過程的表現,請點擊此鏈接 Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154參考Microsoft.Office.interop.access.dao.dll導致錯誤C#

但是,當我打開使用

using DAO =Microsoft.Office.interop.access.dao.dll; ....

new DAO.DBEngine();

這條線連接到接入給我一個錯誤:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} failed due to the following error: 80040154

我的應用程序是32位的,我與Win運行的程序在機器XP 32位也一樣,它做工精細,直到我開始使用DAO

我有嘗試,我想出了很多的事情,當谷歌,但沒有什麼幫助,像這樣: Error in create access database?

- 更多信息: 安裝

AccessDatabaseEngine.exe the problem go away, so i think it must be something like the dll can't register, and then after install the package, somehow it's registered DAO dll.

之後,但在生產服務器上,我不能沒有安裝任何東西,,所以我需要一種方法來手動註冊DLL,或類似的東西,讓應用程序工作,而安裝AccessDatabaseEngine.exe

請給我任何意見

回答

0

解決方法:

可能的解決方法是將項目的平臺從'任何CPU'修改爲'X86'(在項目的屬性,構建/平臺的目標中)

ROOTCAUSE

VSS Interop是一個使用32位框架的託管程序集,該DLL包含一個32位COM對象。如果您在64位環境中運行此COM DLL,您將收到錯誤消息。

+0

沒有......讀過......這個問題? - 聲明該應用程序是32位(x86),安裝Access數據庫引擎將由所有帳戶解決該問題,但安裝不是一個選項 –