Question

Pour une raison quelconque, nous livrez un produit avec notre propre installation en mode graphique, cela signifie, nous allons exécuter l'installation msi arrière-plan en silence.

En utilisant l'API MSI « MsiInstallProduct », je peux installer le produit en mode silencieux, mais je ne sais pas comment puis-je obtenir les données de progression de cette installation et comment puis-je annuler.

Tout le monde a des idées?

Était-ce utile?

La solution

Voici un exemple de projet qui semble faire ce que vous faites référence: http://www.codeproject.com/KB/cs/msiinterop.aspx

Autres conseils

Mise à jour Juin 2018 : Bien que l'outil ci-dessous est plus disponible pour le téléchargement, je l'ai trouvé via Wayback machine. Je suppose qu'il est correct et légal de créer un lien vers elle, car l'outil est un freeware. liens mis à jour ci-dessous.

UPDATE : Cet outil de Sage est malheureusement pas téléchargeable plus . Je ne sais pas si elle est OK pour le distribuer soit. Il semblait être un outil gratuit distribué dans le cadre de leur principale Suite Studio Wise Package, mais je ne pense pas qu'il est open source. Je souhaite qu'ils libéreraient comme un outil open source.

Les produits d'emballage Wise ont été abandonnées en raison d'un certain nombre de questions juridiques .


Je crois que vous pouvez obtenir les progrès via l'API MSI, mais si je vous, je voudrais juste montrer la barre de progression du MSI lui-même après avoir invoqué l'installation via msiexec.exe .

MSI prend en charge plusieurs niveaux d'installation (complète, complètement silencieux, l'interface graphique de base, l'interface graphique réduite etc ...). Dans votre cas, il semble que vous voulez une interface utilisateur de base. On obtient ainsi une barre de progression où vous pouvez masquer le bouton d'annulation, et éventuellement afficher une boîte de dialogue modale d'achèvement:

Installation silencieuse avec barre de progression, pas de bouton annuler et aucun dialogue modale à la fin:

msiexec.exe /I "Test.msi" /QB-!

Pour éviter d'avoir à construire ces lignes de commande MSIEXEC stupides manuellement, utiliser le générateur de ligne de commande msi outil Wise: http://www2.wise.com/filelib/WICLB.exe ( ressuscitant Wayback Machine ).

S'il vous plaît lancer le téléchargement par virustotal.com pour la sécurité.

entrer image description ici


Related :

Vous devez spécifier un gestionnaire d'interface utilisateur externe à l'aide MsiSetExternalUI ou MsiSetExternalUIRecord avant MsiInstallProduct (celle-ci est plus agréable, mais il a une exigence de MSI version ultérieure). La fonction que vous spécifiez sera appelé pour chaque message Windows Installer veut vous traiter. Cela vous donnera les données, et une chance de répondre à dire annuler. Si vous avez besoin MSI 4.5 ou version ultérieure, vous pouvez utiliser une DLL de gestionnaire d'interface utilisateur externe intégré, qui ne nécessite pas d'amorçage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top