Wix 升级和打包
如何选择一个合适的升级的类型
major upgrade
最简单,它就是一个完整的MSI,就像另一个安装包一样,包含原来安装包的所有内容,唯一不同它检测
一个旧的版本,然后卸载它。
它变化ProductCode,来表示它是一个完全新的版本,然而为了表示它还是一个类型的产品,保持它的UpgradeCode.
minor upgrade
不卸载原来的版本,只是升级已经存在的文件,它用来修改bug,或者是添加新Feature或是新Component,只修改版本号,
而不去修改ProductCode
发布的时候使用(.msp)
small update
它是一个minor upgrade 的一部分,由于它的修改更小,连版本号都不修改
详细
major upgrade
加入一个<Upgrade>标签,里面放入查找old版本的信息
放入要查找的版本在一个 <UpgradeVersion>,里面可以放入查找的版本范围。语言等信息,如果match,
那么将会在安装新版本之前删除这个版本
注意要在InstallExecuteSequence中放入RemoveExistingProducts,但是一定要在After InstallFinalize
minor upgrade
一般会以.msp来发布,它一般不会删除之前的版本,它仅仅替换到已经存在的文件,你可以使用原来的工程,仅仅修改Product的Version
它不应该属于这个工程,它应该是一个单独的脚本,
它一Patch来做Root,同时它里面有一个PatchFamily节点,里面放了一个ComponetRef来表示这个Patch 的更新部分,
它的编译链接很不同,它会编译新旧两个版本的,获取两个.winpdb文件,加上这个编写的wxs的脚本(Patch),通过编译以后获取一个msp文件,
它是一个MSI文件,可以直接安装,但它仅仅包含的是变化的部分。
最后一个基本上不会被采用,所以small update就不细说
如何选择一个合适的升级的类型
major upgrade
最简单,它就是一个完整的MSI,就像另一个安装包一样,包含原来安装包的所有内容,唯一不同它检测
一个旧的版本,然后卸载它。
它变化ProductCode,来表示它是一个完全新的版本,然而为了表示它还是一个类型的产品,保持它的UpgradeCode.
minor upgrade
不卸载原来的版本,只是升级已经存在的文件,它用来修改bug,或者是添加新Feature或是新Component,只修改版本号,
而不去修改ProductCode
发布的时候使用(.msp)
small update
它是一个minor upgrade 的一部分,由于它的修改更小,连版本号都不修改
详细
major upgrade
加入一个<Upgrade>标签,里面放入查找old版本的信息
放入要查找的版本在一个 <UpgradeVersion>,里面可以放入查找的版本范围。语言等信息,如果match,
那么将会在安装新版本之前删除这个版本
注意要在InstallExecuteSequence中放入RemoveExistingProducts,但是一定要在After InstallFinalize
minor upgrade
一般会以.msp来发布,它一般不会删除之前的版本,它仅仅替换到已经存在的文件,你可以使用原来的工程,仅仅修改Product的Version
它不应该属于这个工程,它应该是一个单独的脚本,
它一Patch来做Root,同时它里面有一个PatchFamily节点,里面放了一个ComponetRef来表示这个Patch 的更新部分,
它的编译链接很不同,它会编译新旧两个版本的,获取两个.winpdb文件,加上这个编写的wxs的脚本(Patch),通过编译以后获取一个msp文件,
它是一个MSI文件,可以直接安装,但它仅仅包含的是变化的部分。
最后一个基本上不会被采用,所以small update就不细说