Visual Studio Setup

Installation and containerization of the Visual Studio family of products

Installing to TARGETDIR

The TARGETDIR property, paired with the SourceDir property in the Directory table, determines the root directory into which all files are copied unless otherwise located. During an administrative installation when all files are extracted the TARGETDIR, this is the only root directory on the file system. The directory structure in the Directory...

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...

Windows Installer Errors 2738 and 2739 with Script Custom Actions

Windows Script custom actions should be avoided. They are difficult to debug, get blocked by virus scanners, and are far more susceptible to machine state than native custom actions. That is indicated by Windows Installer error messages 2738 and 2739, which read: As some people have found, re-registering the runtime libraries vbscript.dll ...

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...

Installation Guidelines for User-editable Configuration

A common problem with installations is user-editable files and registry keys. Configuration of this nature is a problem for every installer technology, but here are some guidelines to help developers overcome problems like users' preferences being reset during repair. Windows Installer is a data-driven installation technology. Installing a ...