J'essaie de faire une application déployable compressée.
Actuellement, je récupère un ensemble de fichiers que j'ai publiés à partir de mon IDE (application publiée Visual Studio 2008 - WPF) et les compresse dans une archive 7-Zip SFX.
Mes utilisateurs ont demandé s'ils pouvaient "installer en un clic" à partir du fichier exe 7-Zip. Il y a une liste de paramètres lorsque je crée l'archive. Est-il possible de définir une sorte de combinaison de paramètres pour appeler le fichier exécutable du programme d'installation extrait?
Malheureusement, la documentation 7-Zip ne semble pas couvrir ce scénario. J'ai vu plusieurs applications payantes qui font quelque chose de similaire, mais j'essaie de garder l'outil que je suis en train d'écrire sans code sous licence afin que nous puissions l'utiliser en interne.
la source
Réponses:
Vous devrez télécharger le SDK LMZA à partir de 7-Zip . Le fichier "installer.txt" contient la documentation:
Vous devez créer un fichier config.txt.
Par exemple:
la source
La solution convenue est correcte, mais elle n’aide en fait pas à expliquer ce que vous devez réellement faire!. J'ai lu ceci ainsi que de nombreuses autres solutions et je ne trouvais pas d'instructions complètes complètes et simples sur la façon de procéder.
Si vous êtes confus comme avant, lisez mon billet de blog qui fournit des instructions étape par étape sur la réalisation de ce que Molly7244 a publié.
Comment créer une archive auto-extractible qui exécute votre setup.exe avec le commutateur 7zip -sfx
Il a été porté à mon attention que des liens peuvent devenir morts alors voici les étapes de mon blog
Étape 1 - Configurez votre dossier d'installation
Pour rendre cela facile, créez un dossier c: \ Install. C'est ici que nous allons copier tous les fichiers requis.
Étape 2 - 7Zip vos installateurs
Étape 3 - Obtenir le module d’extension 7z-Extra sfx
Vous devez télécharger le 7z-Extra.
Étape 4 - Configurez votre fichier config.txt
Je vous recommande d'utiliser NotePad ++ pour éditer ce fichier texte car vous devrez encoder en UTF-8. Les instructions suivantes utilisent notepad ++.
Entrez quelque chose comme ceci:
Modifiez cette version en remplaçant [SOFTWARE v1.0.0.0] par votre nom de produit. Les notes sur les paramètres et les options du fichier d’installation sont ici
Point de contrôle
Vous devriez maintenant avoir un dossier "c: \ Install" avec les 3 fichiers suivants:
Étape 5 - Créer l'archive
Ces instructions que j’ai trouvées sur le Web mais n’ont explicité nulle part les 4 étapes ci-dessus.
Dans la fenêtre de commande, tapez ce qui suit
Regardez dans c: \ Install et vous verrez maintenant que vous avez un MyInstaller.exe
Lancer l'installateur
Double-cliquez sur MyInstaller.exe et votre message s'affichera. Cliquez sur OK et le fichier setup.exe s'exécutera.
Note PS sur l'automatisation
Maintenant que cela fonctionne dans votre répertoire c: \ Install, je créerais un fichier "Install.bat" et y placerais le script de copie.
Vous pouvez maintenant éditer et exécuter le fichier Install.bat chaque fois que vous avez besoin de reconstruire une nouvelle version de votre package de déploiement.
la source
ExecuteParameters
élément dansconfig.txt
? Par exemple:C:\Install\MyInstaller.exe some_file.txt
exécuteraitsetup.exe some_file.txt
.Vous devriez également regarder NSIS . Avec lui, vous pouvez créer un programme d'installation qui est compressé avec la même méthode que celle utilisée par 7-Zip ( LZMA ). Il doit donc avoir à peu près la même taille et vous avez le plein contrôle du processus d'installation.
la source
En s'appuyant sur la réponse de jcrawfor74, voici quelques informations supplémentaires:
Au lieu de 7zS.sfx , vous pouvez également utiliser le fichier 7zS2.sfx . C'est une version beaucoup plus petite (28 Ko contre 140 Ko) mais elle ne supporte pas le fichier config.txt. Donc, vous pouvez simplement le laisser dans la commande de copie. Si vous voulez juste créer de petits scripts de configuration, cela vous permet de construire des fichiers EXE plus petits.
Le plus petit module SFX ne pose aucune question. Il extrait les fichiers dans un dossier temporaire en tant qu'autre module, puis recherche les candidats exécutables. Selon le code source (également disponible sur la page de téléchargement), dans C \ Util \ SfxSetup \ SfxSetup.c, il pèse les fichiers différemment en fonction de leur nom et de leur extension, puis sélectionne le fichier dont le score est le plus élevé.
Les deux modules SFX s'exécutent automatiquement en tant qu'administrateur , du moins sous Windows 10, et cela ne peut pas être configuré. Bien que ce comportement puisse être souhaitable pour les configurations à l’échelle du système, il peut ne pas en être toujours ainsi. En outre, cette décision est uniquement basée sur les données de version de fichier car il n'y a pas de manifeste inclus explicitement ce que Windows doit faire. La compatibilité Windows examine le fichier et trouve des chaînes telles que "Configuration" qui mènent à l'invite d'élévation.
Si vous avez besoin d’un module SFX qui ne demande pas d’autorisations d’administrateur, vous pouvez le reconstruire à partir du code source ou, plus simplement, éditer ses informations de version de fichier à l’aide d’un éditeur de ressources comme celui-ci . Supprimez simplement le mot "Setup" du champ FileDescription, dans le cas du Resource Hacker mentionné, compilez le fichier et enregistrez le fichier EXE. Vous pouvez également effectuer cette étape directement sur le fichier 7zS.sfx ou 7zS2.sfx et le conserver quelque part afin de pouvoir l'utiliser pour créer des packages SFX non élevés. Et vous pouvez l'utiliser pour personnaliser entièrement les informations de version de fichier afin d'y placer le nom de votre produit ou tout élément décrivant la charge utile.
la source