繁体   English   中英

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

[英]MSI / Wix installer, install or upgrade

我设法创建了一个可以安装或升级我的产品的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元素,它将按您的意愿进行操作,允许升级但不能降级。 如果您不想这样做,请在UI序列中运行FindRelatedProducts之后在某处显示消息(或将它们添加到对话框)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM