文章編號: 299645 - 上次校閱: 2001年6月12日 - 版次: 1.0

BUG:如果使用 PDW 套件安裝 VB 應用程式,會發生無法登錄 MSADO15.TLB 錯誤

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
本文曾發行於 CHT299645
全部展開 | 全部摺疊

徵狀

當您使用以「封裝暨部署精靈 (PDW)」建立的套件安裝 Visual Basic 應用程式時,可能會在安裝期間收到下列或類似的錯誤訊息:
Unable to register MSADO15.TLB
這個錯誤訊息可能會參考到下列檔案:
  • MSADO15.TLB
  • MSADO20.TLB
  • MSADO21.TLB
  • MSADO25.TLB

發生的原因

「封裝暨部署精靈」會新增型別程式庫 (.tlb) 檔案到套件中,因為專案中會參考到型別程式庫。PDW 也會誤將 $(DLLSelfRegister) 登錄巨集,指定到為安裝套件建立的 Setup.lst 檔案中的型別程式庫。

通常,當 Visual Basic 專案包含比最新安裝的 ActiveX Data Objects (ADO) 較舊的版本參考時,這個問題就會發生。最新安裝 ADO 版本的參考指向 MSADO15.DLL。較舊版本的參考指向之前提到的 ADO 型別程式庫檔案。

解決方案

這個檔案不需要明確地包含在套件內。如果專案中有參考到 ADO 型別程式庫,就會在應用程式中使用 ADO,並且必須散發 Microsoft Data Access Components (MDAC_TYP.EXE)。唯一的例外情形是當您確定 MDAC 正確的版本已經安裝在目標電腦上時。因為 MDAC Installer 包含型別程式庫,所以沒有理由要特別再包含進來。

有許多方法可以解決這個問題。您可以根據狀況以及是否便於重新封裝應用程式,決定使用哪種方法。解決方案 1 和 2 不需要重新封裝應用程式。解決方案 3、4 和 5 需要重新封裝。解決方案 4 和 5 是僅有的兩種長期修正程式,建議您使用。

解決方案 1



  1. 找出套件的 Setup.lst 檔案。
  2. 使用任一種文字編輯器,開啟 Setup.lst。
  3. 在 Setup.lst 中找出錯誤參考 ADO 型別程式庫的行。如果使用「記事本」,可以搜尋檔案名稱。
  4. 將 $(DLLSelfRegister) 變更為 $(TLBRegister)。
  5. 儲存檔案,然後試著再安裝一次。

解決方案 2



  1. 找出套件的 Setup.lst 檔案。
  2. 使用任何一種文字編輯器,開啟 Setup.lst。
  3. 在 Setup.lst 中找出錯誤參考 ADO 型別程式庫的行。如果使用「記事本」,可以搜尋檔案名稱。
  4. 刪除 Setup.lst 中的那一行。
  5. 確認 File##= 陳述式是連續的,如有需要可以在刪除的行之後將行重新編號。
  6. 儲存檔案,然後試著再安裝一次。

解決方案 3



  1. 啟動「封裝暨部署精靈」,並且如果儲存了套件指令碼,將其開啟。
  2. 在精靈中完成 [封裝暨部署精靈 - 包含的檔案] 頁面之前的步驟。
  3. 清除錯誤訊息中參考到的 ADO 型別程式庫旁核取方塊中的標記。
  4. 完成步驟以重新封裝應用程式,然後試著再安裝一次。

解決方案 4



  1. 找出 VB6DEP.ini 檔案。依預設,這個檔案位於 C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\ 資料夾中。
  2. 使用任何一種文字編輯器,開啟 VB6DEP.ini。
  3. 找出 [Do Not Redistribute] 區段。
  4. 將下列幾行加入 [Do Not Redistribute] 區段中:
    MSADO15.TLB=
    MSADO20.TLB=
    MSADO21.TLB=
    MSADO25.TLB=
  5. 儲存檔案,並關閉文字編輯器。
  6. 重新封裝應用程式,然後試著再安裝一次。
注意:這個方法可以避免問題重複發生。

解決方案 5



  1. 在 Visual Basic 中開啟專案。
  2. [專案] 功能表中,按一下 [設定引用項目]。注意所選的 Microsoft ActiveX Data Objects 程式庫版本,並且選擇 ADO 參考的核取方塊。如果參考指向 .tlb 檔案,請清除該核取方塊的標記。捲動清單找出其他 ADO 版本,選擇指向 MSADO15.DLL 的最新版本,然後按一下 [確定]
  3. 測試專案確認 ADO 功能仍能運作正常。
  4. 儲存專案,然後建立 EXE。
  5. 重新封裝應用程式,然後試著再安裝一次。

狀況說明

Microsoft 已確認 Visual Basic 6.0 的「封裝暨部署精靈」確實有上述問題。

其他相關資訊

發生錯誤是因為 PDW 嘗試將 $(DLLSelfRegister) 而非 $(TLBRegister) 使用於型別程式庫。但是,如果您在安裝期間收到這個錯誤訊息,並不代表安裝一定會失敗。也不代表安裝之後應用程式無法執行。這個錯誤代表可能在專案中參考到不同的 ADO 型別程式庫版本 (與應用程式散發的 ADO 型別程式庫版本不同)。這可能導致其他問題,所以 Microsoft 建議您確認版本資訊。請參閱〈參考〉章節以取得詳細資料。

?考

如需詳細資訊,請按下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
217754? (http://support.microsoft.com/kb/217754/ZH-TW/ ) HOWTO:控制「封裝暨部署精靈」(PDW) 散佈哪個版本的 MDAC
213846? (http://support.microsoft.com/kb/213846/ZH-TW/ ) INFO:使用「封裝暨部署精靈」(PDW) 來部署資料庫應用程式


本文件是根據 Microsoft Knowledge Base 文件編號 Q299645 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q299/6/45.asp (http://support.microsoft.com/kb/299645/en-us?ln=en-us&sd=gn&fr=0)

這篇文章中的資訊適用於:
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Professional Edition
關鍵字:?
kbbug kbvbp kbappsetup kbwizard kbvbp600bug kbpending kbgrpdsvb kbmdac kbdeployment kbado KB299645
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。