How to make an app - Andromo App Maker


No announcement yet.

Dependency Module: Windows Installer (MSI) 4.5

  • Filter
  • Time
  • Show
Clear All
new posts

  • Dependency Module: Windows Installer (MSI) 4.5

    Use the Windows Installer (MSI) 4.5 dependency module with MSI Factory 2.0 to detect and install Windows Installer (MSI) 4.5.

    Background Information
    This dependency module will cause the Microsoft Windows Installer service 4.5 (a.k.a. "Windows Installer 4.5") to be included in your bootstrapper. When run, the bootstrapper will check for the existence of Windows Installer 4.5 on the target system and then extract and install Windows Installer service if needed. The Windows Installer (MSI) 4.5 installation package is available as a stand-alone executable file:
    For Windows Vista, Windows Vista Service Pack 1 and Windows Server 2008:
    x86 Platform: Windows6.0-KB942288-v2-x86.msu
    x64 Platform: Windows6.0-KB942288-v2-x64.msu

    For Windows XP Service Pack 2 and Windows XP Service Pack 3 (32-bit platforms):
    x86 Platform: WindowsXP-KB942288-v3-x86.exe

    For Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2 and Windows XP 64-bit Editions:
    x86 Platform: WindowsServer2003-KB942288-v4-x86.exe
    x64 Platform: WindowsServer2003-KB942288-v4-x64.exe

    When this dependency module is included in your setup, it installs Windows Installer (MSI) 4.5 if needed.

    Installation Instructions
    To make Windows Installer (MSI) 4.5 dependency module available in your MSI Factory 2.0 projects, follow the steps below:
    1. Close MSI Factory 2.0, if it is running.
    2. Browse to the folder where MSI Factory 2.0 is installed on your system. By default it is C:\Program Files\MSI Factory (on Windows Vista (64-bit) it is C:\Program Files (x86)\MSI Factory).
    3. Open the folder called Dependencies.
    4. Unzip the contents of (see bottom of article) into the dependencies folder.
    5. Download the Windows Installer (MSI) 4.5 (WindowsXP-KB942288-v3-x86.exe) into the Msi45AllinOne_Include subfolder.
    6. Download the Windows Installer (MSI) 4.5 (WindowsServer2003-KB942288-v4-x86.exe) into the Msi45AllinOne_Include subfolder.
    7. Download the Windows Installer (MSI) 4.5 (WindowsServer2003-KB942288-v4-x64.exe) into the Msi45AllinOne_Include subfolder.
    8. Download the Windows Installer (MSI) 4.5 (Windows6.0-KB942288-v2-x86.exe) into the Msi45AllinOne_Include subfolder.
    9. Download the Windows Installer (MSI) 4.5 (Windows6.0-KB942288-v2-x64.exe) into the Msi45AllinOne_Include subfolder.
    10. Restart MSI Factory 2.0.
    To use your new dependency module, select Build > Settings from the main menu. Select standard bootstrapper option and click the Edit button. Click dependencies tab and click Add button. Select Windows Installer (MSI) 4.5 dependency module from the list of available dependency modules. Windows Installer (MSI) 4.5 should now be visible in the dependency modules section. You can edit or customize the configuration of the dependency module in the configuration section.

    Information Links
    More Information

    Module Name: Windows Installer (MSI) 4.5
    Type: MSI Factory 2.0 Dependency Module
    Created By: kumar (7/31/2008)
    Last Revision: July 31, 2008 (001)
    Disclaimer: This dependency module is not officially supported by Indigo Rose. If you have any issues or feedback please contact me or post in the forum.
    Attached Files

  • #2
    Venky, thanks for sharing all these dependency packages.

    I've tested the Windows Installer package 4.5, but I get an error after the installation is finished: "Windows installer 4.5 failed".

    What happens is that the installation stops, but Windows installer is perfectly installed (it did not fail).

    I thought it may have something to do with the "noreboot"-option. I have looked in the script but cannot seem to find the error.

    My test environment is: Windows Server 2003 SP2 32 bit Eng.

    Have a nice day!


    • #3

      In the instructions above, is it a typo:
      Windows6.0-KB942288-v2-x86.msu instead of Windows6.0-KB942288-v2-x86.exe
      Windows6.0-KB942288-v2-x64.msu instead of Windows6.0-KB942288-v2-x64.exe


      • #4
        The msi45AllinOne_Include.lua has a slight problem (line 195):
        instead of
        if (useWusa) then
        local nReturnCode = File.Run(strWusaInstaller,strCmdArgs,"",SW_SHOWNOR MAL,true);
        local nReturnCode = File.Run(strInstallerDest,strCmdArgs,"",SW_SHOWNOR MAL,true);

        it should be

        local nReturnCode = 0;
        if (useWusa) then
        nReturnCode = File.Run(strWusaInstaller,strCmdArgs,"",SW_SHOWNOR MAL,true);
        nReturnCode = File.Run(strInstallerDest,strCmdArgs,"",SW_SHOWNOR MAL,true);

        effectivly the return code from msiexec installer is lost as the nReturnCode is declared local within the if statement. Hence the error message without the eror code.


        • #5
          When Windows 4.5 is installed, the system needs to reboot. Does anyone know how to get the installer to resume after a system reboot?



          • #6
            Use File.RunOnReboot()...



            • #7
              I currently have a custom bootstrapper where I'm also trying to throw in the 4.5 Windows Installer.

              This is the only dependency I have right now, and when I run an MSBuild script that handles the patch creation process, I get an error like this:

              "EXEC: error : Could not locate dependency file: [path to .proj file]"
              "Cleaning up temporary files..."
              "Bootstrap build failed: 5"

              Why would it be considering the msbuild script a dependency file?

              Script segment in question:

              <Exec Command="&quot;$(MSIFactoryBootStrapperTool)&quot; &quot;$(MSIFactoryBootStrapperProjectFile)&quot ; &quot;$(MSIFactoryBootStrapperOutputFile)&quot; $(MSIFactoryBootStrapperOptions)"
              Condition="Exists('$(MSIFactoryBootStrapperProject File)')"
              WorkingDirectory="$(MSIFactoryBootStrapperProjectD ir)" ContinueOnError="false" />

              Also, in my main file list, I just have the standard mainscript and patch_functions along with a mainsetup to the patch.msp file. Other than that, I just have a ModuleRef to the dependency "include" xml and some config variables.