文章編號: 948461 - 上次校閱: 2008年4月16日 - 版次: 2.1

您無法從 Visual Basic 載入.NET Framework 2.0 的組件,以在 Word 2003 及較早的版本或 Excel 2003 和舊版的應用程式

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
重要本文包含有關如何修改登錄的資訊。請確定您在修改之前備份登錄。如果發生問題,請確定您知道如何還原登錄。如何備份、 還原,及修改登錄的相關資訊,請按一下下列的文件編號,檢視 Microsoft 知識庫中的文件:
322756? (http://support.microsoft.com/kb/322756/ ) 如何備份和還原在 Windows 登錄

在此頁中

全部展開 | 全部摺疊

徵狀

您有增益集或使用 Microsoft.NET Framework 2.0 的巨集組件。如果您執行這些增益集或巨集從 Microsoft Visual Basic 的應用程式 (VBA) 在 Microsoft Office Word 2003 或較早版本中,或在 Microsoft Office Excel 2003] 或 [較早版本這些組件不要初始化正確。此外,這些組件會傳回錯誤。

比方說您可能會收到類似下列的錯誤訊息:
執行階段錯誤: '-2147024894 '(80070002)': 找不到檔案或組件名稱 AssemblyName,或其相依性的其中之一。
附註在 Microsoft Office Word 2007 或在 Microsoft Office Excel 2007 中,不會發生這個問題。

發生的原因

.NET Framework 2.0 包含 lockback 原則。 此原則可防止.NET Framework 2.0 公用語言執行時間 (CLR) 初始化時.NET Framework 2.0 裝載在 Word 處理序空間或在 Excel 處理序空間。原則限制會限制從載入均晚於 1.1 版.NET Framework 版本 Word 和 Excel。因此,.NET Framework 2.0 的組件無法載入。

原則限制已加入 Microsoft Visual Studio 工具與相容性的 Microsoft Office 系統 (VSTO)。VSTO 特別的原始來使用.NET Framework 1.1。

其他可行方案

正式,執行 Managed 程式碼在 Word 或內側內 Excel 建議除非您使用一個處理多個廠商元件,例如 VSTO 執行階段的支援的執行階段環境。某些廠商優惠 Managed 程式碼使用的元件 COM 互通性。因此,這些元件會載入內部 Word 或 Excel 內不使用 VSTO 執行階段引擎。不過,隔離中無法執行這些元件。這些元件可能會造成不良的影響 Office 能力。我們強烈建議您考慮這類使用的效果之前您包含這些類型的元件在增益集專案中或在您在 Word 或 Excel 中執行的巨集專案中。

如果您自訂的解決方案必須使用受管理的.NET Framework 2.0 元件而不使用 VSTO 執行階段,考慮其中一個下列的選項,以減少 lockback 原則的效果。

正在執行 Microsoft Office 2003 的用戶端

VSTO 2003 引進 Office 2003 中新增 Managed 程式碼的支援。VSTO 被為了使用.NET Framework 1.1 而設計的。稍後,Microsoft 引進.NET Framework 2.0。不過,.NET Framework 2.0 可以導致與 VSTO 2003 的相容性問題。因此,.NET Framework 2.0 CLR 已阻止載入在 Word 或 Excel 中,除非這些 Office 產品有 VSTO 執行階段引擎的更新的版本。可下載的更新中的 Office 2003 用戶端提供該更新程式。更新已包含在 Office 2003 Service Pack 3 (SP3) 更新。

如需有關如何取得此更新 Office 2003 的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
907417? (http://support.microsoft.com/kb/907417/ ) 說明 Office 2003 更新: 2005 年 11 月 8,

正在執行 Office 2000 或 Office XP 的用戶端

重要這個區段、 方法或任務包含告訴您如何修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,執行這些步驟時請務必小心。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756? (http://support.microsoft.com/kb/322756/ ) 如何備份和還原在 Windows 登錄
Microsoft 不提供受管理的執行階段,針對 Microsoft Office 2000 或 Microsoft Office XP (2002)。因此,Microsoft 不會對這些用戶端提供的更新。而強制執行元件隔離一個主機執行階段,不會產生不同廠商的元件可能會干擾其他元件。這些元件可能會造成問題的用戶端。這些元件也可能會造成應用程式不穩定或執行階段錯誤。因此,Microsoft 會阻礙在 Office 2000,或在 Office XP 中使用 Managed 程式碼。 當您嘗試引入這些 Office 版本的 Managed 程式碼時要小心。 這些 Office 版本所設計,並測試建立.NET Framework 之前。

如果您有一個解決方案,必須使用 Managed 程式碼在 Word] 2000 Word] 2002 在 Excel 2000 中,或在 Excel 2002 中您可以手動設定用戶端系統略過 lockback 原則,並啟用.NET Framework 2.0 CLR 載入那些版本。 要這麼做,請您執行下列步驟:
  1. 按一下 [開始]、 按一下 [執行],輸入 regedit,並按下 ENTER。
  2. 找出並用滑鼠右鍵按一下下列登錄機碼:
    HKEY_CLASSES_ROOT\Interface
  3. 指向 [新增],然後再按一下 [索引鍵
  4. 輸入 {000 C 0601-0000-0000-C000-000000000046}] 做為新的登錄機碼名稱。
  5. 中,右邊按兩下預設登錄項目、 輸入 [數值資料] 方塊中的 [Word/Excel.NET Framework 2.0 Lockback 不使用索引鍵,然後按一下 [[確定]]。
  6. 關閉 [登錄編輯程式]。
附註設定這個略過機碼可能會導致解決方案,都設計成使用 VSTO 2003 的相容性問題。只要這個用戶端仍在 Office 2000 或 Office XP 上,這應該不是問題。不過,如果用戶端升級至 Office 2003,用戶端必須安裝完整更新稍早提到的 Microsoft 所支援。它會成為您確定這種組態正確如果您以手動方式設定這個略過機碼的責任。

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

附註,來開發人員

建置增益集方案或巨集的解決方案,針對 Word 或 Excel 開發人員必須知道的 Managed 的元件納入其解決方案的限制。請試著時您可以使用原生元件。此外,請考慮針對您的方案,VSTO 2005 執行階段、 VSTO 2005 SE] 執行階段或 VSTO 2008 執行階段執行的 Office 版本。如果您的方案必須使用公開 COM 互通性的 Managed 的元件,您應該考慮包裝那些元件在原生主機。原生主機提供的組件隔離和記憶體回收,這樣您的方案不會干擾其他 Managed 元件,請在相同的主機處理序空間。

如更多有關如何讓 Managed 程式碼的 COM 填隙,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
830468? (http://support.microsoft.com/kb/830468/ ) 受管理的增益集失敗或一個 Managed COM 增益集,其中包含自訂的應用程式組態檔,Office 2003 中,Office XP 和 Office 2000 安裝之後有意外的行為
如果您的解決方案設計來使用 VSTO 2005,而且您必須確定與 un-patched Office 2003 用戶端的相容性,Microsoft 會提供您可以在您的專案設定中包含的安裝必要條件套件。此必要條件套件包含的所有項目,您必須要有正確地設定用戶端,即使在用戶端不執行 Office 2003 SP3。

如如何的更多有關 VSTO 2005 這個安裝選項,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
908002? (http://support.microsoft.com/kb/908002/ ) FIX: 新增增益集、 智慧文件或您使用 Microsoft Visual Studio 2005 所建立的智慧標籤未執行 Office 中

?考

如需詳細資訊請造訪下列 Microsoft 網站]:
http://blogs.msdn.com/vsofficedeveloper/pages/Office-CLR2-Lockback-Bypass.aspx (http://blogs.msdn.com/vsofficedeveloper/pages/Office-CLR2-Lockback-Bypass.aspx)

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