注意: 「 嘗試存取方法失敗 」 時,出現錯誤訊息您使用錯誤的 Microsoft 表單 2.0 物件程式庫的參考

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

徵狀

在 Visual Studio.NET 專案包含 Microsoft 表單 2.0 物件程式庫的參考,可能會收到類似下列的錯誤訊息:
System.MethodAccessException: 「 嘗試存取方法失敗"。

發生的原因

使用 [加入參考] 對話方塊將參考加入至 Microsoft 表單 2.0 物件程式庫時您可能會注意到的 Microsoft 表單 2.0 物件程式庫 會出現兩個項目。 這兩個項目參照到 FM20.dll 的檔案。

您必須在清單中選取第一個 Microsoft 表單 2.0 物件程式庫 項目,因為這是主要 Interop 組件 (PIA) 參考。如果您選取 [第二個 Microsoft 表單 2.0 物件程式庫 項目您的應用程式可能無法如預期般運作。

解決方案

如果要解決這個問題,請依照下列步驟執行:
  1. 在 [方案總管] 中以滑鼠右鍵按一下 MSForms] 參考,然後按一下 [移除]。
  2. 在 [方案總管] 中以滑鼠右鍵按一下 [參考],然後按一下 [加入參考]。

    出現 [加入參考] 對話方塊。
  3. 在 [加入參考] 對話方塊按一下 [COM] 索引標籤。
  4. 在元件清單中,按一下 [第一個名為 Microsoft 表單 2.0 物件程式庫 的項目]。

    附註這應該是 PIA 版本。如果只有一個 Microsoft 表單 2.0 物件程式庫 項目出現在 [加入參考] 對話方塊,此項目無法 PIA 版本,您必須先安裝 [PIA 從 Microsoft Office 系統 2003年光碟片。
  5. 按一下 [新增項目到選取的元件清單 選取
  6. 按一下 [確定] 以關閉 [加入參考] 對話方塊。
  7. 在 [方案總管] 中按一下 [步驟 5 中加入 [MSForms 參考]。請確認設定 複製到本機 屬性為 False,及 [路徑] 屬性指到 [PIA (如 < 其他相關資訊 > 一節中所述)。
  8. 刪除舊的 Interop.MSForms.dll 檔案從 [Obj] 資料夾位於您應用程式的資料夾。

其他相關資訊

當您使用 [PIA 版本的 Microsoft 表單 2.0 物件程式庫的參考時您會注意到 MSForms 參考在 [方案總管] 中的下列屬性:
  • 複製本機: False
  • 路徑: C:\WINDOWS\assembly\GAC\Microsoft.Vbe.Interop.Forms\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.Forms.dll
如果 Path 屬性指向全域組件快取 (GAC) 中的某個資料夾,您有正確的 (PIA) 參考。

如果對 Microsoft 表單 2.0 參考物件程式庫已加入不正確 (或未安裝 [PIA),MSForms 的屬性會出現,如下所示:
  • 複製本機: True
  • 路徑: C:\ MyApplication \obj\Interop.MSForms.dll
請注意 Visual Studio.NET 會建立新的 Interop 組件 (IA),然後將它複製到您的專案中的某個資料夾中。就會發生這個問題如果您使用錯誤的組件。

如果您的方案會使用錯誤的 MSForms 參照,您可能會遇到問題,當您嘗試使用此程式庫的物件。例如: 您嘗試使用 FindControl 函式中的 Microsoft Office 系統使用 Visual Studio 工具已建立一個 Excel 活頁簿專案。(通常,您可能會這樣做可以擷取工作表中的 指令按鈕 控制項的 Click 事件)。如果方案有使用錯誤 MSForms 參考,指令按鈕 控制項的 Click 事件不會啟動當使用者按一下工作表上的按鈕雖然程式碼中發生了似乎沒有錯誤。 如果您使用例外處理常式,當您嘗試將 命令按鈕 物件指派時,您會收到 < 徵狀 > 一節中會出現錯誤訊息。

屬性

文章編號: 824009 - 上次校閱: 2004年1月15日 - 版次: 1.5
這篇文章中的資訊適用於:
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Office Professional Edition 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
關鍵字:?
kbmt kberrmsg kbbug kbpia kbnofix KB824009 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:824009
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