2009-09-22 7 views
0

J'utilise WIX et ai utilisé avec succès une action personnalisée pour exécuter le fichier installé à la fin de l'installateur comme ceci:Comment exécuter un fichier installé par le module de fusion?

<CustomAction Id="LaunchAfterInstall" FileKey="foobar.exe" ExeCommand="parameters" Execute="immediate" Impersonate="yes" Return="asyncNoWait" /> 

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION"/> 

<UIRef Id="WixUI_InstallDir" /> 
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch Foobar." /> 
<UI> 
    <Publish Dialog="ExitDialog" Control="Finish" Order="1" Event="DoAction" Value="LaunchAfterInstall">WIXUI_EXITDIALOGOPTIONALCHECKBOX</Publish> 
</UI> 

Cela fonctionne bien lorsque foobar.exe est un composant dans le même fichier wxs. Cependant ce que je veux vraiment, c'est exécuter un fichier qui est installé par un module de fusion. Comment puis-je faire cela?

Je peux faire des changements dans le module de fusion, si cela aide les choses.

Répondre

0

j'ai changé l'action pour résoudre mon problème:

<CustomAction Id="LaunchAfterInstall" Directory="INSTALLLOCATION" ExeCommand="[INSTALLLOCATION]\foobar.exe" Execute="immediate" Impersonate="yes" Return="asyncNoWait" /> 
0

Vous pouvez également ouvrir le module de fusion dans Orca ou votre MSI après la construction est terminée (le module de fusion a été fusionné dans) et rechercher l'ID de fichier Ensuite, utilisez le fichier File.Id dans CustomAction.

Idéalement, le MSI ne doit pas faire référence au contenu du module de fusion puisque les modules de fusion sont censés être indépendants. Je comprends que cela ne fonctionne pas toujours de cette façon. :)

+0

Cela n'a pas fonctionné. J'ai essayé d'accéder au fichier en utilisant "décoré" (avec le GUID à la fin, copié d'Orca) ID de fichier, j'ai essayé de déplacer l'action pour fusionner le module, puis référence cette action en utilisant "décoré" id, mais compilateur WIX n'a ​​pas coopéré. –

+0

Si vous placez l'action dans le module de fusion, vous ne l'ajoutez pas décoré. Le compilateur le fera pour vous. –

Questions connexes