2013-08-30 20 views
5

Mam kilka niestandardowych działań, które chcę wykonać tylko w scenariuszu aktualizacji.Jak odróżnić normalną instalację od aktualizacji w WIX?

Próbuję ustawić pewne właściwości, na przykład „myProperty” ... Kiedy przyjść za pomocą standardowej instalacji, mogę je ustawić, a przykładem tego XML jest następujący ...

<Custom Action="SetMyPropertyToOn" After="exampleActionRuuningBeforeThisOne"> (ENABLEMYPROPERTY_CB) AND (NOT ENABLEMYPROPERTY_CB="0") AND (NOT ENABLEMYPROPERTY) AND (NOT Installed)</Custom> 

Działa w normalnej instalacji ... Chciałbym również, aby działał w scenariuszu aktualizacji.

+0

ważne uaktualnienie lub Minor Upgrade? Jeśli wykonujesz drobną aktualizację, to Zainstalowana byłaby prawdziwa, a to by znaczyło fałsz. –

Odpowiedz

19

Używam tego na wszystkich moich ustawień:

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

Następnie można zaplanować niestandardowe działania, aby uruchomić tylko na rozbudowę:

<Custom Action="NameOfCustomAction" Before="InstallFinalize"><![CDATA[Upgrading= "true"]]></Custom> 
+0

Dzięki Natalie, mam tylko jeden mały problem z tym. Jakoś zawsze wydaje mi się, że dostaję się do części "FirstInstall", a potem pomijam resztę, nawet po aktualizacji ... Pozostali zawsze pomijają. – Slippy

+0

Dziwne, nigdy tego nie doświadczyłem. Czy mógłbyś opublikować swój plik dziennika, który mógłby pomóc? –

+4

Właściwości WIX_UPGRADE_DETECTED i WIX_DOWNGRADE_DETECTED zakładają, że został użyty element MajorUpgrade. Zdefiniowane przez użytkownika reguły uaktualnień mogą mieć różne nazwy ActionProperty, a niewielkie uaktualnienie w ogóle ich nie posiada. OP nie powiedział, jakiego rodzaju * ulepszenia robił. –