Visual Studio Setup

Installation and containerization of the Visual Studio family of products

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

Book Review: Customizing the Microsoft .NET Framework Common Language Runtime

As you might have noticed from various posts on my blog I love understanding how things work. When I started learning the Microsoft .NET Framework 1.0 I delved into intermediate language (IL) for most of the assemblies and learned about the hosting interfaces. If you have such a passion for learning how things work then Customizing the ...

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

Fast Searching in Public Folders

I respond to a lot of questions answered on an internal alias for Windows Installer support, some of which inspire posts on my blog. That alias is also archived in a public folder on our corporate Exchange server so there is a vast treasure trove of information for reading - far too much to use Outlook's built-in search.For those also in an ...

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

Blog Customizations, Part 4: OpenSearch Discovery

I'm a big fan of extensibility, which is why I was excited to see in a recent blog post on the IE Blog about OpenSearch discovery using <link/> elements. OpenSearch is a collection of XML schemas and extensions to RSS that enables clients like Internet Explorer to interact with search results in order to discover, query, and parse search...

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