Visual Studio Setup

Installation and containerization of the Visual Studio family of products

Immediate Custom Actions Always Impersonate

Windows Installer is a client/server application. When you install a package using msiexec.exe - which is executed by default in response to shell verbs such as Install - or APIs like MsiInstallProduct the package is initially processed under the user's credentials. This means, of course, that in over-the-shoulder elevation when administrative...

Unchanged Files Break Patch Uninstall

I've discussed a couple different reasons that Windows Installer 3.0-style patches - those with the MsiPatchMetadata table in the patch package itself - might not be uninstallable. I explained another reason in a discussion about the new patch build support in Windows Installer XML (WiX) v3 recently, describing why unchanged files should not ...

Uninstallable Patches that are not Uninstallable

Patching with Windows Installer is the act of applying a pair of transforms in a patch to a Windows Installer product, then repairing that product. Any changes made in the transforms affect the aggregate view that Windows Installer reinstalls. This is displayed in the diagram below, where the bottom layer is the components in the product MSI, ...

WiX Extension for PowerShell Snap-ins

To write an installer for your PowerShell snap-in, the PowerShell documentation instructs you to extend the PSSnapIn or CustomPSSnapIn class. When you add your snap-in assembly to the Custom Action view in a Windows Installer Project in Visual Studio, the InstallerClass property should be set to True and your installer class will be run when ...

Patch Families Can Only Ever Grow

Peter Marcu has begun talking about new functionality added into WiX 3.0 that he's been working on a lot. One of the specific features is filtering by patch families. Based on a concept Office has used internally, patch families in this case are a set of resources that must be in a patch, and that patch can only be superseded by another patch ...

Hotfix Published for KB925336

When installing Visual Studio 2005 Service Pack 1, users may see an error that reads, Error 1718.File D:WINDOWSInstaller50baad.msp was rejected by digital signature policy. I've published instructions to work around this issue using either the Management Console snap-in or the registry, the latter including a sample batch script to automate VS...

Custom Action Guidelines

Rob Mensching, father of Windows Installer XML (WiX), blogs about why managed custom actions are a bad idea. Aaron Stebner follows up by saying (and has said before): How do you know what's natively supported? Those who know me already know what I'm going to say: read the docs. The Windows Installer SDK has some information if you look for it...

Small Updates Should Usually Target a Single Baseline

Generally, small updates target a specific ProductVersion, and with Windows Installer 3.0 and newer minor upgrades should target the RTM ProductVersion using MinorUpdateTargetRTM in the MsiPatchMetadata table to support cumulative minor upgrades, which is a win for customers. What happens when a small update doesn't target a single ...