office 安裝到GAC,通過pia安裝

要:瞭解如何獲取並安裝 Office 2003 主 interop 程序集 (PIA) 和如何對其進行引用以及疑難解答。


本頁內容
 簡介 
 獲取 Office 2003 PIA 
 安裝 Office 2003 PIA 
 使用 Office 2003 PIA 
 其他資源 

簡介
在 Microsoft Office 2003 中,您可以通過使用主 interop 程序集 (PIA) 來使用由 Office 應用程序公開的 COM 對象。在本文中,將對如何獲取、安裝以及引用 PIA 進行闡釋。

有關 PIA 和 interop 程序集以及如何根據由 Office 2003 公開的接口和類來以託管代碼進行編程的詳細信息,您可以從許多關於該主題的文章中找到。有關 PIA 和 interop 程序集及其使用的信息,請參閱 Primary Interop Assemblies (PIAs) 和 A Primer to the Office XP Primary Interop Assemblies。

請參閱其他資源獲取文章列表,這些文章提供了有關由 Office 向託管代碼公開的類和接口的詳細信息。

返回頁首
獲取 Office 2003 PIA
以下表格列出了可用於 Office 2003 的 PIA。表 1 列出了具有相同版本號以及用相同密鑰簽署的 Microsoft Office 2003 應用程序和組件類型庫。這些應用程序的版本號是 11.0.0.0,公鑰標記爲 71e9bce111e9429c。 

表 2 列出了具有的版本號以及簽署的密鑰與表 1 所列不同的 Office 2003 應用程序和組件類型庫。

表 3 列出了由 Microsoft Visual Studio .NET 2003 提供幷包含在 Office 2003 系列產品中的 PIA。

表 1. 具有相同版本號以及用相同密鑰簽署的 Office 2003 應用程序和組件類型庫 
Office 2003 應用程序或組件 主 Interop 程序集名 主 Interop 程序集命名空間 
Microsoft Access 11.0 Object Library
 Microsoft.Office.Interop.Access.dll
 Microsoft.Office.Interop.Access
 
Microsoft Excel 11.0 Object Library
 Microsoft.Office.Interop.Excel.dll
 Microsoft.Office.Interop.Excel
 
Microsoft Forms 2.0 Object Library
 Microsoft.Vbe.Interop.Forms.dll
 Microsoft.Vbe.Interop.Forms
 
Microsoft FrontPage 6.0 Page Object Reference Library
 Microsoft.Office.Interop.FrontPageEditor.dll
 Microsoft.Office.Interop.FrontPageEditor
 
Microsoft FrontPage 6.0 Web Object Reference Library
 Microsoft.Office.Interop.FrontPage.dll
 Microsoft.Office.Interop.FrontPage
 
Microsoft Graph 11.0 Object Library
 Microsoft.Office.Interop.Graph.dll
 Microsoft.Office.Interop.Graph
 
Microsoft InfoPath 1.0 Type Library
 Microsoft.Office.Interop.InfoPath.dll
 Microsoft.Office.Interop.InfoPath
 
Microsoft Office 11.0 Object Library
 Office.dll
 Microsoft.Office.Core
 
Microsoft Office Outlook View Control
 Microsoft.Office.Interop.OutlookViewCtl.dll
 Microsoft.Office.Interop.OutlookViewCtl
 
Microsoft Office Web Components 11.0
 Microsoft.Office.Interop.Owc11.dll
 Microsoft.Office.Interop.Owc11
 
Microsoft Outlook 11.0 Object Library
 Microsoft.Office.Interop.Outlook.dll
 Microsoft.Office.Interop.Outlook
 
Microsoft PowerPoint 11.0 Object Library
 Microsoft.Office.Interop.PowerPoint.dll
 Microsoft.Office.Interop.PowerPoint
 
Microsoft Project 11.0 Object Library
 Microsoft.Office.Interop.MSProject.dll
 Microsoft.Office.Interop.MSProject
 
Microsoft Publisher 11.0 Object Library
 Microsoft.Office.Interop.Publisher.dll
 Microsoft.Office.Interop.Publisher
 
Microsoft SmartTag 2.0 Type Library
 Microsoft.Office.Interop.SmartTag.dll
 Microsoft.Office.Interop.SmartTag
 
Microsoft Visio 11.0 Type Library
 Microsoft.Office.Interop.Visio.dll
 Microsoft.Office.Interop.Visio
 
Microsoft Visual Basic 6.0 Extensibility
 Microsoft.Vbe.Interop.dll
 Microsoft.Vbe.Interop
 
Microsoft Word 11.0 Object Library
 Microsoft.Office.Interop.Word.dll
 Microsoft.Office.Interop.Word
 
表 2. 具有不同版本號以及用不同密鑰簽署的 Office 2003 應用程序和組件類型庫 
對象庫 主 Interop 程序集名 版本號 公鑰標記 
Microsoft DAO 3.6 Object Library
 Dao.dll
 10.0.4504.0
 31bf3856ad364e35
 
Microsoft Windows Common Controls 6.0
 Mscomctl.dll
 10.0.4504.0
 31bf3856ad364e35
 
表 3. 由 Visual Studio .NET 2003 提供幷包含在 Office 2003 中的 PIA 
對象庫 主 Interop 程序集名 版本號 公鑰標記 
Microsoft ActiveX Data Objects 2.5†2.8 Library
 Adodb.dll
 7.0.3300.0
 b03f5f7f11d50a3a
 
Microsoft Data Source Interfaces
 Msdatasrc.dll
 7.0.3300.0
 b03f5f7f11d50a3a
 
OLE Automation
 Stdole.dll
 7.0.3300.0
 b03f5f7f11d50a3a
 

安裝 Office 2003 之前,在安裝 .NET Framework 1.1 時獲取 Office 2003 PIA
要在安裝 Microsoft Office 2003 時獲取 Office PIA,您必須首先安裝 Microsoft .NET Framework 版本 1.1。如果在安裝 Office 2003 之前未安裝 .NET Framework 1.1,則 PIA 不會隨 Office 2003 安裝進行安裝。 

如果在安裝了 Office 2003 之後安裝 .NET Framework 1.1,則仍然可以通過遵循安裝 Office 2003 之後,在安裝 .NET Framework 1.1 時獲取 Office 2003 PIA中概述的步驟來安裝 PIA。

如果在安裝 Office 2003 之前沒有安裝 .NET Framework 1.1,則安裝 PIA 的選項不會顯示在 Office 的自定義安裝中。如果首先安裝 .NET Framework 1.1,您會在自定義安裝中看見選項列表中的 .NET Programmability Support 可用,如圖 1 所示。 


按此在新窗口打開圖片
圖 1. Office 2003 安裝中的 .NET Programmability Support 選項


安裝 Office 2003 之後,在安裝 .NET Framework 1.1 時獲取 Office 2003 PIA 
如果在安裝 Microsoft Office 2003 之後安裝 Microsoft .NET Framework 版本 1.1,則要獲取 PIA,您必須修改您的 Office 安裝

要修改 Office 2003 安裝

1.
 在 MicrosoftOffice 2003 Setup 對話框的 Maintenance Mode Options 屏幕中,選擇 Add or Remove Features,如圖 2 所示,單擊 Next。 

 

按此在新窗口打開圖片
圖 2. 修改 Office 2003 安裝程序

 
2.
 選擇 Choose advanced customization of applications 複選框並單擊 Next。 
 
3.
 展開特定於應用程序的節點。例如,要獲取 Microsoft Office Excel 2003 PIA,請展開 Microsoft Office Excel 節點並選擇 .NET Programmability Support。單擊 .NET Programmability Support 旁邊的下拉箭頭以選擇更新選項,並選取 Run from My Computer,如圖 3 所示。請勿選擇 Installed on First Use。 

 

按此在新窗口打開圖片

圖 3. 選擇 .NET Programmability Support 的更新選項


注 選擇 Run from My Computer 意味着您希望將當前選定功能(例如 .NET Programmability Support)安裝並存儲在硬盤上。選擇 Run all from My Computer 意味着您希望將當前選定功能及其所有子功能都安裝並存儲在硬盤上。.NET Programmability Support 功能沒有子功能,因此無論選擇 Run from My Computer 還是 Run all from My Computer,都會得到相同的結果。選擇 Installed on First Use 意味着您只希望在首次使用 .NET Programmability Support 功能時,將其安裝在硬盤上。在這種情形中,您或許需要用訪問用於安裝 Office 2003 的光盤或網絡服務器,以安裝 .NET Programmability Support 功能。
 
4.
 單擊 Update。 
 
5.
 要安裝其他特定於 Office 2003 應用程序的 PIA,請展開應用程序節點並選擇 .NET Programmability Support。 

要安裝 Smart Tag .NET Programmability Support、Microsoft Forms 2.0 .NET Programmability Support 或 Microsoft Graph .NET Programmability Support,請展開 Office Tools 節點,並選擇適當的 .NET Programmability Support,如圖 4 所示。如果是在開發計算機上進行安裝,請再次確保選擇了 Run from My Computer 。請勿選擇 Installed on First Use。 

 

按此在新窗口打開圖片
圖 4. Office Tools 節點 .NET Programmability Support 選項

 

返回頁首
安裝 Office 2003 PIA
通過 Office 2003 的“典型安裝”來安裝 PIA 

如果已具備 Microsoft .NET Framework 版本 1.1,則默認情況下,Microsoft Office 2003 的典型安裝會安裝以下五個 PIA: 

• Stdole.dll 
 
• Adodb.dll 
 
• Msdatasrc.dll 
 
• Microsoft.Vbe.Interop.dll 
 
• Office.dll 
 

如果具備了 Microsoft Access 或 Microsoft Office Web Components 2003,則默認情況下,還安裝有 Mscomctl.dll PIA。

通過 Office 2003 的“完全安裝”來安裝 PIA 

如果採用完全安裝而不是典型安裝,則安裝 Microsoft Office 2003 時,PIA 會自動安裝到全局程序集緩存中。如果要在開發計算機上安裝 PIA,應採用完全安裝。對於典型安裝,可根據需要來安裝 PIA。 

注 在開發計算機上,如果需要 PIA,則不應採用 Office 2003 的典型安裝。這是存在於 Microsoft Visual Studio .NET 和 Microsoft Visual Studio .NET 2003 中的一個問題,該問題會導致創建一個 Visual Studio£¬即在引用其 PIA 被設置爲按需安裝的 COM 對象時,會生成 interop 程序集。要避免這個問題,請確保在開始任何開發工作之前,希望引用的 Office 2003 PIA 安裝在全局程序集緩存中。對於不會用於開發工作的計算機,對 Office 2003 進行典型安裝是完全可以的。自定義 Office 的安裝步驟安裝 Office 2003 之後,在安裝 .NET Framework 1.1 時獲取 Office 2003 PIA中所述相同。 

查找 Office 2003 PIA 安裝位置 

Microsoft Office 2003 主 Interop 程序集 (PIA) 安裝在 drive:/WINDOWS/assembly 或 drive:/WINNT/assembly 中的全局程序集緩存中。 

例如,如果 Microsoft Office Excel 2003 PIA 安裝在全局程序集緩存中,您會在全局程序集緩存中看到該全局程序集名 Microsoft.Office.Interop.Excel,版本爲 11.0.0.0,公鑰標記爲 71e9bce111e9429c,如圖 5 所示。如果您看不到這些信息,那麼該 Excel PIA 未被安裝。 

按此在新窗口打開圖片
圖 5. 安裝在全局程序集緩存中的 Office 2003 PIA


返回頁首
使用 Office 2003 PIA
引用 Office 2003 託管代碼 — 類型 PIA 

可以通過使用以下過程來引用一個或多個 Office 2003 PIA。

要引用 Office 2003 託管代碼 鈥 類型 PIA

1.
 打開 Microsoft Visual Studio .NET 或 Microsoft Visual Studio .NET 2003 中的託管代碼解決方案 (.sln) 文件。 
 
2.
 在 Solution Explorer 窗口中,展開 References 節點。 
 
3.
 右鍵單擊 References, Add References 以打開 Add reference 對話框,如圖 6 所示。 
 
4.
 單擊 COM 選項卡。 

 

按此在新窗口打開圖片
圖 6. COM 選項卡處於選中狀態的 Add Reference 對話框

 
5.
 在 Component Name 列表中,下滾至需要引用的對象類型庫。例如,圖 6 中,選定了 Microsoft Office 11.0 Object Library。 
 
6.
 突出顯示該組件並單擊 Select。您會看到它出現在該選項卡底部的 Selected Components 列表框中。 
 
7.
 單擊 OK。您將看到 Microsoft.Office.Core 已添加至 Solution Explorer 中的 References 節點,如圖 7 所示。 

 

按此在新窗口打開圖片
圖 7. 添加至 References 的 Microsoft.Office.Core PIA

 

如果突出顯示 Microsoft.Office.Core 引用並在 Properties 窗口中查看其屬性,則 Copy Local 屬性應被設置爲 False。Path 屬性應指向其在全局程序集緩存中的位置,並應包括其版本號:11.0.0.0。在 Microsoft Windows XP 操作系統中,它看起來類似於如下所示:

C:/WINDOWS/assembly/GAC/office/11.0.0.0  71e9bce111e9429c/office.dll

要向其他 Office 2003 類型庫添加引用,請重複步驟 3 到步驟 7。在步驟 5 中,選擇希望引用的應用程序或組件對象類型庫。

驗證對 Office 2003 PIA 的引用

要知道是否正確地引用了 PIA,請確保該 PIA 的 Copy Local 屬性被設置爲 False。在 Windows XP 操作系統中,例如,如果要引用 Microsoft Office 2003 Smart Tag PIA,則 Path 屬性應當如下顯示: 

C:/WINDOWS/assembly/GAC/Microsoft.Office.Interop.SmartTag/
    11.0.0.0  71e9bce111e9429c/Microsoft.Office.Interop.SmartTag.dll

如果 Properties 窗口中的 Copy Local 屬性被設置爲 True,那麼您的解決方案引用的不是智能標記 PIA,而是 interop 程序集。因爲最佳實踐使用正式的 PIA,所以您應當移除 interop 程序集並再次引用 PIA。要移除某個 interop 程序集,請在 References 節點中,右鍵單擊該 interop 程序集名並單擊 Remove。

注 僅當您選擇了 Run from My Computer 而不是 Installed on First Use 作爲該 PIA 的更新選項或對 Office 2003進行了完全安裝時,移除 interop 程序集並再次引用 PIA纔會奏效。有關此注意事項的詳細信息,請參閱安裝 Office 2003 之後,在安裝 .NET Framework 1.1 時獲取 Office 2003 PIA。

如果您知道在全局程序集緩存中有 Office 2003 PIA£¬但不知何故您不停地需要某個 interop 程序集而不是 PIA,這可能意味着某些類型庫註冊已損壞了該特定 PIA 註冊。要修復 PIA 註冊問題,請參閱 PIA 與 Interop 程序集之間的差異。

PIA 和 Interop 程序集之間的差異

如果您可以在全局程序集緩存中看到 Microsoft Office 2003 PIA£¬但不知何故,在您引用 Office 應用程序或組件對象類型庫時不停地需要某個 interop 程序集而不是 PIA,這可能意味着某些其他類型庫註冊已損壞了該特定 PIA 註冊。要修復該 PIA 註冊,可以採用以下任意一個步驟: 

注 您在嘗試使用以下各選項之前,應當從 Microsoft Office 下載來安裝 Microsoft Office 2003 Service Pack 1。 

• 執行 Office 修復。 
 
• 重新安裝受影響的 PIA。要進行此操作,請重新運行 Office安裝(請參閱安裝 Office 2003 之後,在安裝 .NET Framework 1.1 時獲取 Office 2003 PIA)。 
 
• 從全局程序集緩存中,在受影響的 PIA 上運行 RegAsm 工具以對其重新進行註冊。例如,在 Office PIA(該 Office PIA 命名空間是 Microsoft.Office.Core)上運行 RegAsm,如下所示: 

%systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe
%systemroot%/assembly/GAC/Office/11.0.0.0  71e9bce111e9429c/
    Office.dll

要在 VBIDE PIA(該 VBIDE PIA 命名空間是 Microsoft.Vbe.Interop)上運行 RegAsm: 

%systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe
%systemroot%/assembly/GAC/Microsoft.Vbe.Interop/
    11.0.0.0  71e9bce111e9429c/Microsoft.Vbe.Interop.dll

要在 Microsoft Office Excel 2003 PIA(該 Excel PIA 命名空間是 Microsoft.Office.Interop.Excel)上運行 RegAsm: 

%systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe
%systemroot%/assembly/GAC/Microsoft.Office.Interop.Excel/
    11.0.0.0  71e9bce111e9429c/ Microsoft.Office.Interop.Excel.dll

要在 Microsoft Office 2003 Smart Tag PIA(該 Smart Tag PIA 命名空間是 Microsoft.Office.Interop.SmartTag)上運行 RegAsm: 

%systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe
%systemroot%/assembly/GAC/Microsoft.Office.Interop.SmartTag/
    11.0.0.0  71e9bce111e9429c/Microsoft.Office.Interop.SmartTag.dll

 

避免重新發布 Office 2003 PIAs

不應用解決方案安裝程序包嘗試以任何方式重新發布 Microsoft Office 2003 PIA,Office 2003 應當是唯一的 Office 2003 PIA 提供機制。可以通過完全、典型或自定義安裝將 Office 2003 PIA 自動安裝至全局程序集緩存或根據需要安裝在最終用戶計算機上。 

請確保不要在安裝程序中包含 PIA¡£在安裝項目中包含 Office 2003 PIA 可能會損壞最終用戶計算機上 Office 2003 所有權和 PIA 組件的註冊。這會導致在卸載期間,無意間將它們從最終用戶計算機上刪除。 

例如,當用戶安裝安裝程序包時,打包在安裝程序中的 Office 2003 PIA 會改寫之前安裝的組件的註冊。當用戶卸載其解決方案時,那些 PIA 註冊可能會被損壞,從而使得最終用戶計算機不支持這些組件的 .NET 可編程能力。 

注 Microsoft Visual Studio .NET 和 Microsoft Visual Studio .NET 2003 安裝項目通常自動在安裝程序包中包含一些 PIA。您必須確保最終用戶計算機上的安裝程序包不包含 Office 2003 PIA。 

避免重新發布 Stdole.dll、Adodb.dll 以及 Msdatasrc.dll PIA

與 Microsoft Office XP 不同,Stdole.dll、Adodb.dll 以及 Msdatasrc.dll PIA 包含在 Microsoft Office 2003 中,如表 3 所示。與對待所有 Office 2003 PIA 一樣,不應將其重新發布。有關爲何不應重新發布包含在 Office 2003 中的 PIA 的詳細信息,請參閱避免重新發布 Office 2003 PIA。

使用 Office XP PIA 和 Office 2003 PIA

PIA 特定於版本,因此應當使用版本與應用程序版本相同的 PIA。例如,如果您希望將自己的 Microsoft Office XP 託管代碼解決方案遷移到 Microsoft Office 2003,那麼您應當通過 Office 2003 PIA 重新編譯該 Office XP 託管代碼解決方案。

如果您打算在 Office XP 和 Office 2003 中使用同一個解決方案,那麼還應當具備兩個不同的安裝程序包,一個用於 Office XP,另一個用於 Office 2003¡£Office XP 的 PIA 部署與 Office 2003 的完全不同。有關這些差異的詳細信息,請參閱 Office XP PIA 下載中包含的 ReadMe 文件。正如避免重新發布 Office 2003 PIA 中所強調的那樣,不應嘗試那些意在重新部署 Office 2003 PIA 的解決方案部署方案。如果您的解決方案依賴於 Office 2003 PIA,則它應當使用 Office 2003 來提供 PIA。

返回頁首
其他資源
對於有興趣詳細瞭解利用託管代碼爲 icrosoft Office 2003 ½ø行編程、PIA 中由 Office 公開的接口和 co-class、類型信息等等的讀者,可以參閱以下書籍、文章和下載: 

• Microsoft .NET Development for Microsoft Office (Office/Progmng/Net)
 
• Microsoft Office 2003 Service Pack 1 位於 Microsoft Office Downloads
 
• Microsoft 知識庫文章: Information about designing Office XP add-ins and Office 2003 add-ins by using the .NET Framework
 
• Primary Interop Assemblies (PIAs)
 
• A Primer to the Office XP Primary Interop Assemblies 
 
• Working with the Office XP Primary Interop Assemblies 
 
• Office XP Primary Interop Assemblies Known Issues
 
• Microsoft 知識庫文章: Microsoft Office XP Primary Interop Assemblies (PIAs) are available for download
 
• Office XP Primary Interop Assemblies (PIAs) download
 
• Coming to grips with the mess of types in the Office PIAs
 
• Excel PIAs: Who you calling Dummy--Dummy?
 
• Programming Microsoft Word 2002 and Excel 2002 with Microsoft Visual C#
 
• Programming Office Applications Using Microsoft Visual C#
 
• Understanding the Excel Object Model from a .NET Developer's Perspective
 
• Understanding the Word Object Model from a .NET Developer's Perspective
 
• An Introduction to Programming Outlook 2003 Using C#
 
• Developing .NET Smart Clients for Microsoft Office XP
 
• Introducing OfficeWiki.net - An experiment in community Office PIA documentation
 
• Problems when a Method and Event name are the same when using C#
 
• Isolating Office Extensions with the COM Shim Wizard
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章