La solution la plus simple pour remplacer un fichier minuscule dans un MSI?
Beaucoup de nos clients ont accès à InstallShield, des SAGES ou des AdminStudio. Ce ne sont pas un problème. J'espère que il ya une manière que je peux offrir à nos clients plus petits sans accès à des outils de reconditionnement un libre accès à l'ensemble d'outils et de mesures pour faire le remplacement de fichiers eux-mêmes.
Seulement besoin de remplacer un fichier de configuration unique à l'intérieur d'un comprimé MSI, l'utilisateur cible peut être supposé avoir déjà Orca installé, savoir comment l'utiliser pour personnaliser la table de la Propriété (à incorporer les détails de la licence pour les GPO de déploiement) et ont généré un fichier MST.
Avertissement: ceci est très similaire à une autre question mais à la fois les questions et les réponses dans ce thread ne sont pas claires.
source d'informationauteur saschabeaumont
Vous devez vous connecter pour publier un commentaire.
Bon, un réexamen de cette question avec mon propre réponse en fournissant joli petit script VB qui vont faire tout le levage lourd. Comme mentionné dans la question d'origine, le but était de fournir une solution simple pour sysadmin les utilisateurs à faire des mises à jour/modifications elles-mêmes.
Ci-dessous est une version simplifiée du code, je suis actuellement en train de fournir aux clients
Mise À Jour: La MakeCab.MakeCab.1 objet a été déprécié, le code mis à jour pour fonctionner avec Windows 7.
J'asume que vous créez le fichier msi vous-même (?)
Lorsque vous utilisez Wix pour générer votre fichier msi, le client peut simplement régénérer l'ensemble de la msi après avoir remplacé le fichier (wix est gratuit). Sinon, il devrait être possible d'utiliser un fichier non compressé qui n'est pas incorporé dans le fichier msi. Dans wix, vous devez ajouter un élément multimédia sans un cabinet d'attribut. L'inconvénient est que vous devez distribuer les deux fichiers, au lieu d'un seul msi.
À mon humble avis ce genre de scénario indique un manque de fonctionnalité dans l'application en cours d'installation, et est plus facile à résoudre dans l'application de piratage avec le MSI.
Admin Image
Permettez-moi de dire tout d'abord qu'un simple moyen de "résoudre" ce pour vos utilisateurs, est-à-dire l'exécution d'un Administrateur de l'Installation de votre MSI. Ce sera, pour l'essentiel extraire tous les fichiers à partir de l'intérieur des Cabines et de mettre tous les fichiers dans le dossier spécifié:
msiexec.exe /un myinstaller.msi TARGETDIR=C:\AdminImage
Vos utilisateurs peuvent alors aller directement dans le dossier extrait de la structure et de mettre à jour le fichier en question et puis la carte le répertoire à d'autres PC et installer le fichier MSI. Il pourrait y avoir des effets secondaires à ce concernant le fichier ayant une valeur de hachage dans le fichier MSI (pour éviter l'usurpation), mais dans la plupart des cas, il fonctionne très bien.
Exécuter XML de Requête XPath
De nouvelles versions des outils de déploiement tels que Installshield et Wix fonction de la prise en charge intégrée pour l'exécution de requêtes XPath lors de l'installation et donc écrire des articles de façon dynamique.
Mise À Jour D'Application
La configuration d'une application sur un PC comporte plusieurs étapes. Il y a d'abord le déploiement de contenu pour la machine - ce qui devrait être fait à l'aide d'un MSI, pas de question à ce sujet. Cependant, dans la plupart des applications avancées de plusieurs "post-installation des tâches de configuration" "fichier de configuration de mise à jour" sont nécessaires.
Il est presque toujours préférable de reporter ces tâches de configuration jusqu'à ce que le lancement de l'applicationplutôt que d'implémenter des fonctions dans le fichier MSI. Il y a beaucoup de raisons pour cela, mais le plus important étant que seule l'application EXE sera amené à l'utiliser dans le bon contexte de l'utilisateur. Les fichiers MSI peut être exécuté avec les droits sur le système, un compte d'utilisateur différent ou par un autre mécanisme.
Ce que nous recommandons est d'utiliser le MSI à obtenir tout le contenu requis sur le PC. Ensuite balise le registre pour indiquer à l'application que c'est le premier lancement (pour les mises à jour, vous pouvez incrémenter un compteur ou d'écrire le nouveau numéro de version pour HKLM). Ensuite, l'application peut effectuer la configuration finale étapes dans sa routine de démarrage. Il peut copier par défaut config.xml fichier à partir de quelque part dans le répertoire %ProgramFiles% et le copier dans le profil de l'utilisateur. Ensuite, il peut lire les valeurs requises à partir HKLM écrit par le MSI, et ensuite mettre à jour la config.xml fichier avec ces valeurs.
En général: évitez les étapes de la configuration effectuée par MSI ou tout autre mécanisme d'installation. Se concentrer sur l'écriture, les fichiers de registre et les éléments de la machine, et puis laisser l'application elle-même installer un environnement d'exécution. Cela permettra à beaucoup mieux de déploiement du contrôle. Il est préférable "d'Encapsulation" si vous le souhaitez. Le MSI envoie un "message" à l'application via le registre, et l'application sait "comment configurer correctement" basées sur les messages.
Vous devez ajouter une entrée à la Les médias tableau, l'ajout d'un autre moyen avec pas de fichier cab, et un LastSequence un de plus que le fichier CAB de la dernière séquence. Vous n'avez qu'à remplacer dans le Fichier table du fichier de séquence avec le nouveau fichier et mettre à jour tous les autres attributs de fichier qui pourrait avoir changé.
Vérifier le post suivant:
Comment remplacer un fichier dans un programme d'installation msi?
Où figure la mention:
Cette commande extrait les fichiers MSI:
msi2xml -c OutputDir TestMSI.MSI
Ouvrir OutputDir et modifier le fichier.
Pour reconstruire le MSI exécuter:
xml2msi.exe -m TestMSI.xml
Vous avez besoin de l'-m ignorer la " somme de contrôle MD5 test qui échoue lorsqu'une Msi fichier(s) sont modifiées.
Télécharger:
https://msi2xml.sourceforge.io/