當您新增要轉換成.NET 組件的型別程式庫的 COM 元件時,出現錯誤訊息

文章翻譯 文章翻譯
文章編號: 316142 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當一個元件物件模型 (COM) 元件加入您的專案參考可能會收到類似下列的錯誤訊息:
無法新增 'A' 為參考。將型別程式庫轉換為.NET 組件失敗。從組件版本,無法載入型別 A.clsAClass = 1.0.0.0。 Interop。 A

發生的原因

如果下列條件全部成立,就會發生這種行為:
  • COM 元件參考另一個元件,並實作它的類別。

    -以及-
  • 參考的元件參考第三個元件。

    -以及-
  • 您新增的兩個參考的元件其中之一至專案的參考,或嘗試重新將元件加入而不重新載入專案。

解決方案

要解決這個問題,刪除元件和兩個參考的元件從專案的參考,請重新載入該專案然後新增 COM 元件。

其他相關資訊

重現問題的步驟

  1. 在 Microsoft Visual Basic 6.0 中建立一個 ActiveX DLL 專案。到 C,變更專案名稱,然後再變更到 clsC 的 [類別模組名稱。
  2. 儲存並編譯 C.dll 這個專案。
  3. 在 Visual Basic 6.0 中建立另一個 ActiveX DLL 專案。到 B,變更專案名稱,然後再變更到 clsB 的 [類別模組名稱。
  4. 將參考加入至 C.dll。
  5. 將下列程式碼加入至類別模組:
    Public Property Get Test() As C.clsC
    
    End Property
    
    Public Property Set Test(Value As C.clsC)
    
    End Property
    					
  6. 儲存並編譯 B.dll 這個專案。
  7. 在 Visual Basic 6.0 中建立第三個 ActiveX DLL 專案。到 A,變更專案名稱,然後再變更到 clsA 的 [類別模組名稱。
  8. 將參考加入至 B.dll 和 C.dll。
  9. 將下列程式碼加入至類別模組:
    Implements B.clsB
    
    Public Property Get Test() As B.clsB
    
    End Property
    
    Public Property Set Test(Value As B.clsB)
    
    End Property
    
    Private Property Set clsB_Test(RHS As C.clsC)
    
    End Property
    
    Private Property Get clsB_Test() As C.clsC
    
    End Property
    					
  10. 儲存並編譯 A.dll 這個專案。
  11. 建立新的 Visual Basic.NET Windows 應用程式。
  12. 新增 B.dll 或是 C.dll 作為該參考,然後將 A.dll 加入至專案。

    您會收到下列錯誤訊息:
    無法新增 'A' 的參考。將型別程式庫轉換為.NET 組件失敗。無法載入輸入 A.clsAClass 從組件 Interop.A,版本 = 1.0.0.0。
  13. 移除 B.dll 或 C.dll、 關閉該專案,然後再重新載入。
  14. 將 A.dll 加入為參考。

    請注意載入成功。
  15. 移除 A.dll,然後再重新加入。

    您會收到相同步驟 12 中所述的錯誤訊息。

屬性

文章編號: 316142 - 上次校閱: 2006年2月2日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Visual Basic .NET 2002 Standard Edition
關鍵字:?
kbmt kbvs2005swept kbvs2005doesnotapply kberrmsg kbprb KB316142 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:316142
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com