1 votes

Installer MSI via msiexec /i /qn

Je travaille sur un fichier MSI qui est capable d'installer 2 outils. Les deux outils sont installés à partir d'un fichier exe mais peuvent être lancés silencieusement avec des arguments comme /SI Je peux construire le projet sans problème, sans avertissement... La désinstallation fonctionne bien aussi. Si je double-clique sur mon fichier MSI, les deux logiciels sont installés sans problème.... puis je peux désinstaller sans problème ...

Mais si je lance mon fichier msi en utilisant msiexec /i mymsi.msi /qn cette fois-ci seul le premier logiciel TOOL-A est installé... puis rien d'autre. Vous pouvez voir ci-dessous ma configuration : Action personnalisée Tool-A

Tool-A Custom Actions:
Executable Filekey: setup.exe
Command Line: /SI
Return Processiong: Synchronous (check exit code)
In-Script Execution: Immediate Execution

Execution Scheduling: Execute only once
Install UI Sequence: After ExecuteAction
Install UI Condition: Not Installed
Install Exec Sequence: After InstallFinalize
Install Exec Condition: Not Installed
Advertise Exec Sequence: Absent from sequence
Admin UI Sequence: <Absent from sequence>
Admin Exec Sequence: <Absent from sequence>
MSI Type Number 274

Et pour le deuxième outil (jamais installé en utilisant MSIEXEC )

Tool-B custom action
Executable Filekey: setup.exe1
Command Line: /q
Return Processiong: Synchronous (check exit code)
In-Script Execution: Immediate Execution
Execution Scheduling: Execute only once
Install UI Sequence: After tool-A
Install UI Condition: Not Installed
Install Exec Sequence: After tool-A
Install Exec Condition: Not Installed
Advertise Exec Sequence: <Absent from sequence>
Admin UI Sequence: <Absent from sequence>
Admin Exec Sequence: <Absent from sequence>
MSI Type Number 274

Alors si quelqu'un peut m'aider ? Pour résumer : Si le MSI est lancé par double-clic no problemo : tool-A et tool-B sont installés ! Si j'utilise Msiexec /i mymsi.msi /qn seul l'outil-A est installé ! !!

0voto

Michael Urman Points 7526

Le fichier journal détaillé indique-t-il ce qui s'est passé ? ( msiexec /i mymsi.msi /qn /l*v verbose.log ) Je pense que l'outil B utilise un MSI pour s'installer, et ne peut donc pas s'installer en toute sécurité à partir de la séquence d'exécution. Même s'il indique un échec, lorsque vous exécutez avec /qn et planifiez après InstallFinalize, cela n'annulera pas l'installation externe. Bien sûr, s'il n'indique pas un échec, il sera difficile de dire ce qui se passe. Voyez peut-être si la ligne de commande de Tool-B prend en charge l'enregistrement d'une sorte de journal.

0voto

Ed. Points 709

Je suis d'accord avec Michael, vous verrez que l'installation de Tool-B utilise le service Windows Installer. Lorsque la séquence d'exécution de votre installation est exécutée, une transaction a lieu. Avant la version 4.5 de l'installateur, ce dernier ne permettait pas à deux transactions d'avoir lieu simultanément, ce qui empêche l'installation de Tool-B de s'exécuter.

À partir de la version 4.5, il y a une certaine magie qui rend cela possible. En fait, cela vous permet de dire à l'installateur : "Hé, cette autre transaction d'installation que je veux que vous effectuiez fait en réalité partie de ma transaction. Fusionnez donc les deux et traitez-les comme une seule transaction. Merci."

C'est le document auquel vous devez vous référer :

http://msdn.microsoft.com/en-us/library/bb736322%28VS.85%29.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X