Wix – Comment exécuter des fichiers exe après l’installation à partir du répertoire installé?

J’utilise un programme en cours d’installation avec wix. (Je ne sais pas si c’est pertinent, mais c’est un programme C #)

Je veux exécuter un fichier exe qui a été installé par le fichier msi, mais l’emplacement de l’installation m’est inconnu car l’utilisateur choisit le chemin d’installation.

Je voulais demander par exemple comment exécuter un fichier exe à partir de l’emplacement choisi par l’utilisateur.

Même si cela ne fait pas partie de la question, je serais également ravi de voir quelques exemples d’exécuter un fichier exe à partir d’un emplacement absolu puisque je suis débutant avec wix et que je fais tout pour la première fois.

Ceci peut être réalisé à l’aide des extensions WIX. Le texte en gras / italique ci-dessous vous aidera à trouver l’emplacement exact de votre fichier EXE 🙂

Étape 1: Ajoutez les bibliothèques d’extension à votre projet

Si vous utilisez WiX sur la ligne de commande, vous devez append les éléments suivants à vos lignes de commande candle and light:

-ext WixUIExtension -ext WixUtilExtension 

Si vous utilisez Visual Studio, vous pouvez append les extensions à l’aide de la boîte de dialog Ajouter une référence:

 Right click on your project in Solution Explorer and select Add Reference... Select the WixUIExtension.dll assembly from the list and click Add Select the WixUtilExtension.dll assembly from the list and click Add Close the Add Reference dialog 

Étape 2: Ajouter l’interface utilisateur à votre installateur

La séquence d’interface utilisateur minimale WiX comprend un ensemble de base de boîtes de dialog comprenant une boîte de dialog terminée avec une case à cocher facultative. Pour inclure la séquence dans votre projet, ajoutez l’extrait suivant n’importe où dans l’élément .

    

Pour afficher la case à cocher sur le dernier écran du programme d’installation, incluez l’extrait de code suivant n’importe où dans l’élément :

  

La propriété WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT est fournie par la séquence d’interface utilisateur standard qui, lorsqu’elle est définie, affiche la case à cocher et utilise la valeur spécifiée en tant que libellé.

Étape 3: inclure l’action personnalisée

Les actions personnalisées sont incluses dans un projet WiX utilisant l’élément. L’exécution d’une application est accomplie avec l’action personnalisée WixShellExecTarget. Pour informer Windows Installer de l’action personnalisée et définir ses propriétés, incluez les éléments suivants dans votre projet n’importe où dans l’élément :

   

L’élément Property définit WixShellExecTarget sur l’emplacement de l’application installée. WixShellExecTarget est la propriété Id de l’action personnalisée WixShellExec qui sera définie sur l’emplacement du fichier à exécuter. *

La propriété Value utilise le caractère # spécial pour indiquer à WiX de rechercher le chemin d’installation complet du fichier avec l’identifiant myapplication.exe.


L’élément CustomAction inclut l’action dans le programme d’installation. Un identifiant unique lui est atsortingbué et les propriétés BinaryKey et DllEntry indiquent l’assembly et le point d’entrée de l’action personnalisée. La propriété Impersonate indique à Windows Installer d’exécuter l’action personnalisée en tant qu’utilisateur installant.

Étape 4: Déclenchez l’action personnalisée

Le simple fait d’inclure l’action personnalisée, comme à l’étape 3, ne suffit pas pour la faire fonctionner. Windows Installer doit également être informé du moment où l’action personnalisée doit être déclenchée. Pour ce faire, utilisez l’élément pour l’append aux actions exécutées lorsque l’utilisateur clique sur le bouton Terminé de la dernière page des boîtes de dialog de l’interface utilisateur. L’élément Publish doit être inclus dans l’élément de l’étape 2 et se présente comme suit:

 WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed 

La propriété Dialog spécifie la boîte de dialog à laquelle l’action personnalisée sera attachée, dans ce cas, ExitDialog. La propriété Control indique que le bouton Terminer de la boîte de dialog déclenche l’action personnalisée. La propriété Event indique qu’une action personnalisée doit être exécutée lorsque l’utilisateur clique sur le bouton. La propriété Value spécifie l’action personnalisée incluse à l’étape 3. La condition sur l’élément empêche l’exécution de l’action à moins que la case à cocher de l’étape 2 ne soit cochée. et l’application a été réellement installée (au lieu d’être supprimée ou réparée).

Vérifiez ce lien pour plus de détails. Comment faire pour exécuter exe après l’installation . Je l’ai copié ici pour le bénéfice des autres à la recherche de la même réponse.

La réponse Isaiah4110 n’est pas la meilleure solution si vous n’avez pas besoin de l’assurance-chômage.

Le moyen le plus simple d’exécuter le fichier exe que vous installez via msi et produit par Wix est avec une action personnalisée de type 18 (identifiant l’action par FileKey), voici un exemple complet:

         NOT Installed