簡體   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