EXE or MSI Installer - What suits your business best? | Differences and Recommendations
When we install a Windows program, we often have to deal with MSI and EXE files.
However, there’s a difference between them.
In this article, we will discuss what an MSI installer is, and what makes it different from an EXE setup installer.
Furthermore, we will be focusing on the following topics:
- What is an MSI installer?
- What is an EXE setup?
- What are the differences between .msi and .exe?
- Should you build an MSI or an EXE installer?
- What should you choose between MSI and EXE?
What is an MSI installer?
In Windows operating systems, an MSI installer is used to install software, and perform operations related to the installation process, such as:
- Program updates
The .msi file extension stands for Microsoft Software Installer. When an MSI installer is launched, it uses Microsoft's Windows Installer service to configure installer packages, such as Windows applications or package updates.
All MSI installers have the same component structure and are built according to standard industry procedures and best practices.
Thanks to this standardization, all MSI installers support silent installation by default, using the same parameters. To get the complete list of all supported MSI command lines, open a cmd, and type: msiexec /?.
If you are a developer, you can try our Advanced Installer Extension for Visual Studio to create an installer for your Visual Studio solution.
If you are an IT professional and are more concerned with customizing the installer, you can learn more about it in our dedicated article on How to Edit an MSI Package With Advanced Installer and ORCA.
What is an EXE setup?
The EXE setup is probably the most common installer format. It shares the same file extension as any Windows executable program:.exe.
The EXE setup does not depend on any “engine” to trigger the install. It is self-contained, and the logic behind the structure of the install depends directly on the tool used for the setup creation.
Silent installation with EXE/ How to silently install with EXE?
While for the MSI, the silent installation parameters are set by default and standardized, the silent installation parameters for an EXE setup are dependent on the software used to build it.
In addition, if the developer omits to declare and enable the silent install parameters, then the setup EXE will not support them.
To discover different silent installation parameters for EXE setups and other methods to find these switches, read our How to Silently Install EXE and MSI setup applications (Unattended) article.
What are the differences between .msi and .exe?
MSI installers have standard silent install parameters. To get the full list, open a command prompt and type: msiexec /?.
MSI’s files have installation logging support by default, as well as a rollback option during the installation process.
So, in case your installation crashes in the middle of the process, the installer automatically reverses the steps and cleans any modifications done on the system prior to the failure. This includes removing files already copied, registry keys added, etc.
Also, in the case of an MSI installer, you can view and edit the structure using professional tools such as Advanced Installer.
Advanced Installer is a Windows Installer packaging tool designed for developers, ISVs and Enterprises to easily install, update, and configure applications.
Get started now through our 30-day full-featured free trial.
This is what an MSI structure looks like – viewed as a table:
You can apply various customizations to the above table by using a transform file. All custom settings will be stored in the MST file, which is called during the installation. This way, you can make sure the MSI stays unaltered.
Keep in mind that modifying an MSI directly causes errors during the installation process, so as a best practice, we recommend using the MST file.
EXE setups have different parameters based on the tool that was used to create the installer, while some EXE's don't support silent install parameters at all.
The EXE file can install an application, but it can also be the program's main executable, whereas MSI files only install applications.
EXE files cannot be modified. The only way to alter EXE installers is to repackage them using the Repackager.
How does repackaging an EXE work?
- An initial snapshot of the operating system is taken, followed by installation of the setup exe.
- Then, it finishes with a second snapshot of the operating system once the software is installed.
- The difference between the two snapshots will result in the new installer, which can be built as an MSI.
If you want to master the art of repackaging, start by reading this article: Repackaging an installation.
Should I build an MSI or an EXE installer?
Simply put, MSI is the preferred installer – especially in the enterprise environment where the installation process of the application requires silent install parameters and the Configuration Management tools.
Most Configuration Managementtools can integrate MSI packages natively, and any MSI customizations are easily done via MST.
One of the reasons why MSI is preferred over setup EXE is that EXE installers use the same .exe extension as any application. This can be a vulnerability and hide a malicious executable instead of an installer.
When is EXE setup the preferred installer?
For instance, in scenarios where you have a bundle installer that incorporates multiple web applications because they can be wrapped within a main exe setup installer (having nested MSI installers is not a best practice).
Advanced Installer offers both types of builds (MSI and EXE) from the same project. You can choose your preferred build from the builds tab and add it with a single click:
Conclusion: What should you choose between MSI or EXE?
Most vendors offer both MSI and EXE installer formats for their applications. If you were to make a choice, I would recommend MSI.
When building your installer, the best practice is to create an MSI installer since:
- It’s widely accepted for both home users and enterprise environments
- It supports the standardized silent install parameters, and
- It respects the industry standards.
What do you think? Let us know in the comments!
Subscribe to Our Newsletter
Sign up for free and be the first to receive the latest news, videos, exclusive How-Tos, and guides from Advanced Installer.