Specific advantages of MSI based installation over MSI wrapped script based installation?
Asked Answered
T

3

5

Disclaimer: I've still never gotten beyond the most basic WiX tutorial, because every time I try to understand the concepts, my head starts spinning.


I've been reading Is it feasible/sensible to wrap an InnoSetup installer inside an MSI for easier distribution via AD? :

  • There is a tool (look for exemsi MSI wrapper) today that can wrap a script/exe based installer, like InnoSetup, and provide install, upgrade and uninstall.
  • From my experience, that's what users expect: Can install product, newer setups can upgrade it, uninstalling will remove product.
  • Yet quite a few answers on that question state that only a "true" MSI can reliably provide "all"(?) required(?) features.

So, given that what I always thought an installer was supposed to do is:

  • Install product with as little hassle as possible
  • Allow repairing a product (possibly by simply running the setup again)
  • Allow upgrading of product via a newer setup
  • eventually uninstall the product, leaving as little trace as possible.

The question is, given that it is proven that, given the right tool, the points above are possible by simply wrapping an exe in an MSI, what additional advantages do "real" MSI packages offer?

To be clear here: An MSI package does (seem to) offer additional benefits for enterprise / AD / GPO distribution, that you don't have if you have a bare .exe installer - I don't question that. What I'm interested in is what - actually used - features are only possible through a "real" MSI package?

Titanite answered 21/12, 2016 at 22:51 Comment(4)
Speaking as a sysadmin, native MSI packages (almost) always support features such as silent installation, and correctly return an error code if the installation fails. MSI wrappers aren't always as reliable in my experience.Blackmarketeer
@HarryJohnston - thanks for that note. Yeah, the wrapper needs to correctly forward error codes, and the silent-install needs to be taken into account, but both are possible with "just" wrapping.Titanite
Definitely possible, provided of course that the original executable generates error codes properly and supports silent installation. I just meant that it's something you need to explicitly support with a wrapped package, that you get for free if you build a native MSI.Blackmarketeer
@HarryJohnston - yeah, but in one case I got an InnoSetup installer fully ready that works silently and does some amount of error return fix-ups (at least in the restart case). So I have everything for free with wrapping, if I didn't miss anything crucial that a native MSI could buy me :-)Titanite
C
5

MSI supports installing additional features on demand. A shortcut (.lnk) created by MSI contains special metadata recognized by Windows and can automatically repair and/or install missing features.

Another advantage is that non-administrators can install patches without UAC elevation if the package is signed.

Some disadvantages of MSI are:

  • Cannot create a single .msi for 32-bit and 64-bit targets.
  • Single user/non-elevated installers can be problematic because the support for this has changed over time and new MSI properties have been added.
  • Depending on your minimum supported Windows version you might have several major versions of MSI to test/deal with.
  • Bloats your system drive by storing the full .msi in %windir%\Installer on recent versions of Windows.
  • Bloats the registry by storing the path and other information about every single file it installs.
Cetology answered 22/12, 2016 at 0:0 Comment(2)
Thanks. Not two features I ever needed, but good to know. I like it how I asked for advantages and you listed threeish -- and then listed 5 cons :-DTitanite
I could probably list more cons if you twist my arm ;) MSI of course has other unique features like transforms and merge modules but I'm not sure if I would call them advantages.Cetology
E
4
  1. Installation or removal operations are by Feature (of a Product). This is not as relevant as it used to be because of the trend toward smaller installers with fewer questions being asked of users. For large installers, for example Visual Studio and SQL Server, questions are asked via bootstrappers--the opposite of what you are considering.
  2. Installation, repair and removal are by Component (across all Product and Version). Reference counting is under the control of Windows Installer and is less likely to become corrupted than the pre-Windows Installer technique. Shared components are now less common because of different application technologies such as .NET and registration-free COM. Large systems might share components but again they might be divided into separate installers so that no Component is needed by more than one Product.

Whether these are advantages depends on the needs of your installation architecture.

Empedocles answered 23/12, 2016 at 18:45 Comment(0)
S
0

MSI supports advertisement of the available application without installing them (more details in this MSDN post). It's handy in a corporate environment as it allows deploying only the most essential applications and 1) saves physical space on user machines; 2) reduce expenses for apps with per-user licensing (only those who really need that app will actually install it and activate the license).

Sib answered 28/12, 2016 at 13:58 Comment(1)
Thanks. Never been into rhat feature set. Also, from reading your short, it seems that could be done by a wrapper. Doesn't at first glance seem like something I'd need "native" MSI components for.Titanite

© 2022 - 2024 — McMap. All rights reserved.