Hi
My deployment project creates and .msi-file and an .exe-file. Is it possible to merge these into one .exe?
-
Yes, you can create a self-extracting installer containing both MSI and the setup.exe bootstrapper file.
I think it is possible to do that with WinZip, or you can use IExpress coming with Windows. Here is a guide how to create a self-extracting executable with IExpress. You can either use the IExpress wizard or manually write a config file which you then can execute in the post-built step of your setup project, e.g. by calling
IExpress /N /Q MySetup.sed
A sample configuration file would look like this:
[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%=
There is a little caveat however with the self-extracting installer scenarios. Due to another fix these scenarios are broken with the bootstrapper (setup.exe) created by VS2008 SP1. For a workaround see the following thread: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0.
Martin : Doesn't work with VS.NET 2008 Setup Bootstrapper.0xA3 : Yes, it doesn't work due to a bug. See the link that I have posted (http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0) for a workaround.odd parity : The PostInstallCmd line in [Strings] should read PostInstallCmd=, otherwise it will give you an "error creating process" message when installation completes. -
I like it, you can see how to use IExpress on this link!
The only problem I see was that I've generated a installer on Windows Vista 64bits, I was trying to install the generated .exe in a server with Windows Server 2008 32bits, but it throws an error about processor type.
odd parity : I ran into this as well, you can fix it by running C:\Windows\SysWoW64\IExpress.exe instead of the one in C:\Windows\System32. That way it will always generate a 32-bit exe.
0 comments:
Post a Comment