2009-02-11 9 views
30

Mein Bereitstellungsprojekt erstellt und .msi-Datei und eine EXE-Datei. Ist es möglich, diese in eine .exe zusammenzufassen?Merge msi und exe

Antwort

24

Ja, Sie können ein selbstextrahierendes Installationsprogramm erstellen, das sowohl MSI als auch die Bootstrapper-Datei setup.exe enthält.

Ich denke, es ist möglich, das mit WinZip zu tun, oder Sie können IExpress mit Windows verwenden. Hier finden Sie eine Anleitung zum Erstellen von a self-extracting executable with IExpress. Sie können entweder den IExpress-Assistenten verwenden oder manuell eine Konfigurationsdatei schreiben, die Sie dann im Post-Build-Schritt Ihres Installationsprojekts ausführen können, z. von

Aufruf
IExpress /N /Q MySetup.sed 

Eine Beispielkonfigurationsdatei würde wie folgt aussehen:

[Version] 
Class=IEXPRESS 
SEDVersion=3 
[Options] 
PackagePurpose=InstallApp 
ShowInstallProgramWindow=1 
HideExtractAnimation=1 
UseLongFileName=1 
InsideCompressed=0 
CAB_FixedSize=0 
CAB_ResvCodeSigning=0 
RebootMode=N 
InstallPrompt=%InstallPrompt% 
DisplayLicense=%DisplayLicense% 
FinishMessage=%FinishMessage% 
TargetName=%TargetName% 
FriendlyName=%FriendlyName% 
AppLaunched=%AppLaunched% 
PostInstallCmd=%PostInstallCmd% 
AdminQuietInstCmd=%AdminQuietInstCmd% 
UserQuietInstCmd=%UserQuietInstCmd% 
SourceFiles=SourceFiles 
[Strings] 
InstallPrompt= 
DisplayLicense= 
FinishMessage= 
TargetName=MySetup.exe 
FriendlyName=My cool application 
AppLaunched=CMD /C setup.exe 
PostInstallCmd= 
AdminQuietInstCmd= 
UserQuietInstCmd= 
FILE0="setup.exe" 
FILE1="MySetup.msi" 
[SourceFiles] 
SourceFiles0= 
[SourceFiles0] 
%FILE0%= 
%FILE1%= 

Es gibt einen kleinen Nachteil jedoch mit den selbstextrahierende Installationsszenarien. Aufgrund eines anderen Fixes sind diese Szenarien broken mit dem Bootstrapper (setup.exe) von VS2008 SP1 erstellt. Eine Problemumgehung finden Sie in dem folgenden Thread: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0.

+0

nicht mit VS.NET 2008 Setup-Bootstrapper funktioniert. – Martin

+0

Ja, es funktioniert nicht aufgrund eines Fehlers. Siehe den Link, den ich gepostet habe (http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0) für eine Problemumgehung. –

+0

Die PostInstallCmd-Zeile in [Strings] sollte PostInstallCmd = lesen, andernfalls wird Ihnen beim Abschluss der Installation eine Fehlermeldung angezeigt, dass ein Fehler erstellt wurde. –

2

Ich mag es, Sie können sehen, wie IExpress auf this link zu verwenden!

Das einzige Problem, das ich sehe, war, dass ich ein Installationsprogramm auf Windows Vista 64Bits generiert habe, versuchte ich, die generierte EXE in einem Server mit Windows Server 2008 32Bits zu installieren, aber es gibt einen Fehler über den Prozessortyp.

+4

Ich lief auch in diesem, können Sie es beheben, indem Sie C: \ Windows \ SysWoW64 \ IExpress.exe anstelle von dem in C: \ Windows \ System32 ausführen. Auf diese Weise wird immer eine 32-Bit-EXE generiert. –

Verwandte Themen