@Day18 | C# WixToolset + WPF 帅到不行的安装包 [系统更新]

安装

到客户端後,总该做系统的更新部分拉!

在更新之前先来简单的替换语法
在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


<<:  【设计+切版30天实作】|Day 4 - 参考Bootstrap画出理想的header(下集)

>>:  每日挑战,从Javascript面试题目了解一些你可能忽略的概念 - Day3

Day 12 :阵列(array)与链结串列(linked list)

讨论过这麽多种演算法之後,会发现操作时常常会使用阵列或是某些资料结构。资料结构是指电脑中管理资料的特...

【Day14】verilog 中的可综合语句

我们都知道 verilog 是一种硬体描述语言,所以目的就是要能综合出实际的电路,但实际上在 ve...

23.unity储存文字内容(List、foreach)

今天要用List来储存记事本内的对话资料 0.和昨天一样,先准备好对话.txt 1.写脚本,先检查有...

Week36 - 用 Apollo 快速架设 GraphQL Server [Server的终局之战系列]

大家好,GraphQL 是一个可以让 Client 弹性要求资料的技术,本文章将介绍Apollo S...

[C#] LeetCode 4. Median of Two Sorted Arrays 浅谈中位数

Given two sorted arrays nums1 and nums2 of size m ...