Visual Studio Setup

Installation and containerization of the Visual Studio family of products

Controlling how MsiPatchSequence is Generated

When running on Windows Installer 3.0 and newer, the MsiPatchSequence table dictates how patches apply to a target product install. When using PatchWiz.dll, you can allow this table to be automatically generated, fill it with data yourself, or even prevent it from being generated if you want Windows Installer 2.0 behavior. This means that ...

Don't Install from a Drive Substitution

If you're not familiar with the subst.exe application, it allows you to create DOS devices for a given path using the API. Note in the API remarks the following:Windows Server 2003 and Windows XP: The function creates a device name for a caller that is not running in the LocalSystem context in its own Local MS-DOS device namespace. If the ...

How Patching Works

Previously I blogged about what is in a patch, but how do patches work? To put it imply, patches transform a view of the product or products that the patch targets.Patches (.msp files) contain a set of transforms: one transform changes the target product into the upgraded product, and one transform adds information specific to the patch. This ...

Updated Sample MSI Scripts

Yesterday I blogged about what a patch file (.msp file) contains, as well as most other Windows Installer files. You might find, however, that some of the sample Windows Installer scripts in the Samples\SysMgmt\Msi\Scripts don't work with patch files. The reason is because you must pass (32) to the automation method. This corresponds to ...

What's in a Patch

Windows Installer relies on structured storage for information about the installation package and to store data used by the installation such as any Binary types and cabinet files. Patches (.msp files) are no different in structure but will contain different data. Up until Windows Installer 3.0, patches themselves didn't contain any standard ...

Handling GAC and NGEN Operations after Reboot

Some people have noticed a general slow-down after restarting their computers after installing a .NET Framework 1.0 or 1.1, or a Visual Studio .NET 2002 or 2003 patch. This is due to a change in how post-reboot operations are handled that are sometimes necessary after installing a patch.Windows Installer automatically schedules files for ...

Working with ARPSYSTEMCOMPONENT

Continuing the series on the perils and necessity of , it's time to explain one solution for having your cake an eating it too.If you have determined that you need to define in your product RTM, remember that your product nor patches will not show up in the Add/Remove Programs (ARP) control panel unless you write entries for each to the ...

Major Upgrade Patches

A question was asked in Aaron Stebner's blog about major upgrades via MSP patch files with sequencing information. I would like to take this opportunity — at Aaron's request — to explain a few guidelines regarding major upgrades in Windows Installer.Basically, a major upgrade is an update to a product that changes all of the , , ...

A Reason for ARPSYSTEMCOMPONENT

Last week I blogged about how is dangerous, but there are reasons for using it. Two reasons is defined in the product MSIs for the .NET Framework 2.0 and Visual Studio 2005 is to localize the Add/Remove Programs (ARP) entries, and to change certain registry values so that the external UI handler is invoked to handle the requested operation....