Exécutez le fichier de commandes dans le programme d'installation de Windows s'Engager
Je vais avoir pas de succès dans la modification d'un programme d'installation de Windows MSI pour exécuter un fichier de commandes après la sortie principale a été installé. J'ai cherché pour cela et trouvé beaucoup de suggestions, mais rien qui fonctionne.
- Ajouter une Action Personnalisée
- actions Personnalisées ne peuvent être des fichiers exécutables. Un lot de fichier n'est pas exécutable.
- Créer un Windows Scripting Host exécutable qui s'exécute le fichier de commandes
- Beaucoup de gens ont essayé de le faire, y compris sur DONC, et personne n'a été en mesure d'obtenir que cela fonctionne.
- Utiliser WIX ou InstallShield
- je n'ai pas le temps ni le pouvoir de changer de société de technologie de l'installateur.
- Modifier le .msi avec l'Orca et ajouter une propriété personnalisée, puis une action personnalisée, puis éditer le InstallExecuteSequence, ...
- j'ai essayé ce pendant des heures et ont créé des installateurs de jeter un système de message d'erreur quand je les exécuter.
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez dit ci-dessus est incorrecte:
Actions personnalisées (même sans l'aide d'outils comme InstallShield) peut être .EXE, VBScript, JScript, ou DLL de base. Si vous écrivez une DLL, vous pouvez écrire le code que vous voulez l'appeler un fichier de commandes ou de faire toutes les modifications que vous souhaitez à ce système, il n'y a pas de limite.
Mise à jour: un exemple qui a fonctionné pour moi: (entrée dans la table CustomAction)
J'ai été en mesure de résoudre ce problème en créant un fichier EXE qui est constituée essentiellement de:
L'ajout de l'EXE du fichier MSI puis en l'exécutant en tant qu'action personnalisée.
Alors que la réponse suggérée par "William Leara" est un très bon début, j'ai trouvé une meilleure solution ici la peine de mentionner.
Un autre avantage de cette méthode est que vous pouvez mettre votre fichier de commandes dans l'installation de l'application un dossier plutôt qu'à la racine de C dossier, mais nous utiliser des indicateurs de reporter l'exécution d'après FileCopy action, nous utilisons également noImpersonate ont plus de privilèges nécessaires à l'exécution de Fichiers de Programme
Quelques remarques:
Ce sont mes deux actions personnalisées. Dans mon cas, je veux de la force natif processeur de commande pour corriger quelques entrées de registre donc je ne l'utilise pas COMSPEC.
Première action (type 50) exécute la commande dans la Source avec des arguments d'entrée de la Cible, car le Type est 50+1024+2048 il est à action différée avec noImpersonate drapeau.
Deuxième action définit NCOM bien immédiatement:
Ensuite, vous devez ajouter ces actions à InstallExecuteSequence:
Et celui-ci:
Noter que dans mon cas, j'ai pu facilement ajuster les actions reg.exe l'importation de Correction.reg trop.
Finalement, on peut utiliser msitran comme l'a suggéré ici dans un post-construction d'automatiser la procédure.
Faire un EXE qui fait temporaire .le fichier bat pour changer le n'importe quel répertoire vous voulez et
CALL
un autre fichier bat qui fait ce que vous avez besoin.Dire l'action personnalisée à utiliser que exe.
Le premier argument d'un RPC exe est le chemin vers l'exécutable lui-même. Ceci peut être utilisé pour orienter soi-même, et que cette information peut être utilisé dans la fabrication de la temporaire de .chauve-souris
Dans mon cas, j'ai ajouté des "Actions Personnalisées".
Le dossier "Installer" choisir "Ajouter une action personnalisée"
Choisir cmd.exe (c:\windows\system32\cmd.exe)
Ensuite dans les propriétés de cmd.exe modifier les "Arguments" de
"/Install /c C:\myApp.exe --exec-certains-action"