博客园  :: 首页  :: 联系 :: 管理
注意提示:

如不確定,您可以將 \bootstrapper\packages 附加到下列登錄機碼來決定位置:\HKLM\SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0

每個套件資料夾都包含數個檔案,包括可轉散發套件本身、描述套件的組態檔,以及在安裝時檢查是否有套件的選用執行檔。

組態檔會描述套件的安裝行為。第一個組態檔 product.xml 描述的內容如下:

  • 如何偵測是否已經安裝套件。通常可以透過搜尋登錄設定或產品代碼偵測到,或者在某些情況下使用自訂執行檔也可以。產品代碼是指能唯一識別特定產品的 GUID。

  • 如何安裝套件。

  • 此特定套件相依的任何其他套件,例如,Visual Studio 2005 Tools for Office Runtime 就會要求您先安裝 .NET Framework。如果未安裝該套件,Setup.exe 會替使用者安裝。

第二個組態檔 package.xml 則包含套件的語言資訊,例如,當套件無法安裝時顯示的錯誤訊息。每種支援的語言都會有一個子資料夾 (如 EN),其中有該語言版本的 package.xml 和其他檔案,例如使用者授權合約 (EULA)。

Visual Studio 2005 Tools for Office 必要條件的範例組態檔附在範例中,並列於表 1。

表 1. 本文所附啟動載入器套件摘要說明
啟動載入器套件 相依套件 其他條件

Office 2003 主要 Interop 組件可轉散發套件

.NET Framework 2.0

如果未安裝 Visual Studio 2005 Tools for Office 支援的 Excel、Outlook 和 Word 版本,即會失敗。

如果未安裝下列任何主要 Interop 組件,即進行安裝:Excel 2003、Outlook 2003、Word 2003 或智慧標籤。

Visual Studio 2005 Tools for Office Runtime

.NET Framework 2.0

Office 2003 主要 Interop 組件可轉散發套件

 

Visual Studio 2005 Tools for Office 語言套件

Visual Studio 2005 Tools for Office Runtime

 

啟動載入器套件包括:

  • Office 2003 主要 Interop 組件可轉散發套件

    主要 Interop 組件的可轉散發套件是可下載的 Windows Installer 檔案,讓 ISV 和 IT 部門不需要 Office 安裝媒體就能安裝 Office 主要 Interop 組件。Office 主要 Interop 組件可轉散發套件只有在已經安裝 .NET Framework 1.1 或以上版本以及 Office 2003 或獨立產品時才會安裝。在安裝期間,套件會針對目前已安裝的 Office 應用程式,安裝所有 Office 主要 Interop 組件。

    注意注意:

    如果只安裝了 Outlook 2003 獨立產品,套件不會安裝智慧標籤的主要 Interop 組件。

    本文將 .NET Framework 2.0 視為相依元件。因此,當加入 Office 2003 主要 Interop 組件的可轉散發套件時,就會檢查 .NET Framework 2.0 是否存在,並在必要時加以安裝。

    另外還加入了兩個其他自訂條件。首先,如果沒有安裝 Office 或獨立應用程式,Office 2003 主要 Interop 組件的可轉散發套件就不會安裝。以本文為例,如果沒有偵測到與 Visual Studio 2005 Tools for Office 相容的 Excel、Outlook 和 Word 版本,就不會安裝可轉散發套件。

    您必須以機器碼 (Visual C++) 撰寫檢查 Office 應用程式的程式碼。Office 2003 的每種語言版本都有不同的產品代碼。若要偵測是否安裝了支援的 Office 2003 產品,您可以使用簡單的自訂執行檔。本文所附程式碼中的 AppCheck.cpp 即示範如何檢查使用者電腦上是否安裝支援的 Excel、Outlook 或 Word 版本。該程式碼列舉了包含內有 Excel.exe (Excel)、Outlook.exe (Outlook) 或 WinWord.exe (Word) 的元件的所有安裝產品。會對每個安裝的 Office 2003 產品檢查產品代碼,確定是否為 Visual Studio 2005 Tools for Office 支援的產品。檢查產品代碼時,會忽略表示語言版本的部分代碼。由於在啟動載入期間無法確定 .NET Framework 是否存在,因此檢查程式碼必須以 Visual C++ 撰寫。

    注意提示:

    根據預設,啟動載入器會檢查 Excel、Outlook 和 Word 是否存在。有關如何限制只檢查一個應用程式 (如 Word),請參閱<其他資源>。

    其次,如果沒有安裝 Excel、Outlook、Word 或智慧標籤主要 Interop 組件的任何一個,就必須執行主要 Interop 組件的可轉散發套件。若要偵測是否安裝了必要的主要 Interop 組件,您可以使用另一個簡單的自訂執行檔。本文所附程式碼中的 PIACheck.cpp 範例檔即示範如何檢查使用者電腦上是否安裝必要的主要 Interop 組件。

    注意提示:

    有關如何在檢查中新增或移除主要 Interop 組件,請參閱<其他資源>。

    注意重要事項:

    AppCheck.cpp 和主要 PIACheck.cpp 範例檔只能偵測 Office 2003。這些範例檔不支援更新版本的 Office。

  • Visual Studio 2005 Tools for Office Runtime (vstor.exe)

    Visual Studio 2005 Tools for Office Runtime 設定相依於 .NET Framework 2.0 和 Office 主要 Interop 組件的可轉散發套件。Visual Studio 2005 Tools for Office Runtime 只有在已經安裝這兩個相依元件時才會安裝。

  • Visual Studio 2005 Tools for Office 語言套件

    Visual Studio 2005 Tools for Office 語言套件相依於 Visual Studio 2005 Tools for Office Runtime,只有在已經安裝 Visual Studio 2005 Tools for Office Runtime 時才會安裝。而 Visual Studio 2005 Tools for Office Runtime 只有在已經安裝 .NET Framework 2.0 和 Office 主要 Interop 組件的情況下才會安裝。

將 Visual Studio 2005 Tools for Office 套件加入到啟動載入器

下列指示說明如何將上面所列的套件加入到啟動載入器套件目錄。這些步驟只要進行一次即可,而且只能在開發電腦上進行。

執行此作業之前,您必須已有本文所附 Windows Installer 中的檔案。您必須準備好檔案,才能複製到啟動載入器套件目錄。

準備 Office 應用程式和 Office 主要 Interop 組件檢查

您必須編譯 Office 應用程式和主要 Interop 組件檢查器程式範例。

注意重要事項:

如果使用 Visual Studio 2005 Tools for Office,您必須確定已經安裝 .NET Framework 2.0 軟體開發套件 (SDK) 和 Windows Platform SDK。

注意注意:

根據預設,Visual Studio 2005 Tools for Office 不會安裝 .NET Framework 2.0 SDK。您可以下載或從安裝媒體安裝,例如在 Visual Studio 2005 Tools for Office 中使用 [新增或移除程式] 命令。您可以從 Microsoft 下載中心下載 Windows Server 2003 SP1 Platform SDK Web Install 的複本。也可以從 Microsoft 下載中心下載 .NET Framework 2.0 Software Development Kit (SDK) (x86) 的複本。

注意注意:

如果您使用 Microsoft Visual Studio Team System,就無須下載這些套件。

準備 Office 應用程式和主要 Interop 組件檢查

  1. 若要執行 Visual Studio 2005 命令提示,請依序按一下 [開始][程式集][Microsoft Visual Studio 2005],然後按一下 [Visual Studio 工具]

  2. 在命令提示中,將目錄切換到 {SamplesDir}\projects\Checks

    注意提示:

    根據預設,SamplesDir 目錄為 C:\Program Files\Microsoft Visual Studio 2005 Tools for Office Resources\VSTO2005 Windows Installer Sample。

  3. 根據使用的 Visual Studio 版本,輸入下列命令來編譯應用程式檢查器。

    如果使用 Visual Studio Team System,請使用此命令:

    cl.exe /Oxs /MT /GS AppCheck.cpp    

    如果使用 Visual Studio 2005 Tools for Office,請使用此命令:

    cl.exe -I "C:\Program Files\Microsoft Platform SDK\Include" /Oxs /MT /GS AppCheck.cpp    
  4. 根據使用的 Visual Studio 版本,輸入下列命令來編譯主要 Interop 組件檢查器。

    如果使用 Visual Studio Team System,請使用此命令:

    cl.exe /Oxs /MT /GS PIACheck.cpp advapi32.lib    

    如果使用 Visual Studio Tools for Office,請使用此命令:

    cl.exe -I "C:\Program Files\Microsoft Platform SDK\Include" /Oxs /MT /GS PIACheck.cpp
    "C:\Program Files\Microsoft Platform SDK\Lib\advapi32.lib" PRE>/DIV>
  5. 關閉命令提示。

  6. 使用 Windows 檔案總管,將執行檔 PIACheck.exe 複製到 {SamplesDir}\packages\Office2003PIA。

準備 Office 2003 主要 Interop 組件啟動載入器套件

您必須將 Office 2003 主要 Interop 組件加入到對應的啟動載入器套件中。

  1. 從 Microsoft 下載中心下載 Office 2003 Update:可轉散發主要 Interop 組件

  2. 執行主要 Interop 組件安裝程式。

  3. 接受 EULA,以便將主要 Interop 組件封裝成安裝程式的一部分。

  4. 在 Windows 檔案總管中,開啟 Office 2003 主要 Interop 組件的安裝程式解壓縮檔案的目標資料夾。

  5. 將 O2003PIA.msi 複製到目錄 {SamplesDir}\packages\Office2003PIA。

    注意注意:

    身為安裝程式撰寫者,您可以決定必要條件為何,並指定這些必要條件是從 Web 下載、隨附在 Windows Installer 中,或從預先決定的位置 (如網路檔案共用) 下載。主要 Interop 組件的可轉散發套件無法直接下載,一律須隨附在 Windows Installer 中提供。如果您將必要條件的安裝位置設為 Web,當建置安裝專案時,會看到必須加入此特定套件的警告,如下所示:

    警告:未提供「Microsoft Office 2003 主要 Interop 組件」的 'HomeSite' 屬性,因此套件將發行到與啟動載入器相同的位置。

準備 Visual Studio 2005 Tools for Office Runtime 啟動載入器套件

  1. 從 Microsoft 下載中心下載 Microsoft Visual Studio 2005 Tools for Office 2005 Runtime (VSTO 2005 RTM)

  2. 將 vstor.exe 複製到目錄 {SamplesDir}\packages\VSTORuntime。

準備 Visual Studio Tools for Office 語言套件啟動載入器套件

如果有任何使用者在非英文設定的 Windows 上執行方案,則需要有 Visual Studio 2005 Tools for Office 語言套件,才能以 Windows 的語言檢視執行階段訊息。

準備 Visual Studio 2005 Tools for Office 語言套件

  1. 從 Microsoft 下載中心下載 Microsoft Visual Studio 2005 Tools for the Microsoft Office System (VSTO2005) 語言套件

  2. 將檔案 vstolp20.exe 複製到目錄 {SamplesDir}\packages\VSTOLP。

如前所述,身為安裝程式撰寫者,您可以決定必要條件為何。您也可以決定這些必要條件是要從 Web 下載、隨附在 Windows Installer 提供,或從預先決定的位置 (如網路檔案共用) 下載 (圖 3)。Visual Studio 2005 Tools for Office Runtime 的啟動載入器套件預先設定支援從 Web 下載套件。由於 Visual Studio 2005 Tools for Office 語言套件在撰寫本文時尚未提供,因此您必須設定其啟動載入器支援從 Web 下載。您必須:

  • 編輯 product.xml 檔,將 HomeSitePublicKey 屬性加入到 PackageFile 項目中。

    您可以複製 Visual studio 2005 Tools for Office Runtime 啟動載入器所使用的 PublicKey

  • 編輯 package.xml 檔,指定 Visual Studio 2005 Tools for Office 語言套件執行檔的 Web 位置,也就是:

    http://go.microsoft.com/fwlink/?LinkId=56603

    如需範例,請查看 Visual Studio 2005 Tools for Office Runtime 啟動載入器的 product.xml 和 package.xml 檔案。

將套件複製到啟動載入器目錄

現在已經準備好必要條件,接下來就是複製到啟動載入器套件目錄。

將套件複製到啟動載入器

  1. 決定啟動載入器套件目錄的位置。

    在 Visual Studio 2005 Tools for Office 中,預設目錄如下:

    C:\Program Files\Microsoft.NET\SDK\v2.0\BootStrapper\Packages\

    在 Visual Studio Team System 中,預設目錄如下:

    C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages

    注意提示:

    如不確定,您可以將 \bootstrapper\packages 附加到下列登錄機碼來決定位置:\HKLM\SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0

  2. 將目錄 {SamplesDir}\packages 的內容複製到啟動載入器目錄。

將信任授與自訂組件

Visual Studio 2005 Tools for Office Runtime 要求自訂組件有 FullTrust 權限才能執行。此外,您也必須以適當權限等級信任應用程式部署之任何參考的組件或附屬組件。此外,如果將文件部署到使用者本機硬碟以外的位置,也必須授與文件 FullTrust 權限。如需詳細資訊,請參閱 Office 方案中的安全性

請注意用來信任方案的辨識項類型。光靠位置辨識項還不夠,最好能結合強式名稱、數位憑證,或同時與這兩者結合使用。

在 Visual Studio 安裝專案中,您可以藉由加入自訂動作來授與安全性。自訂動作是 Windows Installer 功能,可讓您在安裝結束時執行程式碼,以執行 Windows Installer 未提供的動作。您可以建立從 Installer 類別衍生的類別,然後視需要覆寫 InstallUninstallCommitRollback 方法,以此方式實作自訂動作。

本文隨附範例 Microsoft Visual C# 2005 自訂動作 (SetSecurity),同時使用所安裝組件的資料夾位置和強式名稱做為辨識項來授與信任。此自訂動作範例假設只有一個主要自訂組件,而您打算將整個方案部署到本機硬碟上。

這個自訂動作覆寫三個 Windows Installer 類別方法:InstallRollbackUninstall

  • 安裝時,此動作會設定安全性原則。在復原和解除安裝時,則會移除安全性原則變更。Install 方法所需的參數清單顯示在表 2。

  • UninstallRollback 方法只需要一個參數:程式碼群組的名稱 (solutionCodeGroupName)。一旦叫用,這兩個方法就會移除指定的程式碼群組。為避免移除同名的不同程式碼群組,請務必確定程式碼群組名稱是唯一的。

  • Commit 方法不需要參數,使用的是基底類別中提供的預設實作。

表 2. 安全性自訂動作的 Install 方法的參數
參數 描述

assemblyName

主要自訂組件的名稱,例如 ExcelApplication.dll。

targetDir

組件的安裝位置。使用 Windows Installer 在安裝時定義的安裝巨集 [TARGETDIR]\ 即可。

solutionCodeGroupName

這是 Visual Studio 2005 Tools for Office 應用程式的安全性程式碼群組名稱。這個名稱必須是唯一的。完善的名稱格式就如 CompanyName.SolutionName.GUID。

這個程式碼群組的權限在 Visual Studio 2005 Tools for Office 方案的安裝資料夾下為 Nothing。

solutionCodeGroupDescription

方案程式碼群組名稱的描述。

assemblyCodeGroupName

組件的程式碼群組名稱。這個程式碼群組會使用組件的強式名稱做為辨識項,獲得完全信任。

assemblyCodeGroupDescription

組件程式碼群組名稱的描述。

allUsers

這個參數會決定原則是建立在電腦層級 (值 = "1") 或使用者層級 (值 = "")。您可以使用 Windows Installer 在安裝時定義的 [ALLUSERS] 安裝巨集。

為了授與信任,自訂動作會建立兩個新的程式碼群組。第一個建立的程式碼群組為「方案程式碼」,使用安裝資料夾位置做為辨識項,並將權限設為 Nothing。「方案程式碼」群組的名稱必須是唯一的,因為如果使用者移除或復原方案,範例自訂動作就會移除該程式碼群組。為了確保唯一性,您可以結合公司名稱、方案名稱和 GUID 來命名。

第二個程式碼群組為「組件程式碼」,是「方案程式碼」群組的子系。自訂動作會使用組件的強式名稱做為辨識項,授與這個程式碼群組完全信任。這兩個程式碼群組都會實作,確保自訂組件同時以位置和強式名稱獲得信任。

您可以在使用者層級、電腦層級或企業層級授與安全性權限。這個自訂動作範例支援使用參數,讓您選擇在使用者或電腦層級變更原則。此參數不支援企業原則,因為這需要企業系統管理權限。在實務上,您可以將 [ALLUSERS] 安裝巨集傳遞到此參數。此值會決定安裝的方案只能供安裝方案的使用者使用,或可供所有使用者使用。

如果要安裝供所有使用者使用,請使用電腦原則,否則請使用使用者原則。不過請注意,在電腦層級設定安全性時,安裝方案的使用者必須擁有管理存取權,安裝必要條件時也需要該權限。當更新使用者層級原則時,「方案程式碼」群組會加入做為 All_Code 根程式碼群組的子系。當更新電腦層級原則時,「方案程式碼」群組則會加入做為 My_Computer_Zone 程式碼群組的子系。

自訂動作範例示範在方案部署到本機檔案資料夾的情況下,如何更新安全性原則。如需部署方案到共用位置的注意事項,請參閱 HOW TO:在共用位置中授與文件和活頁簿使用權限

此外,自訂動作也示範如何變更一個主要自訂組件的安全性原則。如果您的方案有其他參考的 DLL 或附屬 DLL,就必須以適當權限等級建立其他組件程式碼群組。

更新應用程式資訊清單中的自訂組件位置

Visual Studio 2005 Tools for Office Word 和 Excel 文件以及 Outlook 增益集會將自訂組件和選用部署資訊清單的位置儲存在應用程式資訊清單中。

Excel 和 Word 文件方案

Excel 和 Word Visual Studio 2005 Tools for Office 方案有內嵌應用程式資訊清單,會儲存文件的自訂組件位置以及選擇性地儲存部署資訊清單位置。當您將 Excel 或 Word 方案部署到使用者控制的安裝位置,可能需要編輯內嵌應用程式資訊清單來更新自訂組件的位置。如果還有選用的部署資訊清單和外部應用程式資訊清單,那麼也可能需要編輯這些資訊清單檔,指定最終的安裝位置。

本文假設您不部署選用部署資訊清單,因此只需要編輯內嵌應用程式資訊清單。您可以使用 Visual C# 或 Microsoft Visual Basic 2005 的 Visual Studio 2005 Tools for Office ServerDocument 物件,以程式設計方式編輯內嵌應用程式資訊清單。如需詳細資訊,請參閱 HOW TO:以程式設計方式更新應用程式資訊清單組件路徑

本文隨附 Visual C# 自訂動作範例,示範如何更新文件的自訂組件位置。如需詳細資訊,請參閱專案資料夾中的 UpdateManifest 專案。

自訂動作只會覆寫 Installer 類別的 Install 方法,因為移除或復原方案時會移除文件,所以編輯應用程式資訊清單是多此一舉。表 3 顯示自訂動作的 Install 方法的參數。

第二篇文章使用 Windows Installer 部署 Visual Studio 2005 Tools for Office 方案:逐步解說 (二之二) 詳細說明如何從安裝專案加入和呼叫此自訂動作。

表 3. UpdateManifest 自訂動作的參數
參數 描述

targetDir

組件的安裝位置。使用安裝巨集 [TARGETDIR]\ 即可。

documentName

部署的文件名稱,例如 ExcelApplication.doc。

assemblyName

組件的名稱,例如 ExcelApplication.dll。

當您建置 Excel 或 Word 方案 (例如按 F5) 時,建置程序會編輯活頁簿內嵌的應用程式資訊清單,以指向組件的相對位置。因此,如果您將建置程序的結果加入到安裝專案,就可能不需要修改內嵌應用程式資訊清單。

如果活頁簿或文件與組件在安裝後仍在相同的資料夾內,那麼就無須修改內嵌應用程式資訊清單。不過,如果要讓使用者在安裝後將活頁簿移至不同的資料夾,則必須編輯應用程式資訊清單以指向組件的完整路徑。這對 Excel 或 Word 範本專案來說尤其重要,因為從範本建立的活頁簿或文件所在的位置通常與範本不同。

Outlook 增益集

雖然應用程式資訊清單內嵌在 Excel 或 Word 文件中,但 Outlook 專案的應用程式資訊清單則安裝在磁碟上。要讓 Visual Studio 2005 Tools for Office Runtime 找到資訊清單的位置,就必須在登錄中指定位置。當您建立 Outlook 增益集安裝專案時,執行增益集所需的登錄項目會自動加入到安裝專案中。

將啟動條件加入到 Windows Installer 檔

除了按兩下 Setup.exe 安裝方案,使用者也可以選擇按兩下 .msi 檔安裝方案。在此模式下,啟動載入器不會執行,因此也不會偵測相依性和安裝必要的元件。

不過,您可以將啟動條件加入到 .msi 檔中,以防在沒有特定必要條件的情況下安裝。啟動條件可以是 Windows Installer 元件識別碼檢查或登錄值。如需詳細資訊,請參閱部署中的啟動條件管理。例如,您可以加入 Visual Studio 2005 Tools for Office Runtime 的元件識別碼檢查 (參閱下文),如果沒有安裝 Runtime 就會顯示訊息。由於許多產品都會共用元件,因此請盡量找出對該特定產品為唯一的元件識別碼。

圖 4. 搜尋 Visual Studio 2005 Tools for Office Runtime 的啟動條件
搜尋 Runtime 的啟動條件

如需 Visual Studio 2005 Tools for Office Runtime、Visual Studio 2005 Tools for Office 語言套件和 Office 主要 Interop 組件中可當做啟動條件使用的元件識別碼清單,請參閱<其他資源>。

本文不討論如何執行所需的 Office 應用程式啟動條件。每種語言版本都有唯一的產品代碼,因此搜尋任何支援的版本,就等於要搜尋所有產品代碼。搜尋單一元件並沒有用,因為元件屬於多個不同產品的一部分,而且 Visual Studio Tools for Office 不支援部分元件 (例如 Microsoft Office Standard Edition)。較簡單的方法就是建立自訂動作,檢查是否安裝了支援的 Office 版本。AppCheck.cpp 檔即包含這種檢查的範例程式碼。

接下來您必須使用資料庫資料表編輯器 (如 Orca) 手動編輯 Windows Installer 套件,將自訂動作加入到套件中。Orca 可讓您建立和編輯 Windows Installer 套件,並且能夠合併模組。這套編輯器提供驗證圖形介面,會反白顯示發生驗證錯誤或警告的項目。您可以從 Windows Server 2003 SP1 Platform SDK Web Install 取得 Orca。請務必記得,檢查主要 Interop 組件是否存在並不夠,因為 Microsoft Office Standard Edition 2003 和 Microsoft Office Professional Edition 2003 中的主要 Interop 組件有相同的元件代碼。

部署 Visual Studio 2005 Tools for Office 方案的已知問題

  • AppCheck.cpp 和 PIACheck.cpp 範例檔只能偵測 Office 2003。

    這些範例檔不支援更新版本的 Office。

  • 目前 Visual Studio 安裝程式不提供 .NET Framework 64 位元版本的啟動載入器支援。

    當您建置包含 .NET Framework 必要條件的安裝專案,會使用 32 位元版本。在 64 位元電腦上執行安裝套件會失敗,因為 32 位元版本無法在 Windows 中執行。為解決此問題,您必須先手動安裝 .NET Framework 的 64 位元版本,然後再執行安裝程式。.NET Framework 64 位元版本的啟動載入器支援預計在 2006 年初推出。

  • 啟動載入器套件範例不會檢查 Office Toolkit Loader (OtkLoader) 是否需要更新。

    Visual Studio 2005 Tools for Office 需要更新版的 OtkLoader。Office 和獨立產品都附有 OtkLoader。如果已經安裝 Office 或 Office 獨立產品,Visual Studio 2005 Tools for Office Runtime 在安裝期間會更新 OtkLoader。不過,由於您可能會先安裝 Visual Studio 2005 Tools for Office Runtime 再安裝 Office,因此就沒有所需的 OtkLoader 更新。

  • 安全性自訂動作範例不支援將信任授與安裝在檔案共用的方案。

    自訂動作範例示範在方案部署到本機檔案資料夾的情況下,如何更新安全性原則。如需部署方案到共用位置的注意事項,請參閱 HOW TO:在共用位置中授與文件和活頁簿使用權限

  • Office 主要 Interop 組件的可轉散發套件只能加入到安裝程式中。

    身為安裝程式撰寫者,您可以決定必要條件為何。您也可以決定這些必要條件是要從 Web 下載、隨附在 Windows Installer 中,或從預先設定的位置 (如網路檔案共用) 下載。

    若要取得主要 Interop 組件可轉散發套件,您必須下載安裝程式、接受 EULA,然後從安裝資料夾複製可轉散發套件。主要 Interop 組件的可轉散發套件無法直接下載,一律須隨附在安裝程式中提供。

    如果您將必要條件的安裝位置設為 Web,當建置安裝專案時,會提醒您必須加入主要 Interop 組件的可轉散發套件。

    WARNING: No 'HomeSite' attribute has been provided for 'Microsoft Office 2003 Primary Interop Assemblies',
        so the package will be published to the same location as the bootstrapper.
  • Visual Studio 2005 Tools for Office 語言套件只能加入到安裝程式中。

    如前所述,身為安裝程式撰寫者,您可以決定必要條件為何。您也可以決定這些必要條件是要從 Web 下載、隨附在 Windows Installer 提供,或從預先決定的位置 (如網路檔案共用) 下載 (圖 3)。Visual Studio 2005 Tools for Office Runtime 的啟動載入器套件預先設定支援從 Web 下載套件。由於 Visual Studio 2005 Tools for Office 語言套件在撰寫本文時尚未提供,因此您必須設定其啟動載入器支援從 Web 下載。您必須執行下列步驟:

    • 編輯 product.xml 檔,將 HomeSitePublicKey 屬性加入到 PackageFile 項目中。您可以複製 Visual Studio 2005 Tools for Office Runtime 啟動載入器所使用的 PublicKey

    • 編輯 package.xml 檔,指定 Visual Studio 2005 Tools for Office 語言套件執行檔的 Web 位置,也就是:

      http://go.microsoft.com/fwlink/?LinkId=56603

    如需範例,請查看 Visual Studio 2005 Tools for Office Runtime 啟動載入器的 product.xml 和 package.xml 檔案。

  • 安裝 AppCheck.cpp 和 PIACheck.cpp 原始程式檔時發生編譯錯誤。

注意注意:

如果使用 Visual Studio 2005 Tools for Office,您必須確定已經安裝 .NET Framework 2.0 軟體開發套件 (SDK) (x86)Windows Server 2003 SP1 Platform SDK Web Install。根據預設,Visual Studio 2005 Tools for Office 不會安裝 .NET Framework 2.0 SDK。您可以下載或從安裝媒體安裝,例如在 Visual Studio 2005 Tools for Office 中使用 [新增或移除程式] 命令。如果您使用 Visual Studio Team System,就無須下載這些套件。

產品代碼與元件識別碼

產品代碼是特定產品版本的唯一識別碼,以字串 GUID 表示,例如 "{12345678-1234-1234-1234-123456789012}"。不同版本和語言會有不同的識別碼。您可以使用產品代碼,檢查啟動載入器是否存在特定產品或套件。

一項產品是由許多元件組成,這些元件又可能會用於多項產品。元件識別碼的格式也是 GUID。由於 Windows Installer 檔啟動條件不支援使用產品代碼,因此您必須使用其他檢查方式,例如元件識別碼或登錄項目。不過,如果使用元件識別碼來檢查某項產品是否存在,請盡量找出對該特定產品為唯一的元件識別碼。

表 4. 用於啟動載入器套件的產品代碼和元件識別碼
套件 產品代碼 元件識別碼

Visual Studio 2005 Tools for Office Runtime

{388E4B09-3E71-4649-8921-F44A3A2954A7}

{D2AC2FF1-6F93-40D1-8C0F-0E135956A2DA}

Visual Studio 2005 Tools for Office 語言套件

{5DB161C0-7C9C-41D7-8DA1-CB112F60946B}

{2E3A394E-C9BD-40C3-9990-BA7AF7C8B4AF}

Office 2003 主要 Interop 組件

{91490409-6000-11D3-8CFE-0150048383C9}

使用下表所列特定主要 Interop 組件的元件識別碼。

Office 2003 主要 Interop 組件元件識別碼

下表列出 Office 2003 主要 Interop 組件的元件識別碼。無論主要 Interop 組件是隨 Microsoft Office 一起安裝,或由 Office 主要 Interop 組件的可轉散發套件安裝,這些值都保持不變。

如果您想將 product.xml 啟動載入器檔延伸用於 Office 主要 Interop 組件,以及 Windows Installer 檔中的啟動條件,就可以使用元件識別碼。

表 5. Office 2003 主要 Interop 組件的元件
主要 Interop 組件 元件識別碼

Word 2003

{1C8772BD-6E6F-4C9D-8FF8-B5EA072F86EF}

Outlook 2003

{14D3E42A-A318-4D77-9895-A7EE585EFC3B}

Excel 2003

{A1FE0698-609D-400F-BF10-F52238DD6475}

智慧標籤

{53C65973-D89D-4EA0-8567-8788C14E0A02}

Microsoft Graph

{A58B51D1-89BF-4D88-939D-B6D0DB2EEB53}

Microsoft Forms 2.0

{835AC3CE-E36B-4D65-B50F-2863A682ABEE}

自訂主要 Interop 組件啟動載入器

本節說明主要 Interop 組件的啟動載入器如何運作,以及如何自訂來搭配部署作業。

預設行為

在本文中,主要 Interop 組件可轉散發套件的啟動載入器設為如果找不到 Visual Studio Tools for Office 支援的下列應用程式版本,就無法安裝:

  • Excel 2003

  • Outlook 2003

  • Word 2003

此外,如果沒有安裝下列任一主要 Interop 組件,就會安裝主要 Interop 組件的可轉散發套件:

  • Excel 2003 主要 Interop 組件

  • Outlook 2003 主要 Interop 組件

  • Word 2003 主要 Interop 組件

  • 智慧標籤主要 Interop 組件

Product.xml

在主要 Interop 組件啟動載入器套件的範例 product.xml 檔中,有兩個地方值得注意。

第一個區段列舉了啟動載入器會執行的一組檢查。每項檢查的結果會儲存在屬性中,稍後再用來判斷是否安裝了啟動載入器套件。

根據預設,Excel、Word 和 Outlook 會分別以執行 AppCheck 範例檔的方式進行檢查。主要 Interop 組件則進行單一檢查,即執行 PIACheck 範例檔並將所需主要 Interop 組件的元件識別碼當做引數傳送。

Xml
<InstallChecks>
<_- External check for Microsoft Office Excel. -->
<ExternalCheck
Property="SupportedExcelVersionInstalled"
PackageFile="AppCheck.exe"
Arguments="/excel"/>
<-- External check for Microsoft Office Word. -->
<ExternalCheck
Property="SupportedWordVersionInstalled"
PackageFile="AppCheck.exe"
Arguments="/word"/>
<_- External check for Microsoft Office Outlook. -->
<ExternalCheck
Property="SupportedOutlookVersionInstalled"
PackageFile="AppCheck.exe"
Arguments="/outlook"/>
<_- External check for primary interop assemblies (PIAs).  -->
<ExternalCheck
Property="PIAsRegistered"
PackageFile="PIACheck.exe"
Arguments="{A1FE0698-609D-400F-BF10-F52238DD6475}
{1C8772BD-6E6F-4C9D-8FF8-B5EA072F86EF}
{14D3E42A-A318-4D77-9895-A7EE585EFC3B}
{53C65973-D89D-4EA0-8567-8788C14E0A02}"/>
</InstallChecks>

InstallConditions 項目是值得注意的第二個地方。一旦執行安裝檢查,就會評估數個安裝條件,判斷啟動載入器套件是否需要安裝。範例 product.xml 會檢查下列條件:

  • 如果使用者不是系統管理員,將無法安裝套件。如果套件無法安裝,也就無法執行安裝程式。

  • 如果未安裝 Excel、Outlook 和 Word,將無法安裝套件。

  • 如果檢查安裝檢查期間設定的 PIAsRegistered 屬性,發現已經安裝主要 Interop 組件,將會略過安裝。

  • 如果上述條件均不符合,就會安裝主要 Interop 組件的可轉散發套件。

各項條件的顯示字串會儲存在特定語言的 package.xml 檔中。

Xml
<InstallConditions>
<FailIf
Property="SupportedExcelVersionInstalled"
Compare="ValueNotEqualTo"
Value="0"
String="ExcelRequired"/>
<FailIf
Property="SupportedWordVersionInstalled"
Compare="ValueNotEqualTo"
Value="0"
String="WordRequired"/>
<FailIf
Property="SupportedOutlookVersionInstalled"
Compare="ValueNotEqualTo"
Value="0"
String="OutlookRequired"/>
<BypassIf
Property="PIAsRegistered"
Compare="ValueEqualTo"
Value="0"/>
<FailIf
Property="AdminUser"
Compare="ValueEqualTo"
Value="false"
String="AdminRequired"/>
</InstallConditions>

自訂檢查

若要自訂 Microsoft Office 應用程式和主要 Interop 組件的檢查,請執行下列步驟:

移除對特定 Office 應用程式 (如 Word) 的檢查

  1. 找到 InstallChecks 項目,然後移除適當的 ExternalCheck 子項目。

  2. 找到 InstallConditions 項目,然後移除適當的 FailIf 子項目。

變更所需的主要 Interop 組件

  1. 找出 InstallConditions 項目,然後再找出主要 Interop 組件的 InstallChecks 子項目。

  2. 編輯 Arguments 屬性,只傳遞所需主要 Interop 組件的元件識別碼。

    如需 Office 主要 Interop 組件的元件識別碼,請參閱表 5。

結論

本文概述了如何使用 Visual Studio 安裝專案建立 Windows Installer 套件,以部署 Visual Studio 2005 Tools for Office 方案。文中也提供範例,示範如何安裝必要條件 (.NET Framework 2.0、Visual Studio 2005 Tools for Office Runtime 和 Office 2003 主要 Interop 組件)、將信任授與自訂組件,以及更新文件的自訂組件位置。本文首先討論了一般部署方法,再說明使用 Windows Installer 部署 Visual Studio Tools for Office 方案的概要步驟。最後還列出部署期間可能會發生的已知問題。

如需 Windows Installer 部署的兩個逐步解說範例,請參閱使用 Windows Installer 部署 Visual Studio 2005 Tools for Office 方案:逐步解說 (二之二)

其他資源