iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
Software Development

@30天 | C# WixToolset + WPF 帥到不行的安裝包系列 第 19

@Day19 | C# WixToolset + WPF 帥到不行的安裝包 [Bootstrapper-基礎介紹]

  • 分享至 

  • xImage
  •  

前幾天

的分享,都是為了搞懂WixToolset裡面基本功能,
接下來是我們要介接WPF的"中介功能",
WixToolset的 Bootstrapper
雖然他不只是中介而已XD,

我們新增一個Bootstrapper專案 "DemoUse.Bootstrapper"

我們打開唯一的Bundle.wxs檔看一下

內容很像我們在安裝包裡面的Product.wxs
但裡面要丟的東西是指我們打包好的安裝檔,
當然Todo的意思是就是其他.msi檔也可以一起放入,
也就是安裝集合工具的意思!

先將我們的安裝檔給參考進去

然後我們加入這段在Chain標籤內

  <MsiPackage Id="DemoInstaller"
  SourceFile="$(var.DemoUse.Installer.TargetDir)DemoUse.Installer.msi" 
                  Compressed="yes" DisplayInternalUI="yes" Visible="yes" />

DisplayInternalUI這個看就知道是說要不要顯示UI介面,之後我們要改成WPF的情況下,就要改成no
而上面的Manufacturer也要記得填寫,不然會出錯!
就像這樣↓↓↓

都設定好了以後,這次我們用Bootstrapper專案建置的來看結果。

他會先顯示Bootstrapper 的頁面

打勾同意後會跳出我們Demo的安裝包

我們安裝到底了以後去新增移除程式看一下

若直接移除Bootstrapper的情況下,
底下的DemoUse.Installer也會一併移除,

但這個在我只把它當作WPF的中介工具時感覺並不是那麼美好,
畢竟我目前也只有一個安裝程式,
出現兩個就會有一種多此一舉的感覺

所以我們在Bundle後面加上兩個參數

DisableModify="yes" DisableRemove="yes"

再次安裝後,就只剩下我們目前的安裝程式了!



  • 後記

在安裝時若沒有隱藏掉Bootstrapper,
安裝後,如果用菜單的移除按鈕,
是只有Installer的程式被移除掉唷!

那如果你有多個msi檔,然後想做一鍵移除所有的安裝包,
就必須要額外將Bootstrapper移除的功能加進菜單,
恩~我想內建應該也會有這個功能...
只是我沒用到XD所以我沒研究了,哈哈!

Day19程式碼
https://github.com/Aslan7826/defaultMVC/commits/Day19


上一篇
@Day18 | C# WixToolset + WPF 帥到不行的安裝包 [系統更新]
下一篇
@Day20 | C# WixToolset + WPF 帥到不行的安裝包 [Bootstrapper-安裝前的系統檢測]
系列文
@30天 | C# WixToolset + WPF 帥到不行的安裝包30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言