How do I distinguish between a normal install and an upgrade in WIX?

前端 未结 1 837
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-28 22:41

I have some custom actions that I only want to execute in an upgrade scenario.

I am trying to set some properties, for example \"MYPROPERTY\"... When I come in via a

相关标签:
1条回答
  • 2020-12-28 22:50

    I use this in all my setups:

        <SetProperty After="FindRelatedProducts" Id="FirstInstall" Value="true">
            NOT Installed AND NOT WIX_UPGRADE_DETECTED AND NOT WIX_DOWNGRADE_DETECTED
        </SetProperty>
        <SetProperty After="SetFirstInstall" Id="Upgrading" Value="true">
            WIX_UPGRADE_DETECTED AND NOT (REMOVE="ALL")
        </SetProperty>
        <SetProperty After="RemoveExistingProducts" Id="RemovingForUpgrade" Sequence="execute" Value="true">
            (REMOVE="ALL") AND UPGRADINGPRODUCTCODE
        </SetProperty>
        <SetProperty After="SetUpgrading" Id="Uninstalling" Value="true">
            Installed AND (REMOVE="ALL") AND NOT (WIX_UPGRADE_DETECTED OR UPGRADINGPRODUCTCODE)
        </SetProperty>
        <SetProperty After="SetUninstalling" Id="Maintenance" Value="true">
            Installed AND NOT Upgrading AND NOT Uninstalling AND NOT UPGRADINGPRODUCTCODE
        </SetProperty>
    

    You can then schedule your custom action to only run on upgrades:

    <Custom Action="NameOfCustomAction" Before="InstallFinalize"><![CDATA[Upgrading= "true"]]></Custom>
    
    0 讨论(0)
提交回复
热议问题