2012-02-01 98 views
7

一臺機器有MSVBVM60.dll版本6.0.97.82,說OLD。新的說,其他機器有MSVBVM60.dll版本6.0.98.15。在對舊機捐贈線new ADODB.Connection來自新機崩潰創建EXE以下錯誤Exe在ADODB.Connection與「類不支持自動化」的崩潰

運行時錯誤「430」:類不支持自動化或不 支持預期的接口

如何獲得擺脫這個?我的主要目標是在新機器上創建時在舊機器上運行exe。爲了避免令人不安的配置新機器,我試圖取消註冊舊版本,並在舊機器上註冊較新的版本,但沒有成功。有沒有其他的DLL(s)使用ADODB.Connection或我需要做一些完全不同的東西來擺脫這個?

+0

什麼操作系統是你的新老電腦運行? – UnhandledExcepSean 2012-02-01 15:47:00

回答

11

這與VB運行時版本無關,與ADO庫(如錯誤行暗示的)無關,並且是由微軟在其ADO庫中的兼容性問題造成的。

KB article 2517589解釋了爲什麼和解決方案實質上是針對兼容性類型庫進行重新編譯。

+0

我遵循給定知識庫文章中的所有步驟,一切都很順利,我構建了exe文件,並再次崩潰。 Plz參考我在Jon Egerton的回答下的評論 – bjan 2012-02-01 12:37:42

+0

按照我生成機器上的所有步驟並在幾天前爲我重新編譯。 – Deanna 2012-02-01 14:22:58

+0

如果您的項目仍在引用「Microsoft ActiveX數據對象XXX庫」,那麼它仍在針對不兼容版本進行構建。您必須刪除該引用並重建對「Microsoft ActiveX數據對象6.0 BackCompat庫」。 – Deanna 2012-02-01 14:26:34

0

在舊機器上修補整個VB6運行時可能是最簡單的 - 您可以從here下載。

VB6運行時分佈爲一個包,所以我不會建議只是自己插入某些dll。

我還建議檢查您正在運行的兩臺機器是否使用相同版本的MDAC,特別是舊機器的版本已安裝在項目中引用。

+0

我不想修補舊機器,因爲這些是客戶端機器。是的,MDAC的版本不同,但是,我同時在NEW機器上運行VS6.0和VS2010。兩個版本的MDAC都可以安裝在同一臺機器上嗎? – bjan 2012-02-01 11:31:07

+0

是的,這很好,有很多版本。在VB6中,您可以安裝MDAC 2.1至2.6版本(全部同時安裝)。您的項目使用的版本必須存在於客戶端上。 – 2012-02-01 11:37:57

+1

另請注意,Vista +具有您無法替換的特定版本的VB運行時,並且不得在以前版本的Windows上安裝。 Vista之前的任何應該使用SP6運行時。 – Deanna 2012-02-01 12:16:16

0

接受的答案對我無效。以下步驟做了。

  1. 工具 - >引用
  2. 取消選中:
    • Microsoft ActiveX數據對象6.1庫
    • Microsoft ActiveX數據記錄6.0庫
    • 微軟ADO分機。 6.0對於DDL和安全
  3. 檢查:
    • Microsoft ActiveX數據對象2.8庫
    • Microsoft ActiveX數據記錄2.8庫
    • 微軟ADO分機。 2.8對於DDL和安全
相關問題