Windows Installer - User Interface

Posted November 20, 2003

Chat Date: October 14, 2003

Introduction

Moderator: John_P (Microsoft)
Greetings, everybody, and welcome to today’s Chat; Windows Installer - User Interface

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 for just over four years. I specialize in patching and upgrades, digital signatures, and general architecture.

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: Eugen (Microsoft)
Hello all! I'm Eugen, I have been a developer in Windows Installer for nearly 6 years. User Interface is one of my areas of focus, and have been working on it since I've joined the team.

Host: YuanQing (Microsoft)
I’m YuanQing Ji from the Windows Installer test team.

Moderator: John_P (Microsoft)
And I'm John Perry, MVP Lead for Windows SDK, among others.

Moderator: John_P (Microsoft)
Questions can be posted in the lower window, and we'll work on them on this side and answer them up top.

Start of Chat

Moderator: John_P (Microsoft)
Let's get started! Fire away with your questions for our hosts.

Host: Carolyn (Microsoft)
Q: do MSI support driver installation?
A: MSI does not have native support for driver installation, but there is work in progress by the Microsoft driver team to provide guidelines on how to install drivers using MSI.

Host: Carolyn (Microsoft)
Q: Will there be an explicit sample for external user interface?
A: At this time there aren't plans for an explicit sample for external user interface, but that isn't to say it can't be done. We're always appreciative of feedback on the SDK and what changes or explanations you'd like to see. This is certainly a request that can be taken under consideration. As for the sample, what were you looking for – an actual external UI template?

Host: Eugen (Microsoft)
Q: I would like to issue a SELECT COUNT statement
A: No, that is not possible because Windows Installer's built-in SQL language is not that rich. However you can execute the view and count the records it returns.

Host: Chris (Microsoft)
Q: I am having trouble with MsiGetFeatureCost, it is either returning 0 or a negative number regardless of how I fill out the parameter list. Has this been deprecated?
A: This API is still valid. Without more details, the first thing to check is that the costing actions (through CostFinalize) and the InstallValidate action have completed. The specific required actions are mentioned in the help file topic for the API.

Host: Carolyn (Microsoft)
Q: Not really a UI issue, but what is the proper mechanism for reporting bugs found in WI to Microsoft?
A: There are a couple of options -- (1) contact your Product Support Services representative <https://support.microsoft.com> (2) use the mswish website (although this is more for suggestions than bug reports) <https://register.microsoft.com/mswish/suggestion.asp> or (3) one of the Microsoft MSI newsgroups that is monitored by the MSI team (microsoft.public.platformsdk.msi).

Host: Eugen (Microsoft)
Q: I want to get a password in the dialog...
A: The Edit control has a Password style bit that if you specify the Edit box will not display the characters you type.

Host: Eugen (Microsoft)
Q: How to crop an image in a control....
A: If it is a Bitmap control, you can use the FixedSize control attribute

Host: Carolyn (Microsoft)
Q: Not sure who to frame this to... working on a 2 part development. Part 1 PC, part 2 Pocket PC. Have developed an installer for just part 1 - no probs. As soon as I try to get the installer to install both (with conditions for part 2), it falls over
A: Is your question concerning an MSI installation on the PC or the Pocket PC (because MSI isn't on Pocket PC)? If the problem is with MSI, the first step in troubleshooting is to generate a verbose log file.

Host: Chris (Microsoft)
Q: Will Orca evolve into something more "feature-rich"? It would be most helpful.
A: Orca is intended as a low-level database editor, not a full authoring environment. It will never be as "feature-rich" as some other tools in that respect. However Orca is constantly being improved to make low-level database editing easier and ...more flexible. In the upcoming 3.0 version of Orca, we have added support for changing the code page of the MSI, adding custom tables, canceling validation, respecting the security flags of patches, and editing the metadata inside patch file (NOT the actual contents of the patch file) as well as many other things. The 3.0 version of Orca will be released at approximately the same time as MSI 3.0.

Host: omsharma (Microsoft)
Q: Are there any plans to improve upon nested installations in next release of windows installer?
A: The MSI3.0 release of Windows Installer provides extensive support for application servicing. This release will not provide any additional support to the current nested install model. Enhancements to nested installations will be considered in a future release.

Host: Carolyn (Microsoft)
Q: Is there a handy tool to compare MSIs and see the output in a reasonable format?
A: Perhaps the easiest way to compare two MSIs to see authoring differences is to generate a transform and then view the changes listed in the transform. The Windows Installer SDK includes a utility, widiffdb.vbs, that can compare two databases and display the differences.

Host: Chris (Microsoft)
Q: How about adding a way to open a new Window in Orca so we can view multiple tables at the same time?
A: This is a request that we have heard before and is certainly on the list for consideration in the future, but it will not be available in MSI 3.0.

Host: Carolyn (Microsoft)
Q: re Pocket PC: Thanks Carolyn, I hate to sound dumb, but how do I get the log file to occur?
A: There are two options for generating a log file in Windows Installer. The first is from the command line using the /L option. For a verbose log, use something like "msiexec /i package.msi /L*v logfile.txt". The other option is through the Windows Installer logging policy which will generate logfiles for every installation transaction on the machine. The logs are in the form msiXXXXX.log in the %temp% directory. The Installer SDK has documentation on the logging policy.

Moderator: John_P (Microsoft)
For those of you just joining us, we're chatting with the Windows Installer team about the User Interface.

Host: Carolyn (Microsoft)
Q: Thanks Carolyn. I've got a question re: diffs vs. W2K and WXP. Would it be appropriate to ask it here?
A: Depends on the topic. If it's related to Windows Installer (MSI), it's generally fair game.

Host: Carolyn (Microsoft)

Host: Carolyn (Microsoft)
Q: How do I show status text? I want to display the script name that is being executed?
A: I assume by status text you mean action text information. Most standard actions (built-in functionality in MSI) have ActionText equivalents in the ActionText table of the installation package. For custom actions that you add, you would need to do something similar in order to add ActionText messages by authoring entries in the ActionText table. Note that only deferred custom actions can have associated ActionText. The custom action sample in the SDK for creating user accounts on the local machine illustrates how to use ActionText with the custom action. Your deferred custom action code would also need to send ActionData messages through MsiProcessMessage for the text to show up.

Host: Chris (Microsoft)
Q: Will Orca 3.0 provide access to the _Streams table?
A: The final set of features for Orca 3.0 has not been finalized. Currently there are a few improvements to the handling of embedded streams and substorages, but the access methods have not been changed at this point.

Host: Carolyn (Microsoft)
Q: The default progress status bar is not realistic. It shows 90% done when it is actually 10% done. How do I make it more realistic?
A: There are a number of improvements under consideration for the progress bar (such as unifying the progress bar so there's only one and not multiple, making it more accurate, etc.) As far as helping the accuracy, the best things to do are ensure that your File table is authored correctly with respect to file sizes, any custom actions that you have that might take a long time add on to the progress bar and send the appropriate additional tick messages, and any custom actions that install resources have cost associated with them through the ReserveCost table.

Host: Eugen (Microsoft)
Q: How not to crop an image...
A: For the Bitmap control, if you do not specify the FixedSize attribute, the control should shrink your image. You still need to make sure that your Bitmap control has the size you want it to be, i.e. it does not extend beyond the actual image you're seeing.

Host: Carolyn (Microsoft)
Q: Carolyn, I'm working with an authoring tool that captures system settings for setup.exe for repackaging. Have you seen any diffs in the way a tool might work in capturing settings differently on a W2K or a WXP install?
A: Not that I'm aware of, but it is certainly possible given the differences in the operating systems. Actual differences in behavior would be specific to the repackaging tool that you use -- and you'd probably get a better answer from the tool vendor.

Host: Carolyn (Microsoft)
Outside of that, the recommendation would most likely be to repackage on the same platform with similar machine configuration as the machine that you will be installing on.

Moderator: John_P (Microsoft)
For those of you just joining us, we're chatting with the Windows Installer team about the User Interface.

Host: Carolyn (Microsoft)
Q: Carolyn: Costing custom action - do you mean we should add bogus disk space amounts to the ReserveCost table for lengthy custom actions?
A: If your custom action is installing resources like files, then yes since it is for disk space. Additionally, a custom action can add to the progress bar as well so that it is accounted for. This is accomplished through the MsiProcessMessage API (or the scripting equivalent) via the INSTALLMESSAGE_PROGRESS message type. There's information in the Installer documentation on MSDN for how custom actions can add to the progress bar.

Host: Carolyn (Microsoft)
Q: For a PC/Pocket PC installation, with separate dll and UI files going to each platform, what is the recommended way to set up the install from MSI?
A: You can use MSI for the PC portion of the installation, but MSI is not available on Pocket PC. You'll have to use the normal methods of installation of applications for Pocket PC (more information should be in the Pocket PC development kit).

Host: Carolyn (Microsoft)
Q: If I install a desktop icon to a system with an empty desktop, then uninstall removes not only the icon, but the DT folder as well. I thought folders that existed before installation were not supposed to be removed on uninstall?
A: The installer is generally only supposed to delete those folders that it created or those folders that are empty that have a RemoveFile table entry. This report seems outside the general behavior of MSI. Is this on a particular platform, version of MSI?

Host: Chris (Microsoft)
Q: When doing a System Search based on a ComponentID, why do we need to specify the key path type?
A: Because you are potentially referencing a component from another product, it is not clear whether you are referring to a path or directory (for example "C:\foo" could refer to a directory named foo at the root OR a file named foo at the root).

Host: Chris (Microsoft)
The type flag in the CompLocator table tells MSI whether to verify the presence of the directory or the presence of the file.

Moderator: John_P (Microsoft)
This has been a GREAT chat. - despite some Network interference.... Thank you to everyone. Unfortunately, it is time to go.

Moderator: John_P (Microsoft)
See Everyone at PDC!!!

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 pageTop of page