出錯(cuò)原因:Office 2003 主 Interop 程序集未安裝
如果在安裝了 Office 2003 之后安裝 .NET Framework 1.1,則仍然可以通過(guò)遵循安裝 Office 2003 之后,在安裝 .NET Framework 1.1 時(shí)獲取 Office 2003 PIA中概述的步驟來(lái)安裝 PIA。 如果在安裝 Office 2003 之前沒(méi)有安裝 .NET Framework 1.1,則安裝 PIA 的選項(xiàng)不會(huì)顯示在 Office 的自定義安裝中。如果首先安裝 .NET Framework 1.1,您會(huì)在自定義安裝中看見(jiàn)選項(xiàng)列表中的 .NET Programmability Support 可用,如圖 1 所示。 圖 1. Office 2003 安裝中的 .NET Programmability Support 選項(xiàng) 要修改 Office 2003 安裝 在 Microsoft Office 2003 Setup 對(duì)話框的 Maintenance Mode Options 屏幕中,選擇 Add or Remove Features,如圖 2 所示,單擊 Next。 圖 2. 修改 Office 2003 安裝程序 展開(kāi)特定于應(yīng)用程序的節(jié)點(diǎn)。例如,要獲取 Microsoft Office Excel 2003 PIA,請(qǐng)展開(kāi) Microsoft Office Excel 節(jié)點(diǎn)并選擇 .NET Programmability Support。單擊 .NET Programmability Support 旁邊的下拉箭頭以選擇更新選項(xiàng),并選取 Run from My Computer,如圖 3 所示。請(qǐng)勿選擇 Installed on First Use。 圖 3. 選擇 .NET Programmability Support 的更新選項(xiàng) 單擊 Update。 要安裝其他特定于 Office 2003 應(yīng)用程序的 PIA,請(qǐng)展開(kāi)應(yīng)用程序節(jié)點(diǎn)并選擇 .NET Programmability Support。 要安裝 Smart Tag .NET Programmability Support、Microsoft Forms 2.0 .NET Programmability Support 或 Microsoft Graph .NET Programmability Support,請(qǐng)展開(kāi) Office Tools 節(jié)點(diǎn),并選擇適當(dāng)?shù)?.NET Programmability Support,如圖 4 所示。如果是在開(kāi)發(fā)計(jì)算機(jī)上進(jìn)行安裝,請(qǐng)?jiān)俅未_保選擇了 Run from My Computer 。請(qǐng)勿選擇 Installed on First Use。 圖 4. Office Tools 節(jié)點(diǎn) .NET Programmability Support 選項(xiàng) 安裝 Office 2003 PIA 如果已具備 Microsoft .NET Framework 版本 1.1,則默認(rèn)情況下,Microsoft Office 2003 的典型安裝會(huì)安裝以下五個(gè) PIA: Stdole.dll Adodb.dll Msdatasrc.dll Microsoft.Vbe.Interop.dll Office.dll 如果具備了 Microsoft Access 或 Microsoft Office Web Components 2003,則默認(rèn)情況下,還安裝有 Mscomctl.dll PIA。 通過(guò) Office 2003 的“完全安裝”來(lái)安裝 PIA 如果采用完全安裝而不是典型安裝,則安裝 Microsoft Office 2003 時(shí),PIA 會(huì)自動(dòng)安裝到全局程序集緩存中。如果要在開(kāi)發(fā)計(jì)算機(jī)上安裝 PIA,應(yīng)采用完全安裝。對(duì)于典型安裝,可根據(jù)需要來(lái)安裝 PIA。 注 在開(kāi)發(fā)計(jì)算機(jī)上,如果需要 PIA,則不應(yīng)采用 Office 2003 的典型安裝。這是存在于 Microsoft Visual Studio .NET 和 Microsoft Visual Studio .NET 2003 中的一個(gè)問(wèn)題,該問(wèn)題會(huì)導(dǎo)致創(chuàng)建一個(gè) Visual Studio£?即在引用其 PIA 被設(shè)置為按需安裝的 COM 對(duì)象時(shí),會(huì)生成 interop 程序集。要避免這個(gè)問(wèn)題,請(qǐng)確保在開(kāi)始任何開(kāi)發(fā)工作之前,希望引用的 Office 2003 PIA 安裝在全局程序集緩存中。對(duì)于不會(huì)用于開(kāi)發(fā)工作的計(jì)算機(jī),對(duì) Office 2003 進(jìn)行典型安裝是完全可以的。自定義 Office 的安裝步驟安裝 Office 2003 之后,在安裝 .NET Framework 1.1 時(shí)獲取 Office 2003 PIA 中所述相同。 查找 Office 2003 PIA 安裝位置 Microsoft Office 2003 主 Interop 程序集 (PIA) 安裝在 drive:/WINDOWS/assembly 或 drive:/WINNT/assembly 中的全局程序集緩存中。 例如,如果 Microsoft Office Excel 2003 PIA 安裝在全局程序集緩存中,您會(huì)在全局程序集緩存中看到該全局程序集名 Microsoft.Office.Interop.Excel,版本為 11.0.0.0,公鑰標(biāo)記為 71e9bce111e9429c,如圖 5 所示。如果您看不到這些信息,那么該 Excel PIA 未被安裝。 圖 5. 安裝在全局程序集緩存中的 Office 2003 PIA 使用 Office 2003 PIA 可以通過(guò)使用以下過(guò)程來(lái)引用一個(gè)或多個(gè) Office 2003 PIA。 要引用 Office 2003 托管代碼 鈥 類型 PIA 打開(kāi) Microsoft Visual Studio .NET 或 Microsoft Visual Studio .NET 2003 中的托管代碼解決方案 (.sln) 文件。 在 Solution Explorer 窗口中,展開(kāi) References 節(jié)點(diǎn)。 右鍵單擊 References, Add References 以打開(kāi) Add reference 對(duì)話框,如圖 6 所示。 單擊 COM 選項(xiàng)卡。 圖 6. COM 選項(xiàng)卡處于選中狀態(tài)的 Add Reference 對(duì)話框 突出顯示該組件并單擊 Select。您會(huì)看到它出現(xiàn)在該選項(xiàng)卡底部的 Selected Components 列表框中。 單擊 OK。您將看到 Microsoft.Office.Core 已添加至 Solution Explorer 中的 References 節(jié)點(diǎn), 如圖 7 所示。 圖 7. 添加至 References 的 Microsoft.Office.Core PIA C:/WINDOWS/assembly/GAC/office/11.0.0.0 71e9bce111e9429c/office.dll 驗(yàn)證對(duì) Office 2003 PIA 的引用 要知道是否正確地引用了 PIA,請(qǐng)確保該 PIA 的 Copy Local 屬性被設(shè)置為 False。在 Windows XP 操作系統(tǒng)中,例如,如果要引用 Microsoft Office 2003 Smart Tag PIA,則 Path 屬性應(yīng)當(dāng)如下顯示: C:/WINDOWS/assembly/GAC/Microsoft.Office.Interop.SmartTag/ 注 僅當(dāng)您選擇了 Run from My Computer 而不是 Installed on First Use 作為該 PIA 的更新選項(xiàng)或?qū)?Office 2003進(jìn)行了完全安裝時(shí),移除 interop 程序集并再次引用 PIA才會(huì)奏效。有關(guān)此注意事項(xiàng)的詳細(xì)信息,請(qǐng)參閱安裝 Office 2003 之后,在安裝 .NET Framework 1.1 時(shí)獲取 Office 2003 PIA。 如果您知道在全局程序集緩存中有 Office 2003 PIA£?但不知何故您不停地需要某個(gè) interop 程序集而不是 PIA,這可能意味著某些類型庫(kù)注冊(cè)已損壞了該特定 PIA 注冊(cè)。要修復(fù) PIA 注冊(cè)問(wèn)題,請(qǐng)參閱 PIA 與 Interop 程序集之間的差異。 PIA 和 Interop 程序集之間的差異 如果您可以在全局程序集緩存中看到 Microsoft Office 2003 PIA£?但不知何故,在您引用 Office 應(yīng)用程序或組件對(duì)象類型庫(kù)時(shí)不停地需要某個(gè) interop 程序集而不是 PIA,這可能意味著某些其他類型庫(kù)注冊(cè)已損壞了該特定 PIA 注冊(cè)。要修復(fù)該 PIA 注冊(cè),可以采用以下任意一個(gè)步驟: 注 您在嘗試使用以下各選項(xiàng)之前,應(yīng)當(dāng)從 Microsoft Office 下載來(lái)安裝 Microsoft Office 2003 Service Pack 1。 執(zhí)行 Office 修復(fù)。 重新安裝受影響的 PIA。要進(jìn)行此操作,請(qǐng)重新運(yùn)行 Office安裝(請(qǐng)參閱安裝 Office 2003 之后,在安裝 .NET Framework 1.1 時(shí)獲取 Office 2003 PIA)。 從全局程序集緩存中,在受影響的 PIA 上運(yùn)行 RegAsm 工具以對(duì)其重新進(jìn)行注冊(cè)。例如,在 Office PIA(該 Office PIA 命名空間是 Microsoft.Office.Core)上運(yùn)行 RegAsm,如下所示: %systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe %systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe %systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe %systemroot%/Microsoft.NET/Framework/v1.1.4322/RegAsm.exe 不應(yīng)用解決方案安裝程序包嘗試以任何方式重新發(fā)布 Microsoft Office 2003 PIA,Office 2003 應(yīng)當(dāng)是唯一的 Office 2003 PIA 提供機(jī)制。可以通過(guò)完全、典型或自定義安裝將 Office 2003 PIA 自動(dòng)安裝至全局程序集緩存或根據(jù)需要安裝在最終用戶計(jì)算機(jī)上。 請(qǐng)確保不要在安裝程序中包含 PIA?£在安裝項(xiàng)目中包含 Office 2003 PIA 可能會(huì)損壞最終用戶計(jì)算機(jī)上 Office 2003 所有權(quán)和 PIA 組件的注冊(cè)。這會(huì)導(dǎo)致在卸載期間,無(wú)意間將它們從最終用戶計(jì)算機(jī)上刪除。 例如,當(dāng)用戶安裝安裝程序包時(shí),打包在安裝程序中的 Office 2003 PIA 會(huì)改寫之前安裝的組件的注冊(cè)。當(dāng)用戶卸載其解決方案時(shí),那些 PIA 注冊(cè)可能會(huì)被損壞,從而使得最終用戶計(jì)算機(jī)不支持這些組件的 .NET 可編程能力。 注 Microsoft Visual Studio .NET 和 Microsoft Visual Studio .NET 2003 安裝項(xiàng)目通常自動(dòng)在安裝程序包中包含一些 PIA。您必須確保最終用戶計(jì)算機(jī)上的安裝程序包不包含 Office 2003 PIA。 避免重新發(fā)布 Stdole.dll、Adodb.dll 以及 Msdatasrc.dll PIA 與 Microsoft Office XP 不同,Stdole.dll、Adodb.dll 以及 Msdatasrc.dll PIA 包含在 Microsoft Office 2003 中,如表 3 所示。與對(duì)待所有 Office 2003 PIA 一樣,不應(yīng)將其重新發(fā)布。有關(guān)為何不應(yīng)重新發(fā)布包含在 Office 2003 中的 PIA 的詳細(xì)信息,請(qǐng)參閱避免重新發(fā)布 Office 2003 PIA。 使用 Office XP PIA 和 Office 2003 PIA PIA 特定于版本,因此應(yīng)當(dāng)使用版本與應(yīng)用程序版本相同的 PIA。例如,如果您希望將自己的 Microsoft Office XP 托管代碼解決方案遷移到 Microsoft Office 2003,那么您應(yīng)當(dāng)通過(guò) Office 2003 PIA 重新編譯該 Office XP 托管代碼解決方案。 如果您打算在 Office XP 和 Office 2003 中使用同一個(gè)解決方案,那么還應(yīng)當(dāng)具備兩個(gè)不同的安裝程序包,一個(gè)用于 Office XP,另一個(gè)用于 Office 2003?£Office XP 的 PIA 部署與 Office 2003 的完全不同。有關(guān)這些差異的詳細(xì)信息,請(qǐng)參閱 Office XP PIA 下載中包含的 ReadMe 文件。正如避免重新發(fā)布 Office 2003 PIA 中所強(qiáng)調(diào)的那樣,不應(yīng)嘗試那些意在重新部署 Office 2003 PIA 的解決方案部署方案。如果您的解決方案依賴于 Office 2003 PIA,則它應(yīng)當(dāng)使用 Office 2003 來(lái)提供 PIA。 本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/xiaokuang513204/archive/2009/10/09/4644710.aspx |
|