What is an MSI Installer?
Before we get to an MSI Installer, let’s start with how applications were deployed prior to MSI installers becoming a standard. Back in Windows 3.1 or Windows 95 days, developers who wanted to deploy apps on Windows used to come up with scripts that determine how the various components of the application need to interact with the Windows operating system. Like if a registry entry needs to be created, a script had to be written. Now, this led to pretty unstable application deployments and resulted in Windows being left with a lot of leftovers from the installers.
When Microsoft came with Windows 2000, MSI was first introduced as a standard for deploying applications into Windows OS and is still the most favored installer tech.
MSI installers are designed as a relational database that stores information about the files, directories, registry settings, and other resources required for the installation process. One of the key advantages of MSI installers is their ability to provide a standardized and consistent installation experience. They support features such as silent installations (unattended installations without user interaction), custom user interfaces, and rollback capabilities in case of installation failures. MSI installers also offer advanced features for application management, including patching and upgrading existing installations. They provide options for handling conflicts, managing dependencies, and enforcing rules and conditions during the installation process.
Overall, MSI installers simplified the installation and management of software applications on Windows systems, providing a standardized and reliable approach for software distribution and installation.
How to Create/Edit MSI
If you are a Visual Studio developer, the easiest way to start creating your Windows installer is to use Microsoft Visual Studio Installer Project from the Visual Studio marketplace. Since this is a free offering from Microsoft, this comes with several limitations.
You could use third-party software like InstallShield to create MSI installers.
Here is short video on how to create your first MSI installer using InstallShield:
Targeting/Preventing installers to run on a specific Windows OS
You may be a developer or a software vendor who is developing apps for modern Windows OS and may want to prevent users running older versions of Windows from running the installer. Or you are developing an app specific to Windows 10 and above and want to avoid Windows 7. InstallShield provides a way to use what’s called ‘Launch Conditions’ in MSI to accomplish this.
Please read this blog post to understand more.
Using Custom Actions when building an installer
Though MSI installers are robust, there will certainly be occasions where you want to execute a particular custom exe or a custom script at a installation sequence. MSI installers have a provision named ‘Custom Actions’ that help you execute a specific script or call a library from a dll during the installation.
Please read this blog post to understand more.
Use of Merge Modules for reusing common components in MSI Installers
A merge module is a component used in the context of MSI (Microsoft Installer) technology. It allows the sharing and reuse of common components and resources across multiple MSI-based installations. Merge modules provide a way to encapsulate and distribute specific functionality or dependencies as a standalone unit that can be included in different MSI installers.
Merge modules typically contain files, registry entries, and other resources necessary for the proper functioning of a particular component or dependency. For example, a merge module may include runtime libraries, shared components, or custom controls that need to be installed alongside an application. By using merge modules, developers can avoid duplicating components and reduce the size of their MSI installers. This modular approach enables easy management and maintenance of shared components, as any updates or fixes can be applied to the merge module, which will then be automatically reflected in all the MSI installers that include it. Merge modules are created separately from the main MSI installer. Once created, they can be referenced and included in multiple MSI projects as a component. During installation, the merge module's contents are merged into the main MSI installer, ensuring that all the necessary files and resources are installed together.
Please read this blog post to understand more.
Resources
Data Sheet
InstallShield 2024
Nahtlose Builds in der Cloud mit InstallShield-Lizenzfunktionen
Data Sheet
Cloud License Server with InstallShield
Get your questions answered about how to eliminate the time and effort required to set up and manage local License Servers. Easily configure your builds from the DevOps build pipeline with InstallShield’s Cloud License Server.
Online Event
“Unpacking MSIX”: Panel Discussion
Watch this roundtable discussion to learn more about how developers can retain as much code as possible as they continue to innovate and modernize applications.
Webinar
TechTalk: InstallShield “Suite” Secrets
In this TechTalk you’ll learn about Suite, a project type within InstallShield, and how it resolves the problem of installing multiple packages, learn how Windows features in Suite works, and how secure it is to send packages via an installer.
eBook
A Developer’s Guide to MSIX
MSIX represents a new, modern runtime environment intended to protect both your application and end-user systems. This one-of-a-kind book will help you retain as much code as possible while modernizing your applications for containerized packages.
Webinar
A Developer’s Guide to MSIX: Hear from the Authors
Join the authors of the recently published “A Developer’s Guide to MSIX” for this one hour webinar, where you can discover why and what MSIX brings to the world of software development
InstallShield
Contact Us
Ready to start your Installation project? We can help you find the right solution for your needs.