iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
Software Development

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

@Day18 | C# WixToolset + WPF 帥到不行的安裝包 [系統更新]

  • 分享至 

  • xImage
  •  

安裝

到客戶端後,總該做系統的更新部分拉!

在更新之前先來簡單的替換語法
在google 功能時,總會有一些$(var.xxx)的告知,除了官方定義好的,
很多都是自訂的部分,我們現在也來一個$(var.Version)的自訂參數,
我們在Product內的Version,1.0.0.0修改成$(var.Version)

然後我們在專案上面右鍵屬性
在Build的頁面 打上Version = 1.0.0 這樣

這樣就可以自訂了所需要的參數


WixToolset 有幾個更新系統的方法

1.小功能更新(Small updates)
2.大版本更新(Major upgrades)
3.升級補丁包(Minor upgrades And Small updates)

我們先講大版本更新(Major upgrades)
主要就是能夠刪除舊版本,安裝新版本的方式,
不用我們手動去做移除的動作,

我們加入這段程式碼在Product.wxs 內就可以做到

  <Fragment>
    <Upgrade Id="c838fc64-a406-4645-acd2-de581c7cfed9">
       <UpgradeVersion OnlyDetect="no" Property="PREVIOUSFOUND" 
          Minimum="1.0.0" IncludeMinimum="yes" 
          Maximum="$(var.Version)" IncludeMaximum="no" />
    </Upgrade>
  </Fragment>

PREVIOUSFOUND:針對舊版本的部分
OnlyDetect:no=刪除,yes=不刪
Minimum:最小版本
Upgrade 的Id使用我們Product裡面的UpgradeCode


設定好了以後
我們先安裝一個版本為1.0.0的Demo程式

之後
我們再改成版本號 1.0.1的Demo程式安裝上去

這時候會發現我們1.0.0版本就會移除掉了

如果我們再重裝1.0.0上去,這時候安裝
就會被擋住

主要擋住的部分是最一開始Product.wxs預設的語法,
所以如果有舊版本安裝就直接用這段當檢測就行了!

如果我們是用4個數字組的版本號了話1.0.0.0
WixToolset內建設定好了,如果是改最後1碼,就是變成小功能更新(Small updates)的方式,
實際上我們安裝好1.0.0.0後,再裝1.0.0.1後,
安裝完成會直接變成重疊的樣式!



  • 後記

升級補丁包的安裝方式,
因為看起來很麻煩,
所以我...沒有嘗試過XD

可以參考這篇
https://developer.aliyun.com/article/265819

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


上一篇
@Day17 | C# WixToolset + WPF 帥到不行的安裝包 [系統上的授權書]
下一篇
@Day19 | C# WixToolset + WPF 帥到不行的安裝包 [Bootstrapper-基礎介紹]
系列文
@30天 | C# WixToolset + WPF 帥到不行的安裝包30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言