Was ist ein gutes kostenloses Dienstprogramm, eine selbstextrahierende ausführbare mit einem eingebetteten Dateiversion zu erstellen? [geschlossen]

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

Frage

Nach den Antworten auf diese Frage, ich kann keine Datei-Version in meiner MSI-Datei einbetten.

Das Installationsprogramm, das ich gebe den Client eine Dateiversion haben muss.

Also, was soll ich tun, ist eine selbstextrahierende ausführbare erstellen Sie die msi-Datei und die setup.exe erzeugt von Visual Studio enthält, und setzen Sie die Dateiversion auf diese selbstextrahier statt.

Daher brauche ich ein Dienstprogramm selbstextrahierende Programme zu erstellen, die eine Dateiversion in seiner Ausgabe unterstützt das Einbetten. Es muss auch automatisch unterstützen, eine Datei nach der Extraktion ausgeführt, so kann ich automatisch das reale Installationsprogramm gestartet. Es wäre schön, wenn es skriptfähig ist.

Alles, was ich finden konnte, war diese , die sieht gut aus, aber ich wäre viel eine kostenlose Alternative bevorzugen.

Hat jemand irgendwelche Vorschläge haben?

Edit: Um zu klären, ich suche nicht wirklich ein Installationsprogramm erstellen - Ich habe bereits ein VS Setup-Projekt haben. Ich möchte nur einen Self-Extractor (wie WinZip anlegen zu können). So können die Benutzer mit der Maus über Setup- Blorgbeard2008.exe, sieht "Version: 1.0.0.0". Benutzer Ein Doppelklick es, es still extrahiert setup.exe und setup.msi in einem temporären Ordner, dann setup.exe ausgeführt wird. Benutzer dann sehen normalen Installationsbildschirm und geht normal weiter.

Ein weiterer Edit: Yay, ich habe keinen Self-Extractor mehr benötigen, da meine andere Frage jetzt beantwortet wurde. Das macht diese ganze Frage ziemlich irrelevant. Es würde immer noch schön sein, um nur eine Datei zu verteilen, anstatt setup.exe und setup.msi.

War es hilfreich?

Lösung

NSIS kann dies tun.

Ein Teil unserer Build-Umgebung ist ein Skript, das die Versionsinformationen zu einer „Header“ Datei, die unsere NSIS Skript Quellen ausgibt. Sie sollten etwas ähnliches verwenden, können Sie Ihre Versionsinformationen einzubetten und man kann sicherlich erhalten NSIS eine Datei nach der Extraktion ausgeführt werden.

In der Tat, wie NSIS das Installationspaket erstellt ... können Sie in der Lage sein, Ihren Ansatz sehr viel zu vereinfachen.

Andere Tipps

Ein wenig überrascht, dass es hier noch nicht aufgeführt ist: IExpress ist ein einfaches Werkzeug kommt Windows und kann verwendet werden, selbstextrahier Installer zu erstellen.

Wenn Sie Windows SDK herunterladen, es ist MSIStuff.exe und Setup.exe für die MS-Quellcode bietet zu kompilieren. MSIStuff wird „Zeug“ das MSI Sie es in Setup.exe geben. Setup.exe kann dann verteilt werden.

Weitere Informationen unter http://support.microsoft.com/kb/888473

Nachteile:

  • Sie müssen Setup.exe mit der Version Ihres Produkts neu kompiliert werden jedes Mal eine neue Version des Produkts ist (MSI).
  • nicht sicher, was die Setup.exe-Source-Lizenz unter verteilt.

I endete eigentlich NSIS für diese Veröffentlichung mit bis, da ich auch einigen anderen Installateure zu bündeln benötigt.

Als Referenz hier ist das Skript, das ich verwenden:

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 kann ein selbstentpackende Archiv erzeugt, beinhaltet, dass eine Versionsnummer, die in einem Windows-Explorer zeigt nach oben Mouseover. Die SFX umfasst auch einen Produktnamen, Beschreibung, Produktversion und Copyright, die in einer Eigenschaft zeigt nach oben / Detailansicht in Windows Explorer.

Die SFX kann einen Befehl ausführen, die Sie nach dem Auszug angeben.

Erstellung des SFX kann von Powershell-Skript, oder Sie können ein Programm schreiben, es zu tun, mit VB.NET, C #, VBScript oder JavaScript, etc.

die Versionsnummer Sachen zu erhalten, müssen Sie mindestens v1.9.0.26 von DotNetZip.

nsis sieht aus wie eine gute Wahl

inno-setup

setzen Sie die VersionInfoVersion Richtlinie auf die Binärdatei Versionsnummer, z.

VersionInfoVersion = 1.1.0.0

diese in Text Mouseover erscheint und Eigenschaften

Experiment im Gang hier:

Pop-up-Version Info: http://screencast.com/t/LVqvLfxCj3g

Von Visual Studio Assembly Info: http://screencast.com/t/fqunlMNh13

Angebracht mit einfacher alter MSI-Datei.

den „Version: 1.5.0“ Durch das Hinzufügen von Text in die Beschreibung Eigenschaft des Setup-Projektes, die Versionsnummer zeigt auch auf den MSI wie so Datei: http://screencast.com/t/A499i6jS

ich in der Regel so benennen Sie die MSI-Datei, wie DataMonkey_1_5_0.msi für meine eigenen Zwecke.

Zu Ihrer Information mit einem DotNetZip Self-Extractor nicht sinnvoll, wenn Sie das Bootstrap-Programm setup.exe verwenden .NET zu überprüfen installiert ist (DotNetZip Self-Extractor .NET 2.0 erfordert).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top