Working with Dependencies
While conditional statements give you the possibility to clearly define the needed environment for your installer, it doesn’t let you modify the system in order to make the proper changes for your application to be installed. As seen in the chapter above, conditional statements for software applications can be easily added into the MSI by using Advanced Installer, but what if you want to check if that particular dependency is installed and if not, install it yourself?
Prerequisites
This is where the Prerequisites feature comes in handy and lets you quickly create a bundle which contains your application and the desired dependencies.
Prerequisites are software components that must be installed before the installation of an application to ensure its proper functioning. Advanced Installer provides a wide range of prerequisites that can be easily added to MSI packages, including .NET Framework, Visual C++ Redistributable, and SQL Server Express.
Adding prerequisites to MSI packages is important for several reasons. Firstly, it ensures that the application will run correctly on target systems, reducing the risk of compatibility issues and user frustration. Secondly, it simplifies the deployment process by automating the installation of required software components. Finally, it can improve the performance of the application by ensuring that it has access to the latest software components.
Adding prerequisites with Advanced Installer is a straightforward process that can be done in just a few steps. Here's how to do it:
Advanced Installer Prerequisites page
Open your Advanced Installer project and go to the Prerequisites page. Advanced Installer provides a wide range of options for configuring prerequisites, including the ability to specify a specific version of the prerequisite, the installation path, and the location of prerequisite files.
This view enables you to incorporate existing installers in your package, enable Windows features, and configure specific Windows Server roles.
All prerequisite setup files can be bundled with your package or placed online and accessed via a URL. If the prerequisite is not found during installation, it will be installed automatically.
Download and Install Prerequisites
Advanced Installer can also download and install prerequisites from a remote location, such as a web server or network share. This ensures that the most recent versions of the prerequisite are always used, lowering the possibility of compatibility issues.
In the main Prerequisites page you can see on the right hand menu that you have a ton of predefined prerequisites that you can choose from. Some of these prerequisites are:
- .NET Framework
- .NET Core
- .NET Runtime
- SQL Server Compact
- SQL Server Express
- MySQL Server
- SQL Server OLE DB
- Adobe products
- JRE
- JDK
- Silverlight
- Python
- Internet Explorer
- DirectX
- XNA
- Access Runtimes
- Visual C++ Redistributables
- VSTO
- IIS
- Apache Tomcat
- MSML
- Windows Installer
- PowerShell
- And many more
When you select a predefined prerequisite, Advanced Installer asks you if you want to download the package next to your project and include it in the package, making the overall process much simpler.
You can also select the extract folder for each selected prerequisite, keep the prerequisite files after installation, hide installed prerequisites and check the launch conditions before searching for the prerequisites.
How to Enable Windows Features with Advanced Installer
Advanced Installer also allows you to enable Windows Features.Some Windows programs and features must be enabled before applications can use them. Other features are enabled by default, but you can disable them if your application does not require them.
Use the [Windows Feature bundle] toolbar button or the "New Windows Feature bundle" context menu item to add a Windows Features bundle then select the Target Operating System. Once you have chosen the OS, the Available Windows Features will be populated with all the options available for those particular OSes.
Advanced Installer also offers multiple Windows Server roles from which you can choose to include in your package. Roles selected in this view only apply when running the package on a Windows Server. They will be ignored on any other OS type.
To include a server role in your package, select the Windows Server Roles tree item, then check the roles you want to include. The roles are organized by the earliest supported version of the target server's operating system.
Of course, you can add your own packages and create a suite installation, a chapter we have already covered in the first MSI Packaging fundamentals ebook.