WiX技巧:使用MSBuild和Windows Installer XML執行自動發布

來源:互聯網
上載者:User

本文討論:

Windows Installer XML 概述

建立 WiX 打包說明

整合 WiX 和 MSBuild

自動執行產生和打包

本文使用了以 下技術:Visual Studio, Windows Installer XML (WiX), MSBuild

目 錄

WiX 簡介

建立 WiX 檔案WiX 和 MSBuildMSBuild 批處理自動執 行產生和打包分析 MSBuild 指令碼綜述自訂過程總結

在開發過程中,重要的 是有自動的產生過程。同樣重要的是要有自動建立發布的手段。遺憾的是,在很 多組織中(尤其是較小的組織),並沒有這些。通常,您會發現發布內容只是在 最後一分鐘才被拼合在一起。但是,如果花時間建立自動產生和發布計劃,就會 節省無數的時間,您就可以將這些時間更好地用在完成任務上,而不是用來產生 和發布項目。

在本文中,我將介紹如何使用 Microsoft® Build Engine (MSBuild) 和 Windows® Installer XML (WiX) 工具集在組織中實現 自動和可重複的產生和發布過程。本文討論了 WiX v2(注意,當 WiX v3 發布時 ,不會直接轉換某些文法樣本)。雖然 WiX 的確簡化了建立發布的過程,但無論 您是否使用 WiX 建立發布,本文描述的技術都可供您參考。也可以對這些技術進 行一些修改後,將它們應用於不使用 Microsoft .NET Framework 2.0 所開發的 應用程式(本文還包含指向英文網頁的連結)。

我將假定您熟悉 MSBuild (如果需要重新瞭解它,請參閱我在 2006 年 6 月的《MSDN®雜誌》上的文 章 深入瞭解 MSBuild:通過 Microsoft Build Engine 的自訂任務以自己的方 式編譯應用程式)。我將為那些不熟悉該工具的人提供 WiX 工具集的概述。請參 見側欄“MSBuild 和 WiX 資源”中關於更多相關文章和工具的參考。 在本文中,為了進行示範,我將使用我的 Sedodream MSBuild 項目。您可以從 www.codeplex.com/Sedodream 獲得最新原始碼。

WiX 簡介

建立應 用程式時,通常最終結果是要在生產電腦上安裝並運行它。WiX 工具集可以幫 助您完成此任務。在這一節中,我將描述 WiX,並介紹如何使用 WiX 建立安裝程 序。

WiX 描述了在目標電腦上的安裝是什麼樣子的。從 Visual Studio® 到 Microsoft Office,在很多 Microsoft 應用程式中都使用了 Windows Installer。您可能會吃驚地發現:WiX 實際上是個開放原始碼的項目, 並且承載在 sourceforge.net 上。您可以從 wix.sourceforge.net 下載最新的 二進位檔案和源檔案。下載並安裝 WiX 後,您會發現電腦上安裝了如圖 1 中 總結的大量可執行檔。我將重點介紹 Candle.exe 和 Light.exe 工具的使用。

Figure1WiX 組件

名稱 說明
Candle.exe 將 WiX 源檔案轉換為中間表示形式。 這實際上是另一個 XML 檔案,但永遠不應手動更改這些產生的檔案。
Dark.exe 將 MSI 檔案轉換為適當的 WiX 源檔案( 可以視為“反編譯”安裝程式)。
Light.exe 從 WiX 源檔案的中間表示形式產生 Windows Installer。
Lit.exe 產生 WiX 庫,該庫 可用於產生其他安裝程式包。
Tallow.exe 用於建立 WiX 源 XML,以複製它在安裝目錄或檔案中的檔案和檔案夾。
WixCop.exe 檢查 WiX 源檔案中存在潛在問題的區 域,類似於 FxCop。

WiX 使用聲明性語言,而不是過程性 語言,這意味著您要描述您的安裝將是什麼樣子的,而不用描述為了實現它需要 執行哪些步驟。這可能與您的習慣不同,但它非常容易掌握。通常,要安裝在目 標電腦上的描述檔案將填充 WiX 源檔案。在這裡,我將重點介紹這些組件。

在 WiX 源檔案中,有三個與您希望安裝的檔案有關的主要元素:檔案、 組件和功能。檔案元素是對單個檔案的引用。檔案必須包含在組件元素中,組件 元素是最小的安裝單位。就是說,如果您有一個包含 100 個檔案的組件,並且您 要安裝該組件,則會安裝它包含的所有檔案。相反,如果不安裝該組件,則不安 裝任何檔案。建議不要建立包含大量檔案的組件。

組件始終包含在功能元 素中,並且可以包含在多個功能中。功能是一組組件,也可能是一組子功能。如 果安裝程式具有允許使用者選擇要安裝哪些項的圖形介面,則使用者實際是在選擇功 能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.