2017-02-27 2 views
0

Comment puis-je configurer une action personnalisée pour exécuter mon application lorsque l'installation est terminée et que "la version la plus récente est déjà installée"? Ce que je veux: Si une nouvelle version est installée, il suffit de l'exécuter. Exécutez l'application toujours sauf la suppression.Wix Exécuter une action personnalisée lorsque "Nouvelle version est installée"

Ma configuration:

<CustomAction Id="LaunchApplication" Directory='INSTALLFOLDER' ExeCommand="[INSTALLFOLDER]\MyApp.exe" 
       Return="asyncNoWait" /> 

<InstallExecuteSequence> 
    <Custom Action="LaunchApplication" After="InstallFinalize">NOT (REMOVE="ALL")</Custom> 
</InstallExecuteSequence> 

Merci

+0

Le message est généré lors de l'évaluation de la détection. Votre action personnalisée ne sera jamais exécutée. Pourquoi vous essayez d'exécuter une application si quelqu'un essaie d'installer une version inférieure du programme d'installation? –

+0

Je veux exécuter la version qui est déjà installée (plus récente) – kadralievr

+0

Pouvez-vous poster votre élément de mise à niveau? Le message "version la plus récente est déjà installée" s'affiche lorsque vous essayez d'installer une version antérieure. Ce n'est pas clair pour moi ce que vous essayez de faire. –

Répondre

0

résolus avec journaux: app.msi /l*v log.txt

configuration de travail:

<CustomAction Id="LaunchApplication" Directory='INSTALLFOLDER' ExeCommand="[INSTALLFOLDER]\MyApp.exe" 
       Return="asyncNoWait" /> 
<CustomAction Id="SetLaunchApplicationPath" Property="LaunchApplicationPath" Value="[ProgramFilesFolder][Manufacturer]\[ProductName]\MyApp.exe"> 
</CustomAction> 
<CustomAction Id="LaunchApplicationOnDowngrade" ExeCommand="[SetLaunchApplicationPath]" Property="LaunchApplicationPath" 
       Return="asyncNoWait" /> 

<InstallUISequence > 
    <Custom Action="SetLaunchApplicationPath" After="FindRelatedProducts">WIX_DOWNGRADE_DETECTED</Custom> 
    <Custom Action="LaunchApplicationOnDowngrade" After="SetLaunchApplicationPath">LaunchApplicationPath</Custom> 
</InstallUISequence> 
<InstallExecuteSequence> 
    <Custom Action="LaunchApplication" After="InstallFinalize" >NOT (REMOVE="ALL")</Custom> 
</InstallExecuteSequence> 

action LaunchApplication exécute lorsque l'installation/mise à jour terminée action LaunchAppli cationOnDowngrade s'exécute lorsque l'installation échoue lorsqu'une nouvelle version du produit est trouvée par FindRelatedProducts Action

J'utilise <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> pour configurer la mise à niveau.