Wednesday, March 30, 2011

Merge msi and exe

Hi

My deployment project creates and .msi-file and an .exe-file. Is it possible to merge these into one .exe?

From stackoverflow
  • 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