Visual Studio Setup

Installation and containerization of the Visual Studio family of products

Building with Wix.Targets

I've been away for a while working on a high priority issue that I'll discuss in detail soon, as well as investigating a common issue regarding 32- and 64-bit installations about which I'll write a new series of posts. For much of that work I've been using Windows Installer XML, or WIX, which allows me to build Windows Installer packages, ...

Identifying Windows Installer File Types

I've been writing a number of helpful tools at work such as a tool to extract transforms and cabinets from a patch and wasn't satisfied relying on the file extension to identify a patch, or other Windows Installer file types for that matter. File extensions are only one way to help the shell to invoke actions on files, filter file types in ...

Determine Which Files are Being Patched

Installing a patch will often mean that files are to be updated, though patching isn't limited or even required to just patch files. Starting with Windows Installer 3.0 you can find the final sequence of patches to be installed or reinstalled in a verbose log file similar to the following:MSI (c) (8C:C4) [14:27:53:319]: Final Patch Application...

Extract Files from Patches

From the mailbag, someone asked how to extract files from a patch. Now presumably one would want to extract the files as they apply to a product if the patch were installed but I will cover both ways because one can lead to the other. If you're looking for the simplest and quickest way to extract files from a patch skip toward the end; ...

Common Controls in Windows Installer UI

Notice the differences between the following two dialogs from the same Windows Installer package on the same Windows XP machine.(image) (image) The first dialog is displayed when launching a sample .msi file using the msiwai.exe program I detailed before. The second dialog is displayed when the sample .msi file is launched from Windows ...

Differentiating 64-bit Editions of Windows XP and Windows Server 2003

Microsoft Windows provides a lot of base services on which applications can be written, but there are differences between all the various editions of Windows. While it's far more common to have a minimum dependency on a particular platform, cases may arise where an application may require, for example, Windows XP but won't run on Windows ...

64-bit Managed Custom Actions with Visual Studio

A reader who happened across my post on Windows Installer on 64-bit Platforms mentioned a problem with running 64-bit managed custom actions using the Visual Studio 2005 Windows Installer project. This also recently cropped up in an internal discussion alias.The issue is that if you build a managed class library project targeting a 64-bit ...

Developer Division Servicing Site Launched

Servicing a large product like Visual Studio or a side-by-side component like the .NET Framework is no small task and is full of challenges. This blog currently describes some of those challenges in hopes of helping others avoid some of the same problems.Today, a site dedicated to servicing Visual Studio and the .NET Framework has launched on ...

Setup.exe Bootstrap Sample and APPVER

On an internal alias - which inspires many of my blog entries - someone wasn't able to run the sample bootstrap executable setup.exe, found in the Samples/SysMgmt/Msi/Setup.exe folder in your Platform SDK installation root. The error was "setup.exe is not a valid Win32 application" when run on Windows 2000 but the sample worked fine ...

Why is My Feature Advertised?

If you're patching a feature or features of a Windows Installer package and see that a feature you know to be installed locally is now advertised, look for the following in your Windows Installer log:MSI (c) (B8:C0) [12:00:00:000]: SELMGR: ComponentId '{01234567-89AB-CDEF-0123-456789ABCDEF}' is registered to feature 'FeatureA', but is not ...