更新:2010 年 9 月
使用 ClickOnce 部署後動作,即可安裝文件層級的 Office 方案,然後將文件複製到使用者電腦。 在安裝之前,您必須修改應用程式資訊清單,並且重新簽署應用程式和部署資訊清單。
**適用於:**本主題中的資訊適用於 Microsoft Office 2010 和 2007 Microsoft Office system 的文件層級專案和應用程式層級專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
這個逐步解說將說明下列工作:
建立要部署的 Office 方案。
實作部署後動作,這個動作會將文件複製到使用者的桌面。
修改 Office 方案的應用程式資訊清單以執行部署後動作。
重新簽署應用程式和部署資訊清單。
注意事項 |
|---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱 Visual Studio 設定。 |
必要條件
您需要下列元件才能完成此逐步解說:
-
包含 Microsoft Office 開發者工具的 Visual Studio 2010 版本。 如需詳細資訊,請參閱[設定電腦以開發 Office 方案](bb398242\(v=vs.100\).md)。
Excel 2007 或 Excel 2010。
測試用電腦。
建立新專案
首先,先建立 Excel 活頁簿專案。
若要建立新的 Excel 專案
建立 Excel 文件層級專案。 將專案命名為 ExcelWorkbook,然後儲存在 %USERPROFILE%\Documents\Visual Studio 2010\Projects 目錄中。 如需詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案。
Visual Studio 會在設計工具中開啟新的 Excel 活頁簿,並將 [ExcelWorkbook] 專案加入至 [方案總管]。
建立定義部署後動作的類別庫專案
您必須在另一個類別庫中定義部署後動作。 這個部署後動作會將文件複製到使用者電腦。
若要為部署後動作建立類別庫
指向 [檔案] 功能表上的 [加入],然後按一下 [新增專案]。
在 [加入新的專案] 對話方塊的 [已安裝的範本] 窗格中按一下 [Windows]。
按一下 [範本] 窗格中的 [類別庫]。
在 [名稱] 欄位中輸入 FileCopyPDA,然後按一下 [確定]。
按一下 [方案總管] 中的 [FileCopyPDA]。
按一下 [專案] 功能表上的 [加入參考]。
在 [加入參考] 對話方塊的 [.NET] 索引標籤中,加入下列參考:
如果 Excel 專案的目標為 .NET Framework 3.5,請加入 Microsoft.VisualStudio.Tools.Applications.Runtime.v10.0 和 Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0 的參考。
如果 Excel 專案的目標是 .NET Framework 4,請加入 Microsoft.VisualStudio.Tools.Applications.Runtime 和 Microsoft.VisualStudio.Tools.Applications.ServerDocument 的參考。
將下列 using 或 Imports 陳述式加入至 Class1 程式碼檔頂端。
Imports Microsoft.VisualStudio.Tools.Applications.Deployment Imports Microsoft.VisualStudio.Tools.Applicationsusing Microsoft.VisualStudio.Tools.Applications.Deployment; using Microsoft.VisualStudio.Tools.Applications; using System.IO;將這個類別重新命名為 FileCopyPDA,然後將下列程式碼加入至這個 FileCopyPDA 類別。 這段程式碼表示 FileCopyPDA 類別繼承自 IAddInPostDeploymentAction。
Public Class FileCopyPDA Implements IAddInPostDeploymentActionpublic class FileCopyPDA : IAddInPostDeploymentAction加入下列程式碼以實作 IAddInPostDeploymentAction.Execute 方法。 這個程式碼會執行下列工作:
如果已安裝或更新方案,請將 Excel 活頁簿檔案複製到使用者的桌面。
針對部署資訊清單,將 _AssemblyLocation 屬性從相對路徑變更為完整路徑。 這是藉由 AddCustomization 和 RemoveCustomization 方法來完成。
如果尚未安裝方案,請將這個檔案刪除。
注意事項部署後動作會在 .NET Framework 3.5 的解除安裝步驟期間執行。
Sub Execute(ByVal args As AddInPostDeploymentActionArgs) Implements IAddInPostDeploymentAction.Execute Dim dataDirectory As String = "Data\ExcelWorkbook.xlsx" Dim file As String = "ExcelWorkbook.xlsx" Dim sourcePath As String = args.AddInPath Dim deploymentManifestUri As Uri = args.ManifestLocation Dim destPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) Dim sourceFile As String = System.IO.Path.Combine(sourcePath, dataDirectory) Dim destFile As String = System.IO.Path.Combine(destPath, file) Select Case args.InstallationStatus Case AddInInstallationStatus.InitialInstall, AddInInstallationStatus.Update System.IO.File.Copy(sourceFile, destFile) ServerDocument.RemoveCustomization(destFile) ServerDocument.AddCustomization(destFile, deploymentManifestUri) Exit Select Case AddInInstallationStatus.Uninstall If System.IO.File.Exists(destFile) Then System.IO.File.Delete(destFile) End If Exit Select End Select End Subpublic 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; } }
建置和發行方案
請使用 [發行精靈] 或 [專案設計工具] 的 [專案頁] 建置 Office 方案,並且發行至您的開發電腦。
若要發行 Excel 專案
以滑鼠右鍵按一下 [方案總管] 中的 [FileCopyPDA] 專案,然後按一下 [建置]。
以滑鼠右鍵按一下 [方案總管] 中的 [ExcelWorkbook] 專案,然後按一下 [建置]。
以滑鼠右鍵按一下 [方案總管] 中的 [ExcelWorkbook] 專案,然後按一下 [加入參考]。
在 [加入參考] 對話方塊中按一下 [專案] 索引標籤。
按一下 [FileCopyPDA],然後按一下 [確定]。
以滑鼠右鍵按一下 [方案總管] 中的 [ExcelWorkbook] 專案。
按一下 [專案] 功能表上的 [新增資料夾]。
輸入 Data 然後按 Enter 鍵。
以滑鼠右鍵按一下 [方案總管] 中的 [Data] 資料夾。
按一下 [專案] 功能表上的 [加入現有項目]。
在 [加入現有項目] 對話方塊中,瀏覽至 [ExcelWorkbook] 專案的輸出資料夾。
按一下 [ExcelWorkbook.xlsx],然後按一下 [加入]。
按一下 [方案總管] 中的 [ExcelWorkbook]。
注意事項如果您稍後修改這個檔案,請記得加入最新版的檔案來更新檔案。
在 [屬性] 視窗中,將 [建置動作] 屬性變更為 [內容],並且將 [複製到輸出目錄] 屬性設定為 [有更新時才複製]。
將 ExcelWorkbook 專案發行至 c:\publish 資料夾。 如需詳細資訊,請參閱 HOW TO:使用 ClickOnce 部署 Office 方案。
修改應用程式資訊清單
使用 Visual Studio 的 XML 編輯器修改應用程式資訊清單以執行「檔案複製」部署後動作。 應用程式資訊清單的內容類似於物料清單,它會列出箱子的整個內容;應用程式資訊清單會列出所有相依性及必備的組件。 Office 方案的應用程式資訊清單也會列出 Office 應用程式應該針對應用程式層級增益集和文件層級自訂載入的組件。
若要將安裝相依性加入至應用程式資訊清單
在 [Windows 檔案總管] 中開啟 c:\publish 目錄。
開啟 Application Files 資料夾,然後開啟 ExcelWorkbook_1_0_0_0 資料夾。
在文字編輯器中開啟 ExcelWorkbook.dll.manifest 檔。
將下列程式碼加入至 </vstav3:update> 項目之後。 如果是 <vstav3:entryPoint> 項目的類別屬性,請使用下列語法:<命名空間名稱>.<類別名稱>。 在這個範例中,命名空間和類別名稱都相同,因此產生的進入點名稱是 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>
重新簽署資訊清單
下列程序可簽署應用程式資訊清單並更新部署資訊清單。 如此可確保不會將遭修改的檔案安裝在使用者電腦上。
若要重新簽署應用程式和部署資訊清單
將 %USERPROFILE%\Documents\Visual Studio 2010\Projects\ExcelWorkbook\ExcelWorkbook 方案目錄中的 ExcelWorkbook_TemporaryKey.pfx 憑證檔複製到 c:\publish\Application Files\ExcelWorkbook_1_0_0_0 目錄。
開啟 Visual Studio 命令提示字元。
切換到 c:\publish\Application Files\ExcelWorkbook_1_0_0_0 目錄。
使用下列命令簽署修改後的應用程式資訊清單:
mage -sign ExcelWorkbook.dll.manifest -certfile ExcelWorkbook_TemporaryKey.pfx「ExcelWorkbook.dll.manifest 簽署成功」訊息隨即顯示。
切換到 c:\publish 目錄。
使用下列命令更新及簽署修部署資訊清單:
mage -update ExcelWorkbook.vsto -appmanifest "Application Files\Ex celWorkbook_1_0_0_0\ExcelWorkbook.dll.manifest" -certfile "Application Files\ExcelWorkbook_1_0_0_0\ExcelWorkbook_TemporaryKey.pfx"「ExcelWorkbook.vsto 簽署成功」訊息隨即顯示。
將 ExcelWorkbook.vsto 檔案複製到 c:\publish\Application Files\ExcelWorkbook_1_0_0_0 目錄。
測試部署後動作
下列程序可確保更新後的資訊清單會安裝 Excel 活頁簿,並且將活頁簿複製到使用者的桌面。
若要測試部署後動作
將 c:\publish 目錄複製到測試用電腦。
執行 Setup.exe 程式;或是如果測試用電腦上已經安裝必要條件,請按兩下 [ExcelWorkbook.vsto] 部署資訊清單。
[Microsoft Office 自訂安裝程式] 隨即顯示。
按一下 [安裝]。
[Microsoft Office 自訂安裝程式] 對話方塊隨即顯示下列訊息:「已成功安裝 Microsoft Office 自訂。」Excel 活頁簿會複製到使用者的桌面。
從桌面開啟 ExcelWorkbook.xlsx 檔。
請參閱
工作
概念
其他資源
變更記錄
日期 |
記錄 |
原因 |
|---|---|---|
|
2010 年 9 月 |
將 %USERPROFILE%\Documents\Visual Studio 10\Projects 變更為 %USERPROFILE%\Documents\Visual Studio 2010\Projects。 |
內容 Bug 修正。 |