使用 ClickOnce 部署 Office 方案

使用 ClickOnce 只需要幾個步驟就能部署 Office 方案。 如果您發行更新,方案會自動偵測並安裝更新。 不過,ClickOnce 要求您針對電腦上的每個使用者分別安裝方案。 因此,如果多個使用者將在同一台電腦上執行方案,則應該考慮使用 Windows Installer (.msi)。

本主題內容

發佈方案

您可以使用 [發佈精靈] 或 [專案設計工具] 來發佈方案。 在此程序中,您將使用 [專案設計工具],因為它提供一組完整的發佈選項。 請參閱發行精靈 (Visual Studio 中的 Office 程式開發)

若要發行方案

  1. 在 [方案總管] 中,選擇為專案命名的節點。

  2. 在功能表列上,選擇 [專案]、[專案名稱] [屬性]。

  3. 在 [專案設計工具] 中,選擇 [發佈] 索引標籤,如下圖所示。

    The publish tab of the Project Designer

  4. 在 [發佈資料夾位置 (ftp 伺服器或檔案路徑)] 方塊中,輸入您希望 [專案設計工具] 複製方案檔案的資料夾路徑。

    您可以輸入下列任何類型的路徑。

    • 本機路徑 (例如,C:\FolderName\FolderName)。

    • 網路上資料夾的統一命名約定 (UNC) 路徑 (例如,\\ServerName\FolderName)。

    • 相對路徑 (例如,PublishFolder\,這是發佈專案的預設資料夾)。

  5. 在 [安裝資料夾 URL] 方塊中,輸入終端使用者找到方案之位置的完整路徑。

    如果您還不知道位置,請勿在此欄位中輸入任何內容。 根據預設,ClickOnce 會在您的使用者安裝方案的資料夾中尋找更新。

  6. 選擇 [ 必要條件 ] 按鈕。

  7. 在 [ 必要條件 ] 對話方塊中,確定已選取 [ 建立安裝程式以安裝必要條件元件 ] 核取方塊。

  8. 在 [選擇要安裝的必要條件] 清單中,勾選Windows Installer 4.5 和適當的 .NET Framework 套件的核取方塊。

    例如,如果方案以 NET Framework 4.5 為目標,請勾選 [Windows Installer 4.5] 和 [Microsoft .NET Framework 4.5 Full] 核取方塊。

  9. 如果您的方案以 .NET Framework 4.5 為目標,請同時勾選 [Visual Studio 2010 Tools for Office Runtime] 核取方塊。

    注意

    預設情況下,不會出現此核取方塊。 若要顯示這個核取方塊,您必須建立啟動載入器套件。 請參閱使用 Visual Studio 2012 建立 Office 2013 VSTO 增益集的啟動載入器套件

  10. 在 [指定必要條件的安裝位置] 下,選擇其中一個選項,然後選擇 [確定] 按鈕。

    下表會說明每個選項。

    選項 描述
    從元件廠商的網站下載必要條件 系統會提示使用者下載並安裝廠商提供的這些必要條件。
    從應用程式的相同位置下載必要條件 必要軟體會隨方案安裝。 如果您選擇這個選項,Visual Studio 會自動將所有必要條件套件複製到發行位置。 必要條件套件必須放在開發電腦上,這個選項才能正常運作。
    從下列位置下載必要條件 Visual Studio 會將所有必要條件套件複製到您指定的位置,並且隨方案安裝這些套件。

    請參閱必要條件對話方塊

  11. 選擇 [更新] 按鈕,指定您希望每個終端使用者的 VSTO 增益集或自訂檢查更新的頻率,然後選擇 [確定] 按鈕。

    注意

    如果使用 CD 或抽取式磁碟機進行部署,請選擇 [從不檢查更新] 選項按鈕。

    如需如何發佈更新的資訊,請參閱發佈更新

  12. 選擇 [選項] 按鈕,檢閱 [選項] 對話方塊中的選項,然後選擇 [確定] 按鈕。

  13. 選擇 [立即發佈] 按鈕。

    Visual Studio 會將下列資料夾和檔案加入至您在本程序前段指定的發行資料夾。

    • [應用程式檔案] 資料夾。

    • 安裝程式。

    • 部署資訊清單,會指向最新版本的部署資訊清單。

      [應用程式檔案] 資料夾包含您發佈之每個版本的子資料夾。 每個版本專屬子資料夾都包含下列檔案。

    • 應用程式資訊清單。

    • 部署資訊清單。

    • 自訂組件。

      下圖顯示 Outlook VSTO 增益集的發行資料夾結構。

      Publish Folder Structure

    注意

    ClickOnce 會將 .deploy 副檔名附加至組件,以便網際網路資訊服務 (IIS) 的安全安裝就不會因為不安全的副檔名而封鎖檔案。 當使用者安裝方案時,ClickOnce 會移除 .deploy 副檔名。

  14. 將方案檔複製到您在本程序前段指定的安裝位置。

決定如何將信任授與方案

在使用者電腦上執行方案之前,您必須先授與信任,或是使用者必須在安裝方案時回應信任提示。 若要對方案授與信任,請使用確認為知名且受信任之發行者的憑證來簽署資訊清單。 請參閱 透過簽署應用程式和部署清單來信任解決方案

如果您要部署文件層級自訂,而且想要將文件放入使用者電腦中的資料夾,或讓文件可在 SharePoint 網站中使用,請確定 Office 信任文件的位置。 請參閱授與文件信任

協助使用者安裝方案

使用者能夠安裝方案的方式包括:執行安裝程式、開啟部署資訊清單,或是在文件層級自訂期間直接開啟文件。 最理想的做法是使用者應使用安裝程式安裝您的方案。 其他兩種方法不確保已安裝必要條件軟體。 如果使用者想要從安裝位置開啟文件,則必須將文件加入至 Office 應用程式的 [信任中心] 中信任的位置清單。

開啟文件層級自訂的文件

使用者可以直接從安裝位置開啟文件層級自訂的文件,或是將文件複製到其本機電腦,然後開啟複本。

最理想的做法是使用者應該在其電腦上開啟文件的複本,如此就不會有多位使用者嘗試同時開啟相同的複本。 若要強制執行這種做法,您可以設定安裝程式將文件複製到使用者電腦。 請參閱將方案的文件放入終端使用者的電腦 (只限文件層級自訂)

從 IIS 網站開啟部署資訊清單來安裝方案

使用者可以從 Web 開啟部署資訊清單,藉此安裝 Office 方案。 但是,網際網路資訊服務 (IIS) 的安全安裝將封鎖具有 .vsto 副檔名的檔案。 您必須先在 IIS 中定義 MIME 類型,才能使用 IIS 部署 Office 方案。

若要將 .vsto MIME 類型加入至 IIS 6.0
  1. 在執行 IIS 6.0 的伺服器上,選擇 [開始>][所有程式>][系統管理工具>][網際網路資訊服務 [IIS] 管理員

  2. 選擇電腦名稱、[網站] 資料夾或您要設定的網站。

  3. 在功能表列上,選擇 [動作>][屬性]。

  4. 在 [HTTP 標頭] 索引標籤上,選擇 [MIME 類型] 按鈕。

  5. 在 [MIME 類型] 視窗中,選擇 [新增] 按鈕。

  6. 在 [MIME 類型] 視窗中,輸入 .vsto 做為副檔名,輸入 application/x-ms-vsto 做為 MIME 類型,然後套用新的設定。

    注意

    您必須重新啟動 World Wide Web Publishing 服務,或等待背景工作處理序回收,變更才會生效。 然後,您必須排清瀏覽器的磁碟快取,然後嘗試再次開啟 .vsto 檔案。

若要將 .vsto MIME 類型加入至 IIS 7.0
  1. 在執行 IIS 7.0 的伺服器上,選擇 [開始>][所有程式>][配件]。

  2. 開啟 [命令提示字元] 捷徑功能表,然後選擇 [以系統管理員身分執行]。

  3. 在 [開啟] 方塊中,輸入下列路徑,然後選擇 [確定] 按鈕。

    %windir%\system32\inetsrv
    
  4. 輸入下列命令,然後套用新的設定。

    set config /section:staticContent /+[fileExtension='.vsto',mimeType='application/x-ms-vsto']
    

    注意

    您必須重新啟動 World Wide Web Publishing 服務,或是等待背景工作處理序回收,變更才會生效。 然後,您必須排清瀏覽器的磁碟快取,然後嘗試再次開啟 .vsto 檔案。

將方案的文件放入終端使用者的電腦 (只限文件層級自訂)

您可以藉由建立部署後動作,將方案的文件複製到終端使用者的電腦上。 如此一來,使用者在安裝方案後,就無需手動將文件從安裝位置複製到電腦。 您必須建立類別來定義部署後動作、建置和發佈方案、修改應用程式資訊清單,以及重新簽署應用程式和部署資訊清單。

下列程式假設您的專案名稱是 ExcelWorkbook,而且您將方案發佈至電腦中已建立之名為 C:\publish 的資料夾。

建立定義部署後動作的類別

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

  2. 在 [新增專案] 對話方塊的 [已安裝範本] 窗格中,選擇 [Windows] 資料夾。

  3. 在 [範本] 窗格中,選擇 [類別庫] 範本。

  4. 在 [名稱] 欄位中,輸入 FileCopyPDA,然後選擇 [確定] 按鈕。

  5. 在 [方案總管] 中,選擇 FileCopyPDA 專案。

  6. 在功能表列上,選擇 [專案]> [加入參考]

  7. 在 [.NET] 索引標籤上,新增對 Microsoft.VisualStudio.Tools.Applications.RuntimeMicrosoft.VisualStudio.Tools.Applications.ServerDocument 的參考。

  8. 將類別重新命名為 FileCopyPDA,然後將檔案的內容取代為程式碼。 這個程式碼會執行下列工作:

    • 將文件複製到使用者的桌面。

    • 將 _AssemblyLocation 屬性從相對路徑變更為部署資訊清單的完整路徑。

    • 如果使用者解除安裝方案,則將檔案刪除。

      using Microsoft.VisualStudio.Tools.Applications.Deployment;
      using Microsoft.VisualStudio.Tools.Applications;
      using System.IO;
      
      namespace FileCopyPDA
      {
          public class FileCopyPDA : IAddInPostDeploymentAction
          {
              public void Execute(AddInPostDeploymentActionArgs args) 
              {
                  string dataDirectory = @"Data\ExcelWorkbook.xlsx";
                  string file = @"ExcelWorkbook.xlsx";
                  string sourcePath = args.AddInPath;
                  Uri deploymentManifestUri = args.ManifestLocation;
                  string destPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
                  string sourceFile = System.IO.Path.Combine(sourcePath, dataDirectory);
                  string destFile = System.IO.Path.Combine(destPath, file);
      
                  switch (args.InstallationStatus)
                  {
                      case AddInInstallationStatus.InitialInstall:
                      case AddInInstallationStatus.Update:
                          File.Copy(sourceFile, destFile);
                          ServerDocument.RemoveCustomization(destFile);
                          ServerDocument.AddCustomization(destFile, deploymentManifestUri);
                          break;
                      case AddInInstallationStatus.Uninstall:
                          if (File.Exists(destFile))
                          {
                              File.Delete(destFile);
                          }
                          break;
                  }
              }
          }
      }
      

建置及發行方案

  1. 在 [方案總管] 中,開啟 FileCopyPDA 專案的捷徑功能表,然後選擇 [建置]。

  2. 開啟 ExcelWorkbook 專案的捷徑功能表,然後選擇 [建置]。

  3. 開啟 ExcelWorkbook 專案的捷徑功能表,然後選擇 [新增參考]。

  4. 在 [新增參考] 對話方塊中,選擇 [專案] 索引標籤,選擇 [FileCopyPDA],然後選擇 [確定] 按鈕。

  5. 在 [方案總管] 中,選擇 ExcelWorkbook 專案。

  6. 在功能表列上,選擇 [專案>][新建資料夾]。

  7. 輸入 Data,然後選擇 [輸入] 鍵。

  8. 在 [方案總管] 中,選擇 [資料] 資料夾。

  9. 在功能表列中,選擇 [專案>加入現有項目]

  10. 在 [新增現有項目] 對話方塊中,瀏覽至 ExcelWorkbook 專案的輸出目錄,選擇 ExcelWorkbook.xlsx 檔案,然後選擇 [新增] 按鈕。

  11. 在 [方案總管] 中,選擇 ExcelWorkbook.xlsx 檔案。

  12. 在 [屬性] 視窗中,將 [建置動作] 屬性更改為 [內容],將 [複製到輸出目錄] 屬性更改為 [有更新時才複製]。

    當您完成這些步驟時,您的專案會類似下圖。

    Project structure of the post deployment action.

  13. 發佈 ExcelWorkbook 專案。

修改應用程式資訊清單

  1. 使用 [檔案總管] 開啟方案目錄,c:\publish

  2. 開啟 [應用程式檔案] 資料夾,然後開啟與最新發佈的方案版本相對應的資料夾。

  3. 在文字編輯器中開啟 ExcelWorkbook.dll.manifest 檔案,例如:記事本。

  4. </vstav3:update> 項目後面加上下列程式碼。 對於 <vstav3:entryPoint> 項目的類別屬性,請使用下列語法:NamespaceName.ClassName。 在下列範例中,命名空間和類別名稱相同,因此產生的進入點名稱是 FileCopyPDA.FileCopyPDA

    <vstav3:postActions>
      <vstav3:postAction>
        <vstav3:entryPoint
          class="FileCopyPDA.FileCopyPDA">
          <assemblyIdentity
            name="FileCopyPDA"
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
        </vstav3:entryPoint>
        <vstav3:postActionData>
        </vstav3:postActionData>
      </vstav3:postAction>
    </vstav3:postActions>
    

重新簽署應用程式和部署資訊清單

  1. %USERPROFILE%\Documents\Visual Studio 2013\Projects\ExcelWorkbook\ExcelWorkbook 資料夾中,複製 ExcelWorkbook_TemporaryKey.pfx 憑證檔案,然後將它貼到 PublishFolder\Application Files\ExcelWorkbook_MostRecentPublishedVersion 資料夾中。

  2. 開啟 Visual Studio 命令提示字元,然後將目錄變更為 c:\publish\Application Files\ExcelWorkbook_MostRecentPublishedVersion 資料夾 (例如,c:\publish\Application Files\ExcelWorkbook_1_0_0_4)。

  3. 執行下列命令簽署修改後的應用程式資訊清單:

    mage -sign ExcelWorkbook.dll.manifest -certfile ExcelWorkbook_TemporaryKey.pfx
    

    「ExcelWorkbook.dll.manifest 簽署成功」訊息隨即顯示。

  4. 變更為 c:\publish 資料夾,然後執行下列命令來更新並簽署部署資訊清單:

    mage -update ExcelWorkbook.vsto -appmanifest "Application Files\Ex
    celWorkbookMostRecentVersionNumber>\ExcelWorkbook.dll.manifest" -certfile "Application Files\ExcelWorkbookMostRecentVersionNumber>\ExcelWorkbook_TemporaryKey.pfx"
    

    注意

    在上一個範例中,將 MostRecentVersionNumber 取代為您解決方案最新發佈的版本號碼 (例如,1_0_0_4)。

    「ExcelWorkbook.vsto 簽署成功」訊息隨即顯示。

  5. ExcelWorkbook.vsto 檔案複製到 c:\publish\Application Files\ExcelWorkbook_MostRecentVersionNumber 目錄。

將方案的文件放入執行 SharePoint 的伺服器 (只限文件層級自訂)

您可以使用 SharePoint 將文件層級自訂發行至終端使用者。 當使用者前往 SharePoint 網站並開啟文件時,執行階段會自動將共用網路資料夾中的方案安裝到使用者的本機電腦。 方案安裝到本機上之後,即使文件是複製到其他地方 (例如桌面),自訂仍舊會執行。

若要將文件放置到執行 SharePoint 的伺服器上

  1. 將方案文件加入至 SharePoint 網站上的文件庫。

  2. 執行下列其中一種方法的步驟:

    • 使用 Office 組態工具將執行 SharePoint 的伺服器加入至所有使用者電腦上 Word 或 Excel 中的 [信任中心]。

      請參閱 Office 2010 中的安全性原則和設定

    • 確定每位使用者都執行下列步驟。

      1. 在本機電腦上,開啟 Word 或 Excel,選擇 [檔案] 索引標籤,然後選擇 [選項]] 按鈕。

      2. 在 [信任中心] 對話方塊中,選擇 [信任位置] 按鈕。

      3. 選取 [允許我的網路上之信任位置 (不建議使用)] 核取方塊,然後選擇 [新增位置] 按鈕。

      4. 在 [路徑] 方塊中,輸入 SharePoint 文件庫的 URL,其中包含您上傳的文件(例如,http://SharePointServerName/TeamName/ProjectName/DocumentLibraryName)。

        請勿新增預設網頁的名稱,例如 default.aspxAllItems.aspx

      5. 選取[同時信任此位置的子資料夾] 核取方塊,然後選擇 [確定] 按鈕。

        當使用者從 SharePoint 網站開啟文件時,文件隨即開啟,而且會安裝自訂。 使用者可以將文件複製到桌面。 自訂仍舊會執行,因為文件中的屬性是指向文件的網路位置。

建立自訂安裝程式

您可以為 Office 方案建立自訂安裝程式,而不是使用發佈方案時為您建立的安裝程式。 例如,您可以使用登入指令檔開始進行安裝,或使用批次檔安裝方案而無須與使用者互動。 使用者電腦上已安裝必要條件時,下列情境可獲得最佳效果。

在自訂安裝程式中,呼叫 Office 方案的安裝程式工具 (VSTOInstaller.exe),預設會安裝在下列位置:

%commonprogramfiles%\microsoft shared\VSTO\10.0\VSTOInstaller.exe

如果此工具不在該位置,您可以使用 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTO Runtime Setup\v4\InstallerPathHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSTO Runtime Setup\v4\InstallerPath 登錄機碼來尋找此工具的路徑。

您可以使用下列參數搭配 VSTOinstaller.exe

參數 定義
/Install 或 /I 安裝解決方案。 這個選項後面必須接著部署資訊清單的路徑。 您可以指定本機電腦上的路徑,也就是通用命名慣例 (UNC) 檔案共用。 您可以指定本機路徑 (C:\FolderName\PublishFolder)、相對路徑 (Publish\) 或完整位置 (\\ServerName\FolderName 或 http://ServerName/FolderName)。
/Uninstall 或 /U 解除安裝方案。 這個選項後面必須接著部署資訊清單的路徑。 您可以指定位於本機電腦或 UNC 檔案共用上的路徑。 您可以指定本機路徑 (c:\FolderName\PublishFolder)、相對路徑 (Publish\) 或完整位置 (\\ServerName\FolderName 或 http://ServerName/FolderName)。
/Silent 或 /S 在不提示使用者輸入或顯示任何訊息的情況下,進行安裝或解除安裝。 如果需要信任提示,則不會安裝或更新自訂。
/Help 或 /? 顯示 [說明] 資訊。

當您執行 VSTOinstaller.exe 時,可能會出現下列錯誤碼。

錯誤碼 定義
0 方案已成功安裝或解除安裝,或是出現 VSTOInstaller [說明]。
-100 一個或多個命令列選項無效,或是設定超過一次。 如需詳細資訊,請輸入「vstoinstaller /?」 或請參閱建立 ClickOnce Office 方案的自訂安裝程式
-101 一或多個命令列選項無效。 如需詳細資訊,請輸入 "vstoinstaller /?"。
-200 部署資訊清單 URI 無效。 如需詳細資訊,請輸入 "vstoinstaller /?"。
-201 無法安裝方案,因為部署資訊清單無效。 請參閱 Office 方案的部署資訊清單
202- 無法安裝方案,因為應用程式資訊清單的 Visual Studio Tools for Office 區段無效。 請參閱 Office 方案的應用程式資訊清單
-203 無法安裝方案,因為發生下載錯誤。 請檢查部署資訊清單的 URI 或網路檔案的位置,然後再試一次。
-300 無法安裝方案,因為發生安全性例外狀況。 請參閱保護 Office 方案
-400 無法安裝方案。
-401 方案無法解除安裝。
-500 作業已取消,因為無法安裝或解除安裝方案,或是無法下載部署資訊清單。

發佈更新

若要更新方案,您可以使用 [專案設計工具] 或 [發佈精靈] 再次發佈方案,然後將更新的方案複製到安裝位置。 將檔案複製到安裝位置時,務必覆寫先前的檔案。

方案下次檢查更新時,就會自動尋找並載入新版本。

變更方案的安裝位置

您可以在發行方案之後,加入或變更安裝路徑。 基於下列其中一個或多個原因,您可能會想要變更安裝路徑:

  • 在知道安裝路徑之前就已編譯安裝程式。

  • 方案檔案已複製至不同位置。

  • 裝載安裝檔案的伺服器換了名稱或位置。

    若要變更方案的安裝路徑,您必須更新安裝程式,然後使用者必須執行安裝程式。 若是文件層級自訂,使用者也必須更新其文件中的屬性,以指向新位置。

注意

如果您不想要求使用者更新其文件屬性,您可以要求使用者從安裝位置取得更新的文件。

若要變更安裝程式中的安裝路徑

  1. 開啟 [命令提示字元] 視窗,將目錄變更為安裝資料夾。

  2. 執行安裝程式並且包含 /url 參數,這個參數會將新安裝路徑當成字串。

    下列範例將示範如何將安裝路徑變更為 Fabrikam 網站上的位置,不過您可以將 URL 取代為您要的路徑:

    setup.exe /url="http://www.fabrikam.com/newlocation"
    

    注意

    如果出現訊息並指出可執行檔的簽章將失效,則用來簽署方案的憑證將不再有效且發行者為未知。 如此一來,使用者就必須確認可以信任方案的來源,才能進行安裝。

    注意

    若要顯示目前的 URL 值,請執行 setup.exe /url

    對於文件層級自訂,使用者必須開啟文件,然後更新其 _AssemblyLocation 屬性。 下列步驟將描述使用者如何執行這項工作。

若要更新文件中的 _AssemblyLocation 屬性

  1. 在 [檔案] 索引標籤上,選擇 [資訊],如下圖所示。

    Info tab in Excel

  2. 在 [屬性] 清單中,選擇 [進階屬性],如下圖所示。

    Advanced Properties in Excel.

  3. 在 [屬性] 清單中的 [自訂] 索引標籤上,選擇 _AssemblyLocation,如下圖所示。

    The AssemblyLocation property.

    [] 方塊包含部署資訊清單識別碼。

  4. 在識別碼之前,輸入文件的完整路徑,後面接著一個橫線,格式為路徑|識別碼 (例如,File://ServerName/FolderName/FileName|74744e4b-e4d6-41eb-84f7-ad20346fe2d9

    如需如何格式化此識別碼的詳細資訊,請參閱自訂文件屬性概觀

  5. 選擇 [確定] 按鈕,然後儲存並關閉文件。

  6. 執行不含 /url 參數的安裝程式,在指定的位置安裝方案。

將方案復原至舊版

當您復原方案時,可以將使用者還原為該方案的舊版。

若要復原方案

  1. 開啟方案的安裝位置。

  2. 在最上層發佈資料夾中,刪除部署資訊清單 (.vsto 檔案)。

  3. 尋找要復原之版本的子資料夾。

  4. 將部署資訊清單從該資料夾複製至最上層發行資料夾。

    例如,若要將名為 OutlookAddIn1 的方案從 1.0.0.1 版復原至 1.0.0.0 版,請從 OutlookAddIn1_1_0_0_0 資料夾中複製 OutlookAddIn1.vsto 檔案。 將檔案貼到最上層發佈資料夾中,覆寫已經存在 OutlookAddIn1_1_0_0_1 的版本特定部署資訊清單。

    下圖顯示這個範例中的發行資料夾結構。

    Publish Folder Structure

    下次使用者開啟應用程式或自訂文件時,就會偵測到部署資訊清單的變更。 舊版 Office 方案便會從 ClickOnce 快取中執行。

注意

任何方案都只有前一個版本會儲存為本機資料。 如果您復原兩個版本,則不會保留本機資料。 如需本機資料的詳細資訊,請參閱在 ClickOnce 應用程式中存取本機和遠端資料