在主要升级期间提示用户进行版本升级

时间:2015-08-21 06:58:05

标签: wix windows-installer wix3.8

我使用WIX构建了一个msi安装程序。根据要求,我必须为下一个版本进行升级。所以,我检查了升级,升级类型,其实施步骤,发现主要升级将适合我们。因此,根据步骤,我更改了项目主.wxs文件中的包代码,产品代码和版本号(增加版本),并生成正确升级的构建(为此我在注册表,控制面板等中检查了...) 。

主要升级版本正在正常迁移功能,但用户无需了解安装程序是否正在升级或执行全新安装。我期待一条消息,例如“设置已从v1.0.0.0升级到v2.0.0.0。你想继续”,因为用户正在安装。

注意:在我的项目中,我只有2个自定义对话框,其他所有对话框(e.x.欢迎对话框,EULA对话框,InstallDir对话框等等)默认来自WixUIExtension.dll。

我探索了几个链接&有关主要升级的博客,但我没有得到与此相关的正确解决方案。请分享您的宝贵意见和评论这是什么最好的方式/做法。

2 个答案:

答案 0 :(得分:0)

您可以通过检查UPGRADINGPRODUCTCODE属性来检测主要升级。然后,您需要一个自定义操作来查询MSI以获取该已安装产品的ProductVersion。最后,您必须询问用户并继续或中止。

您打算如何处理静音安装?只是自动进行或要求他们传递AGREETOUPGRADE = 1?

等属性

答案 1 :(得分:0)

当您进行主要升级时,假设您使用的是WiX majorupgrade标记,则会设置WIX_UPGRADE_DETECTED属性。您可以使用它来调节要显示的对话框。该属性值将是旧产品的ProductCode,因此您可以执行类似MsiGetProductInfo(ProductCode,.... INSTALLPROPERTY_VERSIONSTRING ....)的操作来获取其版本。该对话框可能需要取消才能中止升级。

您可能会遇到问题,因为检索ProductVersion可能需要提升。一般来说,没有人愿意验证这样的升级,因为您的客户比这更聪明。他们知道安装是否正在升级新产品,问题越少,问题就越快。