New/old lead program manager Tyler Robinson has a session at PDC to discuss the new features in Windows Installer and ClickOnce in Windows 7:

If you are a developer involved in the creation of application deployment packages using Windows Installer (MSI) or ClickOnce, this session is for you. Learn how you can take advantage of new features in Windows 7 to shorten application installation times, reduce UAC prompts, write less custom code, take less time to write installations for complex packages, and much more!

Not a lot of detail, but some potentially interesting tidbits. To see the information available on the session:

  1. Go to the PDC sessions page.
  2. Click on Windows 7.
  3. Scroll to the bottom of the list; it’s currently the sixth session from the bottom.

Why am I not linking directly to the session? AJAX and Web 2.0, baby. Not even Raymond Chen can make it happen.<sigh>

Posted in Windows Installer at September 26th, 2008. 2 Comments.

Every candidate is sacred.

Posted in Etc at September 21st, 2008. No Comments.

Today is Constitution Day, the anniversary of the signing of the U.S. Constitution. Eat some cake, drink some beer, and vote.

Posted in Etc at September 17th, 2008. No Comments.

WiX v3.0.4513.0 was released on lucky Saturday, 13-September-08. You can download it from http://wix.sourceforge.net/releases/3.0.4513.0/.

New features

  • Aaron added properties to WixNetFxExtension to detect .NET Framework Client Profile.

Bug fixes

Posted in WiX at September 13th, 2008. No Comments.

Major upgrades work across products by associating them with a single upgrade code: Version 1.0 of a product has a different product code than version 2.0 but both share the same upgrade code. The FindRelatedProducts action and MsiEnumRelatedProducts function find any products on the system with a particular upgrade code. The RemoveExistingProducts action then uninstalls the (usually older) products as part of the major upgrade cycle.

Note that FindRelatedProducts and MsiEnumRelatedProducts explicitly support finding multiple products installed on the system simultaneously. MSI doesn’t try to force you to use the same upgrade code only for products that are upgraded by major upgrades. That means it’s possible to use the same upgrade code for products that aren’t major upgrades for each other.

However, the Upgrade table supports only version and language as ways of narrowing down the products it finds. So if you use the same upgrade code for multiple products that can be installed simultaneously, FindRelatedProducts doesn’t have a way to filter out the ones you don’t want removed in a major upgrade.

You can use a custom action to remove product codes from the property specified by the UpgradeVersion/@Property attribute. Just schedule it to run after FindRelatedProducts. The cost is that you have to maintain by hand any such product codes and carry them from version to version.

The Upgrade table and FindRelatedProducts action let you search on multiple upgrade codes in a single product. So it’s always safe to use more upgrade codes if you think you might support having products side-by-side in the future — just use multiple Upgrade elements to detect and uninstall them via major upgrade.

In short, if you have products are never going to be installed at the same time, you can safely use the same upgrade code. But if you have products that might need to be installed simultaneously, give them separate upgrade codes. (Upgrade code GUIDs are cheap when you buy them in quantity from reputable online retailers.) And always test your servicing strategy before you release a product: Some things can’t be fixed in a patch.

Posted in Windows Installer at September 7th, 2008. No Comments.