Windows application installer frameworks

2019-02-13 04:44发布

问题:

It's always seemed strange to me that downloadable applications would offer multiple types of installers. For example, sometimes you can choose either a .exe or a .msi

Do certain types of installers have advantages over others? Does it matter which one you choose? As a developer, why would I want to offer different installers to my users?

回答1:

One big difference between the exe and msi: You can EDIT an MSI file.
You can access the MSI Database directly using Orca -or- code it up through the WindowsInstaller APIs, using your favorite Windows hacking methods.

Ex. I wrote a python based builder which, amongst many other tasks, routinely edits and updates MSI packages.

A quick warning to brave souls:

Although the APIs seem well documented, a LOT of WI functionality is subtle, even cryptic - the MS Office team definitely did not chose the principle of "least surprise" when they created Windows Installer.

IF you choose to delve into the mystic world of WI, be prepared for long hours of head scratching, tedious debugging and pouring over enormous MSI log files



回答2:

A big advantage of .msi over .exe is that they can be "rebundled" (I don't recall the correct term) by sysadmins for installation over the network for deployment in corporate environments.



回答3:

the exe ones are mostly compressed ones. msi cant compress really good. the msi file you can share/install on your computers directly with windows active directory.



回答4:

In corporate environments, clients are often subject to a "lockdown" policy that prohibits them from downloading EXE files, but usually MSI files are OK.