Q & A from latest Windows Installer Webcast available

Thanks so much to those who attended our latest webcast last week. For those of you who missed it, the webcast is available for on-demand viewing here. Also, if you have ideas for future MSDN Webcasts or Chats, please let us know by leaving a comment on this posting.

Here is the Q & A from the webcast:

Jaydeland Asked: Is running another MSI from a VBScript Custom Action the same as using a Nested MSI install?

Answered: Concurrent Installations, also called Nested Installations, is a deprecated feature of the Windows Installer. Applications installed with concurrent installations can eventually fail because they are difficult for customers to service correctly. If you need to use if for your internal deployments you should not be running MSIs from VBScript Custom actions. VBScript custom actions tend to fail randomly for various reasons. You should author your MSI to run as Type 7/23/39 custom actions.

Sairen Asked: FilesInUse never worked with some of my apps since they are services without a UI. Will this new dialog work better with services?

Answered: If restart manager is used for detection, services (or window-less apps) will be detected.

Jaydeland Asked: Will 4.0 ever be released for old Operating Systems?

Answered: Currently 4.0 comes only with Vista.

Jaydeland Asked: Are nested installs still supported with 4.0?

Answered: Yes nested installs are still supported in 4.0. Concurrent Installations, also called Nested Installations, is a deprecated feature of the Windows Installer. Applications installed with concurrent installations can eventually fail because they are difficult for customers to service correctly. Do not use concurrent installations to install products that are intended to be released to the public.

Gareth Asked: I have tested the MsiRMFilesInUse dialog in one of my projects and after the app closes I get a message telling me that "The setup was unable to automatcally close all requested applications." Is this a problem with the app not responding to the messages and returning correctly? Is there an option for the installer to ignore them?

Answered: You might want to generate a verbose log file and take a look at which processes did not shut down. There could be a number reason why Restart Manager was unable to shutdown a process. For example, if the process was a critical / system process or if the process holding the file was MSI (msiexec.exe) itself.

DAQ Asked: Vista seems to prevent modification of registry keys under HKEY_LOCAL_MACHINE even if a user is logged in with an administrator account. How should the install work around this issue?

Answered: This is becuase of UAC behaviour of Vista. You can modify the keys under HKEY_LOCAL_MACHINE in installExecute sequence once the UAC has the elevation cridentials from the user.

Sairen Asked: When you refer to "setup.exe installers" are you referring to script-based installers or to setup.exe's that bootstrap an MSI package? Or both?

Answered: Tyler is referring to bootstrap MSI packages.

Megh Neupane Asked: how does the reboot manager work for session files? Additionally, MsiRMFilesInUse Dialog can be made silent too, right?

Answered: By default (Restart Manager enabled), silent UI installs will use Restart Manager to automatically shutdown applications. You could use our built in properties to control how applications shutdown and restart.

Ludwig Asked: Can I override the "setup.exe" detection so that when running a setup.exe (for example as created by InstallShield) it is not elevated until the installation actually needs the priviledge (i.e. when the UI sequence is finished and the execution sequence starts)? If yes, how?

Answered: This can be done by manifesting your setup.exe to asInvoker. This way, the UAC elevation prompt will be prompted from inside the Windows Installer service

Gareth Asked: Regarding the earlier query of HKLM being locked to even administrators. Is it permitted to use the LockPermissions table to give full control to your own registry areas?

Answered: On Vista even members of the Administator group run as normal user. LockPermissions table will not work for your scenario. If you think you will need admin permissions then you can have a bootstrapper (setup.exe) and manifest the RunLevel of requiresAdministrator

Rob Asked: Which areas of the registry should we expect to have access to both during the install and after the install?

Answered: What do you mean by during the install and after the install? Are you talking about the InstallUISequence and InstallExecuteSequence? All the registry keys that are accessible to the user (as a normal user) are accessible during InstallUISequence.

Megh Neupane Asked: Is Windows Installer 4.0 going to be a redistributable any time soon?

Answered: Currently we don't have any plans of making MSI 4.0 redistributable.

Stefan Krueger Asked: If I use a setup.exe launcher that is manifested as requiresAdministrator, will custom actions in the UI sequence (and impersonated custom actions in the Execute sequence) have full access?

Answered: Yes the custom actions in the UI sequence has admin access. Imporsenated custom actions run as user and hence will have the same access as the user has.

Ludwig Asked: I assume that if you are running a setup.exe that is elevated by the setup detection logic then immediate CAs are running at the elevated level?

Answered: Yes the immediate CAs are running at the elevated level.

curtiss Asked: can this installer run on xp

Answered: MSI4.0 is not a redistributable and hence will not run on XP. It will run only on Vista.

Stefan Krueger Asked: How can I specify the log file location if I enable logging using MsiLogging? I understand MsiLogFileLocation is read-only.

Answered: You can specify log file location using MsiEnableLog function. If you are using MsiLogging property MSI will create the log file in the user temp directory.

Rob Asked: That splits my code tree, doesn't it: Won't I have to maintain an installer for both XP and Vista, then?

Answered: You can design your package to work with previous versions of installer as well as with 4.0. MSI 4.0 is compatible with previous versions of MSI.

Rob Asked: I know this is a novice question, but I'm coming at this technology from Installshield 6. Is there any resource which can clearly spell out how to begin with Windows Installer technology, regardless of version?

Answered: You can start with Windows Installer Examples at http://windowssdk.msdn.microsoft.com/en-us/library/ms710776.aspx to get yourself familiar with MSI.

Ludwig Asked: Does the Restart Manager also get invoked when running an uninstall (i.e. the application being uninstalled has components that are loaded by other applications running on the machine, which are not unloaded just because the application itself has been shut down)?

Answered: Restart Manager (if not disabled) will get invoked during the UnInstall.

Thomas in Sweden Asked: Any progress on the problem of "Unknown application" in UAC when you uninstall or upgrade?

Answered: We will be having a blog posting and KB article on this topic. It is expected behavior and will be this way on Vista.

Megh Neupane Asked: Scenario: I install an app with UAC disabled as elevated, later I decide to turn ON the UAC. Does this impact the application if elevated priviledges are required while running the app?

Answered: If elevated privileges are required to run the app, the the app will need to be run as administrator if UAC is turned on.

Thomas in Sweden Asked: Is the requirement of installing from "removable media" in order to get "UAC patching" removed? In the presentation it didn't look like you installed from a removable media.

Answered: Correct - that is no longer a requirement. Please see the topic in the SDK for updated information.

Sairen Asked: I'd like to hear more about punting setup.exe, like Tyler started to talk about.

Answered: The question was about the upgrade experience with pure MSI. Apparently the person asking the question was concerned about doing "reacache and reinstall"-type updates and the complex command line associated with them. We recommend you use patches for small and minor updates and full-MSI packages for major upgrades. This provides the best experience all around.


[Author: Tyler Robinson]

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm.