使用 Windows Installer 部署 Office 方案

學習如何建立 Windows Installer 檔案 (.msi) 使用 Visual Studio 2012,您的 Office 2013 或 Office 2010 方案中。

使用建立 Windows Installer 檔案的 Visual Studio 2012 ,您可以部署需要在使用者電腦上的系統管理權限的 Office 2013 或 Office 2010 方案。例如,您可以使用這類檔案永久安裝電腦上只有方案使用者。使用 ClickOnce,您也可以將 Office 方案部署,不過,必須為電腦上的每個使用者分開安裝方案。

要顯示在 Windows Installer 部署和 ClickOnce 部署之間的差異的完整清單,請參閱 選擇部署策略

本主題內容

  • 下載範例

  • 取得 InstallShield Limited Edition

  • 決定如何將信任授與方案

  • 建立安裝專案

  • 加入專案輸出

  • 將部署和應用程式資訊清單

  • 配置是個相依元件為必要條件

  • 指定要在何處安裝在使用者電腦上的方案

  • Configure an add-in

  • 針對文件層級自訂

  • 建立安裝專案

使用 ClickOnce,如需如何部署 Office 方案的詳細資訊,請參閱 使用 ClickOnce 部署 Office 方案

使用 Visual Studio 2010,如需如何建立 Windows Installer 檔案的詳細資訊, 部署的 Office 方案的 Visual Studio 2010 Tools 使用 Windows Installer請參閱

下載範例

本主題將下列下載的範例。

範例

描述

ExcelAddIn

您可以在電腦上安裝執行 Office 32 位元或 64 位元版本的 Excel 增益集。

ExcelWorkbook

您可以在電腦上安裝執行 Office 32 位元或 64 位元版本的 Excel 文件層級自訂。

決定如何將信任授與方案

在方案在使用者電腦上執行,您必須授與信任在或下列方式,或使用者必須回應信任提示,以安裝方案時。

注意事項注意事項

在文件層級自訂,也必須信任文件的位置。如需詳細資訊,請參閱授與信任給文件

取得 InstallShield Limited Edition

使用 InstallShield Limited Edition (小島),您可以建立 Windows Installer 檔案,是可用的,如果您安裝 Visual Studio。小島取代專案範本的功能舊版 Visual Studio 所提供的安裝和部署的。

取得 InstallShield Limited Edition

  1. 在功能表列上,選擇 [檔案]、[新增]、[專案]。

    [新增專案] 對話方塊隨即開啟。

  2. 在範本窗格中,展開 [其他的專案類型],然後選取 [安裝和部署] 範本。

  3. 在 [安裝和部署] 中的專案類型清單中,選取 [啟用 InstallShield Limited Edition],然後選擇 [OK] 按鈕。

    提供的資訊是有關如何取得 InstallShield Limited Edition 的頁面。

  4. 在該頁面中,選擇 [移至下載網站] 連結。

  5. 在 InstallShield Limited Edition for 下載頁面上,輸入必要的資訊至適當的欄位,然後選擇 [立即下載] 連結。

    在您下載,安裝,並啟動產品之後, [ [InstallShield Limited Edition 專案] 範本會顯示於 Visual Studio。

建立安裝專案

  1. 在 Visual Studio中,開啟您要部署的 Office 專案。

    與這個主題包含專案命名為 ExcelAddIn 的應用程式層級增益集範例。文件層級自訂範例包含名為 ExcelWorkbook 的專案。您可以使用這兩個名稱之一,本主題會參考在方案中建立 Office 專案。

  2. 在功能表列上選擇 [檔案]、[加入]、[新的專案]。

    [加入新的專案] 對話方塊隨即開啟。

  3. 在範本窗格中,展開 [其他的專案類型],然後選取 [安裝和部署] 範本。

  4. 在 [安裝和部署] 中的專案類型清單中,選取 [InstallShield Limited Edition 專案],將專案,然後選擇 [OK] 按鈕。

    您建立的 InstallShield 安裝專案會出現在您的方案。

    這個主題的範例包含名為 [OfficeAddInSetup] 的安裝專案。使用相同名稱,這個主題會參考在方案中的安裝專案。

加入專案輸出

您設定 [OfficeAddInSetup] 專案包含您的 Office 專案輸出。如需應用程式層級增益集專案時,專案輸出只是方案組件。在文件層級自訂專案時,專案輸出不只包含方案組件,而且文件。

加入專案輸出

  1. 在 [方案總管] 中,展開 [OfficeAddInSetup] 專案節點,然後選取 [專案助理] 檔案,如下圖所示。

    [方案總管] 中的專案助理檔案

  2. 在功能表列上,選擇 [檢視]],則 [開啟]。

  3. 在 [專案助理] 頁面底部,請選擇 [應用程式檔案] 按鈕,如下圖所示。

    [應用程式檔案] 按鈕。

  4. 在 [應用程式檔案] 頁面上,選擇 [加入專案輸出] 按鈕。

  5. 在 [Visual Studio 輸出選取器] 對話方塊中,選取 [主要輸出] 核取方塊,然後選擇 [OK] 按鈕。

將部署和應用程式資訊清單

  1. 在 [應用程式檔案] 頁面上,選擇 [加入檔案] 按鈕。

  2. 在 [開啟] 對話方塊中,瀏覽至 ExcelAddIn 專案的輸出目錄。

    通常,輸出目錄為專案根目錄的 bin \ release 子資料夾,根據您選取的組建組態。

  3. 在輸出目錄中,選取 ExcelAddIn.vstoExcelAddIn.dll.manifest 檔案,然後選擇 [開啟] 按鈕。

    如下圖所示, [應用程式檔案] 頁面現在包含專案輸出檔、部署資訊清單和應用程式資訊清單。

    您安裝專案的輸出檔案名稱。

配置是個相依元件為必要條件

在安裝應用程式,您必須不只包含下列元件,而且對方案所需的其他元件。

  • .NET Framework 的版本。您的 Office 方案目標。

  • 為 Office 執行階段的 Microsoft Visual Studio 2010 工具。

Cc442767.collapse_all(zh-tw,VS.110).gif將 .NET Framework 4 或 .NET Framework 4.5 做為必要條件

  1. 在 [方案總管] 中,展開 [OfficeAddInSetup] 專案節點,然後展開 [指定應用程式資料] 節點,然後選取 [Redistributables] 檔案,如下圖所示。

    [方案總管] 中的可轉散發檔案

  2. 在功能表列上,選擇 [檢視]],則 [開啟]。

    [Redistributables] 頁面隨即開啟。

  3. 在可轉散發元件清單中,選取適當的 .NET Framework 版本的核取方塊該方案的目標。

    例如,在中,如果您的方案以 .NET Framework 4.5為目標,請選取 [Microsoft.NET Framework 4.5 全] 核取方塊。對話方塊可能會詢問您是否要安裝可轉散發元件, InstallShield 需要,才能將元件設定為必要條件之前。如果這個對話方塊不會出現,元件在電腦上已經存在。

  4. 如果這個對話方塊出現時,請選擇 [] 按鈕下載可轉散發元件。

    注意事項注意事項

    錯誤訊息中指定下載失敗。您通常可以忽略此錯誤。若要確認您是否已成功下載檔案,請瀏覽至電腦的下列目錄:

    在 32 位元作業系統上: %ProgramFiles%\InstallShield\2012SpringLE\SetupPrerequisites\Microsoft。Web \版本\FullOrClient\

    64位元作業系統上: %ProgramFiles(x86)%\InstallShield\2012SpringLE\SetupPrerequisites\Microsoft。Web \版本\FullOrClient\

    如果檔案不在這些目錄,您可以在適當的目錄必須下載檔案中。

    若要下載 .NET Framework 4,請參閱 https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe

    若要下載 .NET Framework 4 用戶端,請參閱 https://download.microsoft.com/download/5/6/2/562A10F9-C9F4-4313-A044-9C94E0A8FAC8/dotNetFx40_Client_x86_x64.exe

    若要下載 .NET Framework 4.5,請參閱 https://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/

    注意事項注意事項

    若要尋找 [Redistributables] 頁列出所有必要條件的 URL,請開啟\ %ProgramFiles%\ InstallShield 2012SpringLE \ SetupPrerequisites \目錄中適當的 .prq 檔案在您的電腦。在每 .prq 檔案中, URL 會出現在 <file> 項目的 URL 屬性。

Cc442767.collapse_all(zh-tw,VS.110).gif將 Visual Studio 2010 Tools for Office Runtime

[Redistributables] 頁面包含名為 [Microsoft VSTO 2010 執行階段] 的項目,不過,它會參考執行階段的較舊的版本。因此,您必須手動建立參考最新版本的組態檔。您必須先將該檔案複製至目錄並出現在 [Redistributables] 頁面上的所有的組態檔中的其他項目。

將 Visual Studio 2010 Tools for Office Runtime 為必要條件。

  1. 開啟記事本,然後貼上下列至文字檔。

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    <conditions>
        <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTO Runtime Setup\v4R" FileName="Version" ReturnValue="10.0.40303" Bits="2"></condition>
    </conditions>
    <files>
        <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\VSTOR\vstor_redist.exe" URL="https://go.microsoft.com/fwlink/?LinkId=140384" CheckSum="b6639489e159b854b6dc43d5cb539043" FileSize="0,40023024"></file>
    </files>
    <execute file="vstor_redist.exe" returncodetoreboot="1641,3010" requiresmsiengine="1">
    </execute>
    <properties Id="Your GUID goes here" Description="This prerequisite installs the most recent version of the Microsoft Visual Studio 2010 Tools for Office Runtime." >
    </properties>
    
    </SetupPrereq>
    
  2. 產生 GUID 使用 [GUID 產生器] 程式在您的電腦。

    若要找出 [GUID 產生器] 程式您的電腦,請開啟這個 [啟動] 功能表和型別在搜尋方塊中輸入 GUID 產生器 。

  3. 在 [GUID 產生器] 程式,請選擇 [登錄格式] 選項按鈕,選取 [複製] 按鈕,然後選擇 [匯出] 按鈕。

  4. 在記事本中,透過貼上 GUID 取代文字 Your GUID goes here 在其位置。

    您的檔案中 <properties> 項目如下。

    <properties Id="{87989B73-21DC-4403-8FD1-0C68A41A6D8C}" Description="This prerequisite installs the most recent version of the Microsoft Visual Studio 2010 Tools for Office Runtime." >
    </properties>
    
  5. 在記事本中功能表列上,選擇 [檔案]],則 [儲存]。

  6. 在 [儲存] 對話方塊中,瀏覽至 [桌面] 資料夾。

  7. 在 [儲存為型別] 清單中,選取 [所有檔案 (*.*)]。

  8. 在 [檔案名稱] 方塊中,輸入 為 Office Runtime.prq 的 Visual Studio 2010 Tools,然後選擇 [儲存] 按鈕。

    注意事項注意事項

    務必將 .prq 檔案名稱結尾識別這個檔案當做必要條件檔案。

  9. 關閉記事本。

  10. 從 [桌面] 資料夾,複製為 Office Runtime.prq 檔案的 Visual Studio 2010 Tools 到在電腦上安裝下列其中一個目錄。

    32 位元作業系統上: %ProgramFiles%\InstallShield\2012SpringLE\SetupPrerequisites\

    64 位元作業系統上: %ProgramFiles(x86)%\InstallShield\2012SpringLE\SetupPrerequisites\

  11. 在 InstallShield 專案的 [可轉散發套件] 頁面上,選擇 [重新整理] 按鈕以重新整理可轉散發元件清單,,如下圖所示。

    重新整理按鈕。

  12. 在可轉散發元件的清單,請選取 [Visual Studio 2010 Tools for Office Runtime] 核取方塊。

    對話方塊可能會詢問您是否要安裝可轉散發元件。如果這個對話方塊不會出現,可以跳至本主題的 指定要在何處安裝在使用者電腦上的方案 一節。

  13. 如果這個對話方塊出現時,請選擇 [] 按鈕下載可轉散發元件。

  14. 注意事項注意事項

    錯誤訊息中指定下載失敗。您可以忽略此錯誤。若要確認您是否已成功下載檔案,請瀏覽至電腦的下列目錄:

    32 位元作業系統上: %ProgramFiles%\InstallShield\2012SpringLE\SetupPrerequisites\ VSTOR\

    64 位元作業系統上: %ProgramFiles(x86)%\InstallShield\2012SpringLE\SetupPrerequisites\ VSTOR\

    重要事項重要事項

    InstallShield 可能已下載執行階段的較舊的版本。若要確定您擁有最新的版本,請下載 Visual Studio 2010 Tools for Office Runtime 的較新版本 Microsoft 下載中心中,然後將它放在適當的目錄。

指定要在何處安裝在使用者電腦上的方案

  1. 在 [方案總管] 中,展開 [OfficeAddInSetup] 節點,然後展開 [組織您的設定] 節點,然後選取 [一般資訊] 檔案。

  2. 在功能表列上,選擇 [檢視]],則 [開啟]。

  3. 在屬性清單中,按一下 [INSTALLDIR] 屬性旁邊的 [瀏覽] 按鈕。

  4. 在 [設定 INSTALLDIR] 對話方塊中,選取您要安裝方案的使用者的電腦上的資料夾。

    注意事項注意事項

    您可以開啟任何資料夾的捷徑功能表也會在 [設定 INSTALLDIR] 對話方塊的檔案清單中。

設定應用程式層級增益集

這個部分套用時,才 you'redeploying 應用程式層級增益集。如果您部署文件層級自訂,您可以立即移至 針對文件層級自訂 一節。

您必須建立登錄機碼以啟用 Office 應用程式探索和載入增益集。登錄機碼的位置取決於 Office 應用程式。如需詳細資訊,請參閱應用程式層級增益集的登錄項目

設定登錄

  1. 在 [方案總管] 中,展開 [OfficeAddInSetup] 專案節點,然後展開 [組織您的設定] 節點,然後選取 [一般資訊] 檔案。

  2. 在功能表列上,選擇 [檢視]],則 [開啟]。

    設定專案的屬性隨即出現。

  3. 在 [AllUSERS] 屬性的清單中,指定您要將此方案安裝為電腦的所有使用者要安裝方案的使用者。

    若要安裝所有使用者的方案,請選擇 [ALLUSERS=1 (每部電腦上安裝)]。

  4. 在 [方案總管] 中,選取 [專案助理] 節點。

    在功能表列上,選擇 [檢視]],則 [開啟]。

  5. 在 [專案助理] 頁面底部,請選擇 [應用程式註冊] 按鈕,如下圖所示。

    [應用程式登錄] 按鈕。

    [應用程式註冊] 頁面隨即出現。

  6. 在 [您要將應用程式安裝的登錄資料?] 下,選擇 [] 選項按鈕。

  7. 在 [目的電腦的登錄檢視] 清單中,選取 [HKEY_USER_SELECTABLE]。

    [HKEY_USER_SELECTABLE] 資料夾中根據適當的登錄區安裝您針對 [ALLUSERS] 屬性選取之前在這個程序。如果您對 [ALLUSERS=1 (每部電腦上安裝)] 的屬性,您的方案在 HKEY_LOCAL_MACHINE 登錄區安裝的集合。

  8. 開啟 [HKEY_USER_SELECTABLE] 資料夾的捷徑功能表,選擇 [新增]],然後選取 [索引鍵]。

    名為 [加入按鍵 #1] 的資料夾出現在 [HKEY_USER_SELECTABLE] 資料夾下。

  9. 將新資料夾 [軟體]。

  10. 開啟 [軟體] 資料夾的捷徑功能表,選擇 [新增]],然後選取 [索引鍵]。

    名為 [加入按鍵 #1] 的資料夾出現在 [軟體] 資料夾下。

  11. 將新的 [Microsoft] 資料夾重新命名,然後繼續建立子資料夾,直到它們代表整個金鑰階層架構。

    整個金鑰階層架構是 HKEY_USER_SELECTABLE\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn。

    如果您建立 Office 64 位元版本的安裝程式,整個階層架構也是 HKEY_USER_SELECTABLE\Software\Wow6432Node\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn。

    當您完成本練習時,下圖顯示索引鍵階層架構。

    登錄的機碼階層架構。

    注意事項注意事項

    基於最佳做法,請啟動您的使用您的公司名稱的增益集名稱。這個慣例將機會索引鍵是唯一並且減少衝突的機會與增益集的另一個提供者。具有相同名稱的增益集,例如,可以覆寫彼此的登錄機碼。這個方法不保證索引鍵是唯一的,但是可以減少潛在的名稱衝突。

  12. 開啟 [SampleCompany.ExcelAddIn] 鍵的捷徑功能表,選擇 [新增]],然後選取 [字串值]。

    新的字串值會出現在 [目的電腦的登錄資料] 清單中。字串值的名稱會反白顯示,讓您可以重新命名。

  13. 將值重新命名為描述。

  14. 重複這個程序會建立下列值。

    實值型別

    名稱

    字串值

    FriendlyName

    DWORD 值。

    LoadBehavior

    字串值

    資訊清單

  15. 開啟 [描述] 值的捷徑功能表,然後選擇 [修改]。

    [編輯資料] 對話方塊隨即出現。

  16. 在 [數值資料] 文字方塊中,輸入 Excel 示範增益集,然後選擇 [OK] 按鈕。

    這個描述會顯示在使用者開啟 Office 應用程式,開啟 [選項] 對話方塊,然後,在 [增益集] 窗格中,選取增益集。

  17. 開啟 [FriendlyName] 值的捷徑功能表,然後選擇 [修改]。

    [編輯資料] 對話方塊隨即出現。

  18. 在 [數值資料] 文字方塊中,輸入 Excel 示範增益集,然後選擇 [OK] 按鈕。

    這個字串出現在 Office 應用程式的 [COM 增益集] 對話方塊。根據預設,字串的值是增益集 ID.

  19. 開啟 [LoadBehavior] 值的捷徑功能表,然後選擇 [修改]。

    [編輯資料] 對話方塊隨即出現。

  20. 在 [數值資料。] 文字方塊中,輸入 3,然後選擇 [OK] 按鈕。

    3 載入的值增益集,在應用程式啟動。如需 LoadBehavior 值的詳細資訊,請參閱 應用程式層級增益集的登錄項目

  21. 開啟 [資訊清單] 值的捷徑功能表,然後選擇 [修改]。

    [編輯資料] 對話方塊隨即出現。

  22. 在 [數值資料。] 文字方塊中,輸入 file:/// [INSTALLDIR] ExcelAddIn.vsto|vstolocal,然後選擇 [OK] 按鈕。

    Visual Studio 2010 Tools for Office Runtime 使用這個路徑尋找部署資訊清單。這個路徑的 [INSTALLDIR] 部分是 INSTALLDIR 屬性的對應到 InstallShield 設定 [一般資訊] 屬性頁的專案巨集。這個屬性指定在目標電腦上位置安裝增益集。|vstolocal 尾碼可確保您的方案從安裝資料夾載入,而不是 ClickOnce 快取。

    下圖顯示的值的外觀,在完成本練習之後。

    增益集安裝專案的登錄值

重要事項重要事項

如果您要建立增益集的自訂表單區域在 Outlook 中,您必須建立多個登錄項目向 Outlook 的區域。如需詳細資訊,請參閱Outlook 表單區域的登錄項目

針對文件層級自訂

為,當您部署文件層級自訂,本節套用。如果您部署應用程式層級增益集,您可以立即移至 建立安裝專案 一節。

文件層級自訂不使用登錄機碼。相反地,自訂文件屬性包含部署資訊清單的位置。

若要修改自訂屬性,您會從文件中移除文件層級自訂的程式,修改適當的屬性,然後重新附加自訂的文件。接著建立執行程式的自訂動作,因此,您加入,動作加入至安裝專案。

建立修改文件屬性的程式

  1. 在功能表列上選擇 [檔案]、[加入]、[新的專案]。

    [加入新的專案] 對話方塊隨即出現。

  2. 在範本窗格中,選取您要使用之語言的節點下,選取 [視窗] 資料夾。

  3. 在 [視窗] 中的專案類型清單中,選取 [主控台應用程式] 範本。

  4. 將專案 SetExcelDocumentProperties,然後選擇 [OK] 按鈕。

  5. 在 [方案總管] 中,選取 [顯示所有檔案] 按鈕,開啟 [SetExcelDocumentProperties] 節點的捷徑功能表,然後選擇 [加入參考]。

  6. 在 [參考管理員] 對話方塊中,選取 [擴充功能] 索引標籤上,選取下列組件旁邊的核取方塊,然後選擇 [OK] 按鈕。

    • Microsoft.VisualStudio.Tools.Applications.Runtime

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument

  7. 在 [方案總管] 中,選取 [Program.cs] 檔 (C# 應用程式) 或 [Module1.vb] 檔 (Visual Basic 應用程式)。

  8. 在功能表列上,選擇 [檢視]],則 [開啟]。

  9. 以下列程式碼取代整個檔案的內容。

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    Imports Microsoft.VisualStudio.Tools.Applications
    
    Module Module1
    
        Sub Main()
    
            Dim assemblyLocation As String = ""
            Dim solutionID As Guid
            Dim deploymentManifestLocation As Uri = Nothing
            Dim documentLocation As String = ""
            Dim nonpublicCachedDataMembers As String() = Nothing
    
            Dim CommandLineArgs As  _
                System.Collections.ObjectModel.ReadOnlyCollection(Of String) = _
                My.Application.CommandLineArgs
    
            For i As Integer = 0 To CommandLineArgs.Count - 1
    
                Console.WriteLine(CommandLineArgs(i))
                Dim oArugment As String() = CommandLineArgs(i).Split("=")
    
                Select Case oArugment(0)
    
                    Case "/assemblyLocation"
                        assemblyLocation = oArugment(1)
    
                    Case "/deploymentManifestLocation"
                        If Not Uri.TryCreate(oArugment(1), UriKind.Absolute, _
                                             deploymentManifestLocation) Then
                            MsgBox("Error creating URI")
                        End If
    
                    Case "/documentLocation"
                        documentLocation = oArugment(1)
    
                    Case "/solutionID"
                        solutionID = Guid.Parse(oArugment(1))
                End Select
            Next
            Try
                ServerDocument.RemoveCustomization(documentLocation)
                ServerDocument.AddCustomization(documentLocation, assemblyLocation, _
                                                solutionID, deploymentManifestLocation, _
                                                True, nonpublicCachedDataMembers)
    
                Console.WriteLine("Insallation Location Modified Successfully")
    
            Catch ex As System.IO.FileNotFoundException
                Console.WriteLine("The specified document does not exist.")
                Console.ReadLine()
    
    
            Catch ex As System.IO.IOException
                Console.WriteLine("The specified document is read-only.")
                Console.ReadLine()
    
    
            Catch ex As InvalidOperationException
    
                Console.WriteLine("The customization could not be removed.\n" &
                    ex.Message)
                Console.ReadLine()
    
    
            Catch ex As DocumentNotCustomizedException
                Console.WriteLine("The document could not be customized.\n" &
                    ex.Message)
                Console.ReadLine()
    
            End Try
        End Sub
    
    End Module
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using Microsoft.VisualStudio.Tools.Applications;
    
    namespace SetExcelDocumentProperties
    {
        class Program
        {
            static void Main(string[] args)
            {
                string assemblyLocation = "";
                Guid solutionID = new Guid();
                Uri deploymentManifestLocation = null;
                string documentLocation = "";
                string[] nonpublicCachedDataMembers = null;
    
                for (int i = 0; i <= args.Count() - 1; i++)
                {
                    Console.WriteLine(args[i]);
                    string[] oArugment = args[i].Split('=');
    
                    switch (oArugment[0])
                    {
                        case "/assemblyLocation":
                            assemblyLocation = oArugment[1];
                            break;
                        case "/deploymentManifestLocation":
                            if (!Uri.TryCreate(oArugment[1], UriKind.Absolute, out deploymentManifestLocation))
                            {
                                Console.WriteLine("Error creating URI");
                            }
                            break;
                        case "/documentLocation":
                            documentLocation = oArugment[1];
                            break;
                        case "/solutionID":
                            solutionID = Guid.Parse(oArugment[1]);
                            break;
                    }
                }
                try
                {
                    ServerDocument.RemoveCustomization(documentLocation);
                    ServerDocument.AddCustomization(documentLocation, assemblyLocation,
                                                solutionID, deploymentManifestLocation,
                                                true, out nonpublicCachedDataMembers);
    
                }
                catch (System.IO.FileNotFoundException)
                {
                    Console.WriteLine("The specified document does not exist.");
                }
                catch (System.IO.IOException)
                {
                    Console.WriteLine("The specified document is read-only.");
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("The customization could not be removed.\n" +
                        ex.Message);
                }
                catch (DocumentNotCustomizedException ex)
                {
                    Console.WriteLine("The document could not be customized.\n" +
                        ex.Message);
                }
            }
        }
    }
    
  10. 編譯專案。

將執行程式的自訂動作

  1. 在 [方案總管] 中,展開 [OfficeAddInSetup] 專案節點,然後選取 [專案助理] 檔案,如下圖所示。

    [方案總管] 中的專案助理檔案

  2. 在功能表列上,選擇 [檢視]],則 [開啟]。

  3. 在 [專案助理] 頁面底部,請選擇 [應用程式檔案] 按鈕,如下圖所示。

    [應用程式檔案] 按鈕。

  4. 在 [應用程式檔案] 頁面上,選擇 [加入專案輸出] 按鈕。

    [Visual Studio 輸出選取器] 對話方塊隨即出現。

  5. 在 [SetExcelDocumentProperties] 節點下,選取 [主要輸出] 核取方塊,然後選擇 [OK] 按鈕。

  6. 在 [方案總管] 中,選取 [OfficeAddInSetup] 節點下,展開 [定義需求和動作。] 節點,然後選取 [自訂動作] 資料夾。

  7. 在功能表列上,選擇 [檢視]],則 [開啟]。

    事件清單隨即出現在窗格與螢幕的側邊。

    注意事項注意事項

    出現在此清單中的某些事件只適用於 InstallShield Limited Edition。使用 [在設定成功完成之後呼叫。] 事件,在這個程序中,您將執行程式。

  8. 在事件清單,請在 [自訂動作在安裝時] 中,開啟 [在設定完成成功呼叫之後] 的捷徑功能表,然後選擇 [新增 EXE]。

    名為 [NewCustomAction1] 的自訂動作出現在 [在設定完成成功呼叫之後] 事件。一組自訂動作的屬性出現在窗格在事件旁邊。

    重要事項重要事項

    兩個 [在設定完成成功呼叫之後] 事件發生於事件清單。請確定您選取會出現在 [自訂動作在安裝時] 節點下 [在設定完成成功呼叫之後] 事件的執行個體。

  9. 在 [來源位置] 屬性的清單中,選取 [安裝與產品]。

  10. 在 [檔案名稱] 屬性旁邊的 [瀏覽] 按鈕。

  11. 在 [為目的檔案瀏覽] 對話方塊中,瀏覽至 [SetExcelDocumentProperties.Primary.output] 檔案,然後選擇 [開啟] 按鈕。

    這個檔案的位置取決於您的安裝專案的 [INSTALLDIR] 屬性指定的資料夾。例如,在中,如果您對資料夾的屬性名稱是 [[PersonalFolder]DemoWorkbookApp],您可以瀏覽找到 [SetExcelDocumentProperties.Primary.output] 檔案加入至 [ProgramFiles 資料夾\DemoWorkbookApp] 的集合。

    在下一個步驟中,您會取得文件的方案 ID 傳遞該 ID 做為參數傳遞至主控台應用程式。您也可以將文件、部署資訊清單和文件組合的位置。

  12. 開啟應用程式的捷徑功能表的 [ExcelWorkbook] 專案,根據您的作業系統選擇 [開啟 Windows 檔案總管的資料夾] 或 [開啟檔案總管的資料夾] 。

    包含方案的資料夾開啟。

  13. 開啟您在記事本的方案專案檔。針對 Visual Basic 專案,檔案名稱是 ExcelWorkbook.vbproj。對 C# 專案來說,檔案名稱是 ExcelWorkbook.csproj。

  14. 在專案檔中,搜尋 <SolutionID> 項目,將其值複製到剪貼簿],然後關閉記事本。

    您將這個值到主控台應用程式做為參數。

  15. 在 [NewCustomAction1] 屬性頁上,將 [命令列] 屬性設定為下列一行文字。

    /assemblyLocation="[INSTALLDIR]ExcelWorkbook.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbook.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbook.xlsx" /solutionID="Your Solution ID"
    
  16. 將複製到剪貼簿的方案 ID 取代 Your Solution ID 。

    重要事項重要事項

    測試您的安裝程式來執行自訂動作執行的主控台應用程式可以存取在 [INSTALLDIR] 目錄的檔案。在使用者電腦上的某些目錄可能需要系統管理權限 (例如, Program Files 目錄)。如果您將方案部署至需要系統管理權限的目錄,您應該開啟 setup.exe 檔案的 [屬性] 對話方塊中,選取 [相容性] 索引標籤,然後選取 [執行這個程式以系統管理員身分執行。] 核取方塊,在散發安裝程式。如果您不希望使用者是以系統管理權限執行安裝程式,將 [INSTALLDIR] 屬性對使用者可能已經存取的目錄,例如 [文件] 目錄。如需詳細資訊,請參閱本主題的<指定要在何處安裝在使用者電腦上的方案>一節。

建立安裝專案

  1. 在 [方案總管] 中,展開 [指定發行準備] 節點,然後選取 [版本] 檔案。

  2. 在功能表列上,選擇 [檢視]],則 [開啟]。

    [組建] 總管放在窗格會開啟,讓您選取要建立版本的型別。

  3. 在 [組建] 總管中,選取 [SingleImage] 資料夾。

  4. 在 [組建] 總管旁邊的窗格中,選取 [Setup.exe] 選項。

  5. 在 [Setup.exe] 屬性頁上,從 [InstallShield 必要條件的位置] 清單中,選取 [從 Setup.exe 的擷取]。

  6. 在功能表列上,選擇 [組建]],則 [組態管理員]。

  7. 在 [使用中方案組態] 清單中,選取 [SingleImage]。

  8. 在 [專案內容] 資料表中,在 [OfficeAddInSetup] 專案的 [組態] 資料行中,選取 [SingleImage],然後選擇 [關閉] 按鈕。

  9. 在功能表列上,選擇 [組建]],則 [組建 OfficeAddInSetup]。

    在建置完成之後,您可以在下列位置找到 [OfficeAddInSetup] 專案的 setup.exe 檔案: OfficeAddInSetupProjectRoot\OfficeAddInSetup\Express\SingleImage\DiskImages\DISK1\

請參閱

參考

應用程式層級增益集的登錄項目

概念

自訂文件屬性概觀

授與信任給 Office 方案

授與信任給文件

其他資源

Office 方案的部署必要條件

部署 Office 方案

部署的 Office 方案的 Visual Studio 2010 Tools 使用 Windows Installer