MSI/Wix安装程序,安装或升级



我设法创建了一个MSI,可以安装或升级我的产品。但我想更进一步,显示消息,如您的版本已经是最新的/已安装更高版本

为了做到这一点,我把它放在我的代码中:

<Upgrade Id="{{MYGUID}}">
    <UpgradeVersion Minimum = "0.0.0"
                    Maximum = "{{MY_CURRENT_VERSION}}
                    IncludeMinimum="Yes"
                    IncludeMaximum="No"
                    Property="UPGRADEOLDERVERSION"/>
    <UpgradeVersion Minimum = "{{MY_CURRENT_VERSION}}
                   OnlyDetect = "Yes"
                   IncludeMinimum = "Yes" 
                   Property="UPTODATE"/>
    <UpgradeVersion Minimum = "{{MY_CURRENT_VERSION}}"
                    Maximum = "99.99.99"
                    IncludeMinimum="No"
                    IncludeMaximum="No"
                    Property="UPPERVERSIONINSTALLED"/>
</Upgrade>
<Condition Message = "Already up to date">UPTODATE</Condition>
<Condition Message = "Upper version already installed">UPPERVERSIONINSTALLED</Condition>

而且效果很好。但问题是,如果不是这样的话,我希望安装软件,通过添加这些Condition,每当我试图安装软件时,都会弹出消息,不允许我安装软件,除非我删除了这些。

这个想法是做一些类似的事情

if(not installed) 
    # Apply the update rules
else
    install soft

我该怎么做?谢谢

请记住,您不能两次安装同一个MSI,以防这就是您的"已更新"消息。无论如何,您不能使用从升级派生的属性作为启动条件,因为只有在启动条件之后运行FindRelatedProducts操作才能解决升级(或不升级)的问题。因此,您的属性没有值(=false)并阻止安装。

简单的答案是,我认为如果你使用WiX MajorUpgrade元素,它会做你想做的事情,允许升级,但不允许降级。如果您不想这样做,请在FindRelatedProducts在UI序列中运行后的某个位置显示消息(或将消息添加到对话框中)。

相关内容

  • 没有找到相关文章

最新更新