天天看點

Wix 安裝部署教程(三)自定義安裝界面和行為

         接上一篇自定義安裝界面,這篇繼續探索,首先介紹下,Wix為我們定義了五種風格,每種風格的UI都是有一定順序的。我們可以改變安裝順序,也可以完全自定義一個Dialog插入其中。比如Wix_Mondo 風格的順序就如下,但不一定每個dialog會在安裝的時候展示。

Wix 安裝部署教程(三)自定義安裝界面和行為
Wix 安裝部署教程(三)自定義安裝界面和行為

View Code

 五、改變UI界面的安裝順序

      1)将源碼中Fragment中的内容全部copy到Product 元素中 一個ui和一個uiref元素

      2)删除兩個與LicenseAgreementDlg 相關的Publish 元素,pubulish元素定義了頁面了上一步,下一步這些操作。Event="NewDialog" 表示打開一個對話框,value就表示,需要打開的對話框Id。

      3)然後同理改變WelcomeDlg和下一步和SetupTypeDlg的上一步 互相在value中指向彼此。  

      4)  這個時候出現了兩個Id="WixUI_Mondo ,将之前UI中的<UIRef Id="WixUI_Mondo" /> 注釋掉就可以了。 

      再次安裝,就不再出現許可證書頁面了。

    全部的代碼如下,我們也可以留意下源碼中publish元素中的text 其實就是個條件表達式,1就是執行,還有or。 NOT Installed AND NOT PATCH表示沒有安裝也沒有打更新檔。 等等

Wix 安裝部署教程(三)自定義安裝界面和行為
Wix 安裝部署教程(三)自定義安裝界面和行為

六、自定義Dialog 

    在找到WixUI_Mondo.wxs 的源碼檔案夾中,随便找一個名字中有Dlg的wxs檔案,丢到vs中就可以看見一個Dlg 是個什麼樣的結構。 比如LicenseAgreementDlg.wxs 的源碼如下

Wix 安裝部署教程(三)自定義安裝界面和行為
Wix 安裝部署教程(三)自定義安裝界面和行為

  Control 是個主要的元素,相當于vs中的控件了。但這裡是個統稱,通過Type也決定這個是一個lable 還是個text(edit) type的類型有  Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo,  DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text,   VolumeCostList, VolumeSelectCombo  , 需要定義類型,位置,大小,文本。

     自定義一個頁面插入進去,需要兩步。

    1.先建立一個wxs檔案,右鍵 添加 建立項 選擇Installer File 。命名為SpecialDlg 修改為

   這就是個簡單的對話框,因為不像html或者wpf 那麼直覺,這個看起來确實有點不“形象”   ,生成就是如下的樣子。  我們可以看line text title 各自對應的地方

Wix 安裝部署教程(三)自定義安裝界面和行為

  千萬不要少了 下面的兩個按鈕,不然安裝到這就傻眼了。 這隻是個簡單的頁面,但我們如何加入到安裝目錄中呢,需要第二步 

  2. 插入到安裝順序中,我們先把之前的UI順序複原,把LicenseAgreementDlg 還原在WelcomeDlg後面,再在這兩者之間插入上面的SpecialDlg 。修改Product中的publish元素 

  當然,需要複雜的界面,還需要加入自定義的行為,比如讓使用者輸入再檢測,并調用dll中的方法,這寫wix都是可以做到的。

 今天關于自定義界面的就到這裡,明天繼續。

 如過你覺得對你有幫助,就頂一個吧。

繼續閱讀