Qu'est-ce qu'un bon utilitaire gratuit pour créer un exécutable à extraction automatique avec une version de fichier incorporée? [fermé]
-
02-07-2019 - |
Question
Selon les réponses à cette question, je ne peux pas incorporer une version de fichier dans mon fichier .msi.
Le programme d'installation que je fournis au client doit disposer d'une version de fichier.
Par conséquent, je souhaite créer un fichier exécutable à extraction automatique contenant le fichier msi et le fichier setup.exe généré par Visual Studio, et placer la version du fichier dans cet exécutable à extraction automatique.
Par conséquent, j'ai besoin d'un utilitaire pour créer des exécutables à extraction automatique prenant en charge l'incorporation d'une version de fichier dans sa sortie. Il doit également prendre en charge l'exécution automatique d'un fichier après l'extraction afin que je puisse démarrer le véritable programme d'installation automatiquement. Ce serait bien s'il était scriptable.
Tout ce que j'ai pu trouver, c'est cette , qui est superbe, mais je préférerait de loin une alternative gratuite.
Quelqu'un a-t-il des suggestions?
Modifier: Pour préciser, je ne cherche pas vraiment à créer un programme d'installation. J'ai déjà un projet de configuration VS. Je veux juste un auto-extracteur (que WinZip peut créer). Ainsi, l'utilisateur passe la souris sur Setup-Blorgbeard2008.exe, voir "Version: 1.0.0.0". L'utilisateur double-le, extrait silencieusement setup.exe et setup.msi dans un dossier temporaire, puis exécute setup.exe. L'utilisateur voit alors l'écran de l'installateur normal et procède normalement.
Un autre éditeur: Eh bien, je n'ai plus besoin d'un extracteur automatique, car mon autre question a maintenant reçu une réponse. Cela rend toute cette question peu pertinente. Il encore utile de ne pouvoir distribuer qu'un fichier, plutôt que setup.exe et setup.msi.
La solution
NSIS peut le faire.
Une partie de notre environnement de construction est un script qui affiche les informations de version sous la forme d'un "en-tête". fichier que nos sources de script NSIS. Vous devriez pouvoir utiliser quelque chose de similaire pour intégrer vos informations de version et vous pouvez certainement obliger NSIS à exécuter un fichier après l'extraction.
En fait, lorsque NSIS crée le package d'installation, vous pourrez peut-être grandement simplifier votre approche.
Autres conseils
Un peu surpris que ce ne soit pas encore répertorié ici: IExpress est un outil simple à venir avec Windows et peut être utilisé pour créer des programmes d’installation auto-extractibles.
Lorsque vous téléchargez le Kit de développement logiciel (SDK) Windows, il existe MSIStuff.exe et Setup.exe pour lesquels MS fournit le code source à compiler. MSIStuff va "fourrer" le MSI que vous donnez dans Setup.exe. Setup.exe peut ensuite être distribué.
Plus d'informations à l'adresse http://support.microsoft.com/kb/888473
Inconvénients:
- Vous devrez recompiler Setup.exe avec la version de votre produit à chaque nouvelle version de votre produit (MSI).
- Vous ne savez pas quelle licence est distribuée sous le source Setup.exe.
En fait, j'ai fini par utiliser NSIS pour cette version, car je devais également regrouper d'autres programmes d'installation.
Pour référence, voici le script que j'ai utilisé:
VIProductVersion "1.0.0.0" ; set version here
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here!
VIAddVersionKey "CompanyName" "MyCompany"
VIAddVersionKey "LegalCopyright" "© MyCompany"
VIAddVersionKey "FileDescription" "Installer for MyProgram"
OutFile MyProgram-Setup.exe
SilentInstall silent
Section Main
SetOutPath $TEMP
SetOverwrite on
File SharedManagementObjects.msi
File SQLSysClrTypes.msi
File Release\Setup.exe
File Release\Setup.msi
ExecWait 'msiexec /passive /i "$OUTDIR\SharedManagementObjects.msi"'
ExecWait 'msiexec /passive /i "$OUTDIR\SQLSysClrTypes.msi"'
Exec '"$OUTDIR\Setup.exe"'
SectionEnd
DotNetZip peut produire une archive auto-extractible comprenant un numéro de version figurant dans un explorateur Windows. passer la souris. Le SFX inclut également un nom de produit, une description, une version du produit et un copyright qui apparaissent dans une vue Propriétés / Détails de l'Explorateur Windows.
Le SFX peut exécuter une commande que vous spécifiez après extraction.
La création du SFX peut être scriptée à partir de powershell, ou vous pouvez écrire un programme pour le faire, en utilisant VB.NET, C #, VBScript ou JavaScript, etc.
Pour obtenir le numéro de version, vous devez disposer au minimum de la version 1.9.0.26 de DotNetZip.
nsis semble être un bon choix
essayez inno-setup
définissez la directive VersionInfoVersion sur votre numéro de version binaire, par exemple.
VersionInfoVersion = 1.1.0.0
cela apparaîtra dans le texte et les propriétés de la souris
Expérience en cours ici:
Informations sur la version contextuelle: http://screencast.com/t/LVqvLfxCj3g
À partir des informations d'assemblage Visual Studio: http://screencast.com/t/fqunlMNh13
Installé avec l'ancien ancien fichier MSI.
En ajoutant le " Version: 1.5.0 " texte dans la propriété Description du projet d'installation, le numéro de version apparaît également dans le fichier MSI, comme suit: http://screencast.com/t/A499i6jS
En général, je renomme simplement le fichier MSI, comme DataMonkey_1_5_0.msi à mes propres fins.
L’utilisation d’un auto-extracteur DotNetZip n’a aucun sens si vous utilisez l’installation bootstrapper setup.exe pour vérifier que .NET est installé (l’extracteur automatique DotNetZip nécessite .NET 2.0).