MSI Chat - General Discussion
Posted January 31, 2004
Chat Date: November 11, 2003
Please note: Portions of this transcript have been edited for clarity
Introduction
Moderator: John_P (Microsoft)
Greetings, everybody, and welcome to today’s Chat: MSI Chat - General Discussion
Moderator: John_P (Microsoft)
I'll now ask the hosts to introduce themselves...
Host: Carolyn (Microsoft)
Hello! I'm Carolyn, a developer on the Windows Installer team. I specialize in patching and upgrades, digital signatures, and overall architecture. Looking forward to chatting with you all today.
Host: Chris (Microsoft)
Greetings! I'm Chris, a developer on the Windows Installer Team. I've been working on MSI for about five years, with my areas of focus including custom actions, security, validation, source resolution, and overall architecture.
Host: Hem (Microsoft)
Hi, I am Hemchander, a developer on the Windows Installer Team. My areas of focus include installer performance and patching.
Host: KenWong (Microsoft)
Hello! I am Ken, a tester on the Windows Installer Team.
Host: omsharma (Microsoft)
Hi, My name is Om Sharma. I am the Program Manager for the Windows Installer. .
Moderator: John_P (Microsoft)
And I'm John Perry, MVP Lead for Windows SDK, among others.
Moderator: John_P (Microsoft)
Live today, from Driver Dev Con!
Moderator: John_P (Microsoft)
Let's get started! Fire away with your questions for our hosts.
Start of Chat
Host: Carolyn (Microsoft)
Q: In the installer project's File Search launch conditions, there currently isn't a preset variable to indicate the GAC as the target search directory. Short of specifying the entire path to the folder in the GAC, is there a way to make the installation dependent on the existence of certain assemblies in the GAC?
A: You could use the CompLocator table to check for the presence of a specific component (in this case, the component to which the assembly belonged).
Host: Carolyn (Microsoft)
Q: In a Web Setup package, can you indicate that you want to launch the new website after installer completes?
A: Depends on the web setup executable used to launch the web-based installation. If you want a file or website to be launched at the end of installation, you can accomplish that using a custom action. There's an example in the Windows Installer documentation on MSDN - "How do I use a custom action to launch an installed file at the end of the installation?"
Host: Chris (Microsoft)
Q: Windows Installer Dialogs seem to have a lot of painting issues. For example, when a browse dialog covers an existing dialog, and is then dismissed. Is there a workaround? Will this be fixed in 3.0?
A: There are some areas where the Installer does not paint the underlying dialog controls in the correct order when a spawned sub-dialog is dismissed. I am not aware of any current plans to perform work in this area for MSI 3.0, but you can submit your request through any of the normal feedback methods and your request will be sent to the correct people.
Host: Chris (Microsoft)
Q: Can I initiate external UI through custom actions? I need to handle only the progress control dialog from my custom UI?
A: This is not currently possible. ExternalUI must be launched from an external process. This is a common feature request and is under consideration for a future version of the Installer but it is too early to say for certain what will happen.
Host: Carolyn (Microsoft)
Q: does MSI support shareware/trial apps?
A: Yes, MSI is an installation technology so it can be used to install the application. However, there is no built-in support for restricting the valid period for the application. You'd have to build that into the application itself.
Host: Hem (Microsoft)
Q: UIPreview allows interaction with the dialogs to some degree. Why is the dialog not fully disabled?
A: The purpose of the UIPreview functionality is to get you a feel of how the dialogs look and feel. Though you interact with the controls in the dialog, they would do nothing useful for you, anyways.
Host: Chris (Microsoft)
Q: is there any plan to go back and convert products like SQL Server to MSI format?
A: It is unlikely that existing products which use another setup technology would be re-released using MSI. It is more likely that future versions of a product would switch to MSI, however each product team evaluates the use of MSI for their own product's install, so you would need to contact the SQL Server team about their future plans.
Host: Carolyn (Microsoft)
Q: FOLLOW UP - VisualStudio.Net installation has support for external UI but initiated from within the MSI sequences?
A: VS.NET is a complete external UI solution. Their UI is actually HTML based. The setup.exe establishes the external UI before launched the setup. In essence, it makes calls to MsiSetInternalUI and MsiSetExternalUI before driving the installation
Host: Carolyn (Microsoft)
(MsiInstallProduct). I'm not 100% sure on the MsiInstallProduct, but I am sure on the MsiSet*UI API usage. VS.NET also has its own custom sequence table that it executes first with the MsiSequence API. The other API typically used in driving an install is MsiOpenPackage and MsiDoAction.
Host: Hem (Microsoft)
Q: The Windows Installer Service is set to manual by default on servers and workstations. What exactly triggers it to start?
A: An installation operation like install/uninstall/repair/patching would typically start up the service..
Host: Carolyn (Microsoft)
Q: Currently, the File Search launch condition only finds assemblies of a specific a version number if only the Major, Minor and Revision are specified. It fails to find the assembly if the Build number is used. Can we expect this to work in the future?
A: Depends on how this corresponds to native MSI functionality. Visual Studio Installer is an authoring environment (that is generally outside of the Windows Installer team -- we typically use Orca). The Signature table in MSI supports 4 fields. If it's a custom action that the launch condition relies upon in the VSI-generated package, then the experts for the answer would be the VSI team. Perhaps one of the VS public newsgroups (microsoft.public.vsnet.*) would be of assistance.
Host: Chris (Microsoft)
Q: Is there a way to control the order that MSIs get installed when using AD to deploy code to a OU using policies
A: Unfortunately, there is no way to specify installation order.
Host: KenWong (Microsoft)
Q: What msi api should I use to install an msp ?
A: One API you could use is MsiApplyPatch. =You could also apply a patch during the installation of a product with MsiInstallProduct,MsiConfigureProductEx passing the PATCH=<path to patch> for the szCommandLine parameter. .
Host: Carolyn (Microsoft)
Q: where can I find info on the differences in packaging for XP vs W2k?
A: Depends on what you are looking for. If it's related to the differences in Windows Installer versions, then the Windows Installer MSDN documentation "What's new in Windows Installer version 2.0" offers some insight as to the new features in MSI 2.0.
Host: Carolyn (Microsoft)
Additionally, if you are about repackaging, it is generally recommended that the machine used for repackaging be clean and match the OS+hardware configuration of any of your client machines as much as possible.
Moderator: John_P (Microsoft)
Q: shmorgan : Can the installation order of MSIs be controlled with SMS
A: that’s probably a better question for the SMS team - Ill see if I can find some links or chats coming up soon.
Host: Chris (Microsoft)
Q: experiencing a problem with the legacy, shared dll, count when performing an upgrade with RemoveExistingProducts between InstallValidate and InstallInitialize, is this a know bug?
A: Its difficult to say what is happening without detailed information about the scenario. For example, is the file being removed because the count is too low or retained because the count is too high? Does the file have a refcount before the product is installed? Is it shared by more than one non-MSI product? Is it installed in the System Folder? Since it is difficult to investigate such complex behavior in a chat, you might consider posting your question to the MSI newsgroups or contacting MSI Developer Support.
Host: Carolyn (Microsoft)
Q: How do I find out whether an MSI package was installed using Group Policy or directly from media?
A: It's generally not distinguishable because MSI really don't care about the installation method. The INSTALLPROPERTY_INSTALLSOURCE property (queryable via MsiGetProductInfo) could be processed, but not necessarily reliably in all cases. The Application Event log has entries when group policy invokes an installation (although I can't tell you the event IDs off hand).
Host: Chris (Microsoft)
Q: How do I advertise an MSI package so that it appears in the Add New Programs in ARP?
A: Publish the app through Active Directory. Apps which are available but not pushed-down automatically (Assigned apps) are made available in the "Add New Programs" section of ARP.
Host: Chris (Microsoft)
(My explanation may have been a bit unclear. To clarify, apps which are pushed down are the assigned apps. Apps which are not pushed down are published apps.)
Host: Carolyn (Microsoft)
Q: I heard that repackage that are already MSI is not good
A: What you've heard is true. You should generally avoid repackaging something that was already provided as an MSI. If you wish to customize the setup, use customization transforms.
Host: Chris (Microsoft)
Q: (Follow-up) Is there a programmatic method to achieve this without publishing it thru AD?
A: No. ARP queries Active Directory to obtain the list of apps and to determine how to install the apps when one is selected.
Host: Carolyn (Microsoft)
Q: Can I install an administrative install and a patch in one command, or do I have to do the admin install first and then patch that?
A: This should be feasible, but for only one patch. You would do something like "msiexec /a package.msi PATCH=patch.msp". Basically, just include PATCH=<path to patch> on the msiexec command line when performing the administrative install.
Host: Carolyn (Microsoft)
Q: How do you associate a patch with a new MSI installation in AD? "Modifications"?
A: With AD and Group Policy Software Deployment, you have to use administrative images and patch the admin image directly. You would then use the "redeploy" option to force all of the clients to perform recache/reinstalls to update from the admin image.
Host: Carolyn (Microsoft)
Going forwards, the recommendation is to avoid using patching of admin images (keep it the gold image) and use Software Update Services (SUS) for providing the updates.
Moderator: John_P (Microsoft)
For those of you just joining us, the hour's chat topic is: MSI Chat - General Discussion
Host: Chris (Microsoft)
Q: Is it a recommended best practice to ship Major Upgrades as patches? Or not to?
A: The recommendation is to NOT ship major upgrades as patches. Major Upgrades released as new MSIs using RemoveExistingProducts almost always result in a better end-user experience and admin management scenario.
Host: Hem (Microsoft)
Q: What are the OSes that will be supported by the release version of MSI 3.0 ?
A: MSI 3.0 can be installed on to Win 2000 SP3, Win 2003, Win XP..
Host: Carolyn (Microsoft)
Q: So if we can not repack apps that are not validate to be deploy by group policy, is it another way?
A: It depends on why group policy won't allow deployment of the update. Typically the most common problem is either (1) you already have the application installed on the machine from which you are attempting the deployment or (2) there are too many CLSID entries in the Class table. The Active Directory schema has a limit as to what it can support. The first one is easily solvable (and isn't a problem on WS2003).
Host: KenWong (Microsoft)
Q: What are the sources of debug information is available in the client for failed installs?
A: You can gather information about the installation through logging which is useful when debugging failed installs. One method is through command line by adding the /l*v <path to log file> at the end. Another way to enable logging is through policy.
Host: omsharma (Microsoft)
Q: Can you explain Software Update Services (SUS) a bit more? Is this SMS or something equivalent?
A: SUS enables admins to deploy critical updates and security fixes to Windows client and server machines. SMS provides a complete system management solution including updates, inventory, application deployment, etc.
Host: omsharma (Microsoft)
You can find out more about SUS and SMS from the following links: https://www.microsoft.com/windowsserversystem/sus/default.mspx and https://www.microsoft.com/smserver/default.asp
Host: Carolyn (Microsoft)
Q: How do I monitor the installation of a package during the install?
A: You can partially accomplish this using an external UI handler that filters for everything. Additional custom actions may be used to query states and properties and particular points in the installation. Additionally you could use the MSI API to drive an installation action by action (or sequence by sequence).
Host: Carolyn (Microsoft)
Q: Are there any Microsoft Press books, or other resources you can suggest for learning more? Courses? Exams?
A: The InstallSite website has a good listing of the books that are available for the Windows Installer <https://www.installsite.org/pages/en/msi/books.htm>.
Host: Chris (Microsoft)
Q: I know this isnt a discussion on betas, but I'm curious about the product path for installer. Longhorn appears to have MSI 4.0, and 3.0 is in beta, what is currently envisaged for MSI 4.0?
A: MSI 4.0 (the MSI version in the Longhorn Beta) is essentially the same as the beta release of MSI 3.0. Details on MSI 4.0 are not yet available.
Host: Carolyn (Microsoft)
Q: Is it necessary to update VStudio to use MSI3.0?
A: No. MSI 3.0 is targeted at improving servicing for MSI applications through patching. VStudio primarily doesn't create patches. You have to use external tools to accomplish that (all of which will be updated in the Windows Installer SDK to enable this).
Moderator: John_P (Microsoft)
This has been a GREAT chat. Thank you to everyone. Unfortunately, it is time to go.
Moderator: John_P (Microsoft)
To find out more visit https://www.msdn.microsoft.com/chats/
For further information on this topic please visit the following:
Newsgroups: microsoft.public.platformsdk.msi
MSI Transcripts: Read the archive of past MSI chats.
Website: Visit the Microsoft Windows Installer site.
Top of page