「安裝項目」 Step By Step

目錄數據庫

一 基本操做編輯器

二 定製安裝對話框工具

三 安裝程序類動畫

四 總結ui

  .NET程序集由於包含了元數據,因此程序集具備自描述性。多數程序自身包含了運行所須要的所有信息,這類程序集就是咱們常說的「綠色軟件」。對於綠色軟件,使用壓縮工具製做自解壓文件就足以知足咱們大多數須要。若是咱們構建的是部署比較繁瑣的應用程序,或者是但願以一種更爲正規的形式來分發軟件,咱們則可使用VS內置的「安裝項目」模版。「安裝項目」經常使用於安裝Windows窗體應用程序以及Windows服務,其基於Windos Installer技術,能夠幫助用戶在嚮導的指引下完成程序的部署。spa

一 基本操做3d

Step 1:準備應用程序須要的全部外部資源code

  應用程序經常使用的外部資源包括配置文件、COM組件、第三方程序集、相關文件等。好的實踐是,在項目構建階段,就建立並維護這樣一份依賴性列表。blog

Step 2:新建安裝項目並設置屬性繼承

Step 3:定義「生成」方式

  進入屬性設置對話框,配置安裝程序的生成方式及必備組件:

Step 4:設置「文件系統」

  打開「文件系統編輯器」,配置安裝程序在目標機器中的不一樣位置如何部署文件及程序集:

  經過「文件系統編輯器」,能夠在以上3個目錄中定製部署涉及的文件及程序集。能夠添加的項包括:「文件夾」、「項目輸出」(其餘項目的所包含的項,如程序集和文件等等)、「文件」、「程序集」。

  添加項目輸出:

Step 5:設置「註冊表」

  打開「註冊表編輯器」設置目標機器的註冊表項和值:

Step 6:創建文件關聯

  創建文件關聯其實是爲某個擴展名映射處理程序,打開「文件類型編輯器」能夠設置擴展名與應用程序的映射關係。

  1 創建並設置文件類型

  2 定義操做

  默認定義了一個「打開」操做,該操做也是該類型的默認操做,即當用戶雙擊該類型文件時執行的操做。

  操做能夠定義多個,默認操做會加粗顯示在首行,全部操做都會顯示在對應文件的右鍵菜單中,其顯示順序與定義操做時的排列順序相同。

Step 7:設置安裝程序的用戶界面

  根據安裝方式不一樣,分爲了2組,每組又細分爲3個階段——啓動、進度、結束。在簡單應用中,咱們能夠徹底使用默認設置,默認預置5個界面,並自動生成的相應屬性值。

  安裝項目每一個對話框只能在項目中使用一次,因此咱們在使用時,會發現功能相同的對話框可是不一樣名字。下面顯示了VS內置的安裝對話框:

  1 歡迎使用

  2 安裝文件夾

  3 確認安裝

  4 進度

  5 已完成

  6 單選按鈕

  7 複選框

  8 客戶信息

  9 啓動畫面

  10 文本框

  11 許可協議

  12 註冊用戶

  13 自述文件

Step 8:添加自定義操做

  經過添加自定義操做使咱們能夠在應用程序安裝時執行附加操做,例如:安裝數據庫,修改配置文件等,能夠在安裝的某和時間點執行程序集和腳本。(VS內置了「安裝程序類」模板,用以定義此處使用的程序集,具體用法見下文。)

  打開「自定義操做管理器」,會看到四個階段,用戶能夠按須要在各個階段添加自定義操做。

  添加操做後,須要設置操做的屬性:

  須要注意的是自定義操做最好成對使用,即在「安裝」階段添加的文件,最好在「卸載」階段進行刪除。

Step 9:應用條件部署

  「條件部署」就如其名字同樣,能根據安裝環境選擇不一樣的部署操做,是安裝項目中少有的分支操做。但其使用並不夠簡單直接,其最經常使用的場景是限制安裝程序的安裝條件。即在安裝程序時檢查客戶機的安裝環境,對不知足要求的客戶機執行某個處理。實現條件部署功能由兩種方式,分別是「屬性方式」和「管理器方式」。

  1 經過「Condition」屬性實現條件部署

   在安裝項目中的不少項,都有一個「Condition」屬性,用於指定必須知足的Windos Installer條件,以達到在特性條件下的部署須要。在VS中,並無給出相似WF那樣的規則編輯器,條件須要人爲鍵入,其語法比較複雜,也不太經常使用,若是讀者感興趣請參考MSDN關於「Windos Installer條件語句語法」相關內容的描述。

  2 在「啓動條件管理器」中實現條件部署

  綜上所述,VS爲咱們完成了大量的工做,若是咱們沒有特殊要求,徹底能夠跳過不少步驟,咱們僅僅須要少許配置便可完成打包。下面,我將分享安裝項目的「外掛」功能,以幫助讀者打造複雜安裝程序。

二 定製安裝對話框

  在定義安裝程序安裝界面時,VS爲咱們內置了多種界面。但對於複雜需求來說,咱們會發現VS提供的安裝對話框沒法知足當前的需求,此時就須要咱們來自定義安裝對話框了。遺憾的是該功能不能在VS裏操做,而是須要藉助「Orca」來完成。Orca是一款由微軟提供的用於Windows Installer數據庫表的編輯器,是VS附帶的工具,但默認不會安裝,能夠在「\%Program Files%\Microsoft SDKs\Windows\v6.0A\bin」(筆者安裝的是VS2008,VS2010的路徑與之相似)下找到該工具的安裝包。

  安裝對話框被安裝在VS安裝目錄下的Common7\Tools\Deployment\VsdDialogs子目錄,擴展名爲wid。打開該目錄,看到的是複數個以數字命名的子目錄,裏面的東西都差很少,它們表明了不一樣語言版本,其中有三個目錄須要注意:第一,「0」目錄下的對話框是咱們自定義對話框的「基類」,它們是語言中性的;第二,「1033」目錄爲英語專用;第三,「2052」爲中文專用。打開任意子目錄,咱們能夠看到以wid爲擴展名的文件,這就是咱們在VS中看到的安裝對話框。

  用Orca打開VsdCustomText3Dlg.wid,能夠查看「預置三個文本框的對話框」的相關表設置,以下:

  其它表還包括:

  • ModuleDialog:定義對話框的現實信息。
  • ModuleSignature:定義簽名。
  • ModuleInstallExecuteSequence:定義了一些操做這些操做將合併到主安裝程序的InstallExecuteSequence中。
  • ModuleInstallUISequence:定義了一些操做這些操做將合併到主安裝程序的InstallUISequence中。

  定義對話框的通常步驟以下:

  • Step 1:從0目錄中,已定義好的對話框中複製一個副本,並用於修改(我喜歡直接用2052的,這樣就不用設置語言了)。
  • Step 2:用Orca打開原型,經過修改相關表數據,來改變UI界面(具體用法參考示例)。
  • Step 3:查看預覽效果。
  • Step 4:將製做好的對話框文件複製到VS下了對應語言目錄。

  P.S.通過筆者嘗試,使用Ocra定義安裝對話框理論上是可行的,但實踐中可能只能知足簡單需求。筆者曾使用Ocra定義複雜對話框,並陷入相等痛苦的過程,Orca的項目均採用手工輸入,且資料有限,使用起來十分困難。因此筆者建議,若是是定義簡單對話框,請使用該方法,若是定義負責的對話框,除非對自身能力有足夠自信,不然誤嘗試。

三 安裝程序類

  在添加自定義操做時,咱們可使用腳本(例如:vbs),但對於大多數人來講,腳本可能比較陌生,安裝程序類使咱們可以以一種更熟悉的方式定義操做。

  自定義安裝程序類須要一些步驟:

  • Step 1:引用System.Configuration.Install命名空間,定義安裝類並繼承Installer類。(VS新建項包括「安裝程序類」模版。)
  • Step 2:爲該類聲明[RunInstaller(true)]特性。
  • Step 3:重寫Install類中的方法(包括「安裝」、「提交」、「回滾」、「卸載」)。

  具體用法請參考MSDN。

 四 總結

  在實際使用中,對於簡單界面咱們只需用使用內置的安裝對話框便可,若是須要使用與內置對話框相似的,但有少量區別的,可使用Orca定製對話框,但大多數狀況,咱們的安裝對話框會比較複雜,這時最簡單的方法是使用WinFrom窗體。篇幅有限,本文再也不贅述具體實例,讀者能夠參考MSDN或其餘技術社區關於「安裝時使用自定義操做建立數據庫」的相關主題。

相關文章
相關標籤/搜索