This article describes how to package a setup.exe that executes an MSI as a ManageSoft Windows Installer package.
Some 3rd party external installers EXEs (typically InstallShield EXEs) execute an MSI to install the package. However, it may be desirable to wrap the enclosing EXE in a ManageSoft MSI package, rather than separating and wrapping the MSI file directly. There may be a number of reasons for this, including:
- The MSI cannot be executed because it cannot install with Elevated Privileges (AlwaysInstallElevated policy).
- For InstallShield EXEs, repackaging the setup.exe as a snapshot may not work effectively because of issues related to the InstallShield driver engine (IShield).
- For InstallShield EXEs, extracting the contents of the setup.exe and trying to run the MSI may not work, as the MSI may have launch conditions that prevent it from being run directly. The EXE may provide additional install functionality beyond what the MSI package itself provides.
Procedure
- If the MSI is not visible, extract the contents of the third party external installer setup.exe to the same directory as the setup.exe. How this is done will depend on the technology that the application’s vendor used to generated the setup.exe; InstallShield setup.exe files may support an /extract_all:<path> option, or you could try running the setup.exe directly and finding the temporary directory where it extracts the files as part of the install.
- Create a new project from a Windows Installer package, ensuring that Including the original MSI package and supporting files in my project is selected as part of the MSI Import package option. Ensure that the option Install from local managed device cache is checked.
- Open the project file in the Packaging node for editing, and go to the External Installer node. Select theWindowsInstaller external installer and go to the General tab.
- Edit the command line of the external installer to run the setup.exe and pass the appropriate command line arguments to the setup.exe.
An example of such a command line can be seen in the ManageSoft for managed devices package that is shipped with ManageSoft (from release 7.0 onwards).
Validation
A test installation of the package through Managesoft policy will determine if this technique can be applied to the particular third party external installer.
Notes
- This method will not allow packages to be installed from a distribution location. All packages will be downloaded and installed from the ManageSoft managed device cache.
- As of ManageSoft 7.5, the AlwaysInstallElevated policy is set for all external installer package installs, regardless of whether the package is an MSI or not.
Additional Information
- ManageSoft 7.5 Packaging Guide, particularly the chapters on ManageSoft and the Windows Installer andFiles and managed device settings
- InstallShield knowledge base article Q105473 - INFO: Setup.exe Command-Line parameters
Specifically, the /v option allows the passing of arguments to Msiexec.
Comments