MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: Per-User ([Next]: Active Setup
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Windows Installer FAQ (the basics)->Installation Types (per-user or per-machine)->Per-Machine Installations with some Per-User Resources

Per-Machine Installations with some Per-User Resources

This is a combination of a per-machine install which installs some per-user resources. Note that I don't cover the reverse situation as that is a bug...

Before taking this approach, please concider a pure per-machine install where the application perfoms user initialization (see below).

As soon as you introduce per user resources into a per-machine msi you have to consider how the installation of these resources will be triggered. These resources are typically installed for the user performing the install, but what about other users that logon?

A common mechanism is to rely on "advertising", frequently by using advertised shortcuts, these will "notice" the missing user resources and invoke a repair.

If this is not possible you will want to invoke a repair or install the resources (from a cached per-machine location) at user logon, some common approaches:

Be aware that the resources are generally not uninstalled along with the package (except possibly for the user performing the uninstall). In some cases it may be possible to do more (depending on permissions etc) but assuming no problem results from leaving them in place its generally better to leave them.

Also see these links:

Best Solution - Pure PER-MACHINE Install - Application Initializes User

If you have any influence with the developers of the product try to get this functionality moved into the application, this would seem to be a good way:

  1. The msi installs default "HKCU\Software\YourCompany\YourApp\Options" registry to "HKLM\Software\YourCompany\YourApp\Options".

    This also allows the installing user control over what those default options are.

  2. When the application gets invokes it detects that the user hasn't been initialized and copies the default registry across from the installed "HKLM" copy.

  3. The approach above applies to files or any other required per user resources also.


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: Per-User ([Next]: Active Setup


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday May 28 2022 at 3:11pm
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.