我使用一个名为MSICREATE程序来生成一个软件MSI软件包。 然后我用ORCA改造MSI软件包。 事情的工作确定,但在安装更新之前,用户必须删除现有的产品。 我想修改MSI包,以便安装程序可以识别正在安装一个较新的或不同的版本,并删除当前版本,然后安装新的MSI软件包。
什么属性表项需要的?
=========
下面给出的答案帮助我获得超出我原来的问题,我感谢西普里安他的帮助。 我的主要升级微星现在删除现有的产品,但不完全重新安装该产品。 我的产品包含的一些文本文件,帮助文件和.exe文件。 .exe文件不重新安装。
不管它的价值,我补充回答下面,总结了我加入到我的MSI使用奥尔塞。
我不知道MSICREATE如何处理的升级方案。 但是你可以做到这一点使用ORCA。 下面是从MSDN一个详细的升级例子。
长话短说双方你的包必须共享的UpgradeCode 。 你还必须笔者在一个条目升级表第二包。
下面是我添加到我的微星采用逆戟鲸,以实现重大升级的事情。 正如我上面说我仍然有我的.exe文件是不是一个重大升级重新安装的问题。 如果一个人做了修复.exe文件被添加。
InstallExecuteSequence表
- 加入FindRelatedProducts与序列400
- 加入RemoveExistingProducts与序列1450
InstallUISequence表
- 加入FindRelatedProducts与序列200
PropertyTable
- 加入RemovePreviousVersions TRUE
- 新增SECURECUSTOMPROPERTIES SOLARUPGRADE
- 曾与GUID一个现有的UpgradeCode通过MSICREATE创建
- 有一个现有的ProductVersion 12.2.12.0创建了MSICREATE
增加了一个升级表
- 的UpgradeCode相同的值属性表升级
- VersionMin空
- VersionMax 99.12.31
- 属性1
- ActionProperty SOLARUPGRADE(在属性表中的值相同SECURECUSTOMPROPERTIES)
我也分配比以前安装的产品提供了新PackageCode和新的产品代码,因此新的MSI有PackageCode,产品代码的不同值,和的ProductVersion。