Qu'est-ce qu'un bon utilitaire gratuit pour créer un exécutable à extraction automatique avec une version de fichier incorporée? [fermé]

StackOverflow https://stackoverflow.com/questions/151403

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.

Était-ce utile?

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).

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