What's the different between MSI and EXE? I know MSI is newer than EXE but don't know the advances or disadvantage of the two.
MSI = MicroSoft Installer
EXE = executable
I "assume" MSI is just a smarter installer file - not just a "launch" request
( checks versions / whats there already etc.. )
PS - no idea if this is true - but thats what it seems like
Roll 'em Roll 'em Roll'em,
get those doggies rolling.
Think of it this way, an .exe is local, an .msi can be deployed through various means. Such as Group Policies and SMS, so it adds additional functionality.
EXE files can be anything. Almost everything you run on your computer is started by an EXE file (exceptions are Windows itself, drivers). They contain executable code for a computer to run, and can do anything.
MSI files are database files, used by Windows Installer. They contain information about an application which is devided into features and components, and every component may hold files, registry data, shortcuts etc. The MSI file also contains the UI that is to be used for installing, and various other data such as any prerequisites to look for, custom actions to execute, the order of the installation procedure, whether to support Administrative installations, etc. It can also contain the actual files to be installed themselves (this isn't always the case though, the files can also be in an external CAB file or just as plain uncompressed files in a location where MSI can find them).
MSI files are the current recommended way of doing installations on Windows. The alternative is writing a program that performs the installation itself.
MSI files are executed by an EXE file that is part of Windows, called MSIEXEC.EXE. This application reads the data in the MSI file and executes the installation.
Windows Installer is pretty new, especially the newest version (3.0). Often installations that use MSI still come with an EXE (e.g. SETUP.EXE). This EXE is a so-called 'bootstrapper'. It doesn't perform the installation, it simply checks if the correct version of Windows Installer is present on the system, if not it launched the MSI Redistributable (MsiInstA.exe or MsiInstW.exe depending on the platform) and then launches MSIEXEC.EXE on the MSI file. In certain cases (especially Internet downloads), the MSI file and MSI redistributable are packed inside that EXE file, so you don't see they're there.
So installations can come in three flavours:
1. A custom, third-party installation system in an EXE file.
2. A Windows Installer installation in an MSI file.
3. An EXE file that bootstraps an MSI file (that may be embedded inside the EXE file).
MSI files can only be installations. EXE files can be literally anything that can run on your computer.
Sven Groot wrote:
Windows Installer is pretty new, especially the newest version (3.0).
The first application packaged with Windows Installer was Office 2000, which was released in the second half of 1999. So, it's five years old... not really all that new anymore. Yes, time flies...
Good explanation, Sven.
Seeing as this topic was raised and it can be a confusing area, can I, again, suggest that Channel 9 sees if they can do some videos with the Microsoft Installer team, from things like what Microsoft Installer is, to the future of Microsoft Installer (especially since Microsoft is confusing the issue for many developers as many believe ClickOnce is a replacement for Microsoft Installer).
They are a great community-minded team who can often be found replying to newsgroup threads, etc, so hopefully they would be up for it.
Also, just an FYI, if you make an installation "app" with VS2003, it will not only create the MSI installation package but it will also include a setup.exe bootstrap file that will check for the Windows Installer before attempting to open the MSI package.
Now that we know the difference between EXE and MSI.
How about EXE vs MSC?
MSC files are consoles for the Microsoft Management Console. They are just a data file that says which snap-ins to open. You can create them yourself. Just Run mmc.exe, use File, Add/Remove Snap-in... to add one or more snap-ins, and then File, Save to save the console you just created as a .msc file.
The MMC snap-ins themselves are special DLL files.
So, I haven't seen the question, "When we open a folder to install a program just downloaded, and see BOTH the .exe AND the .msi, WHICH should we launch?"
I'm just sayin'...
Necroing a 6 year old Channel 9 thread. New record? =)