Visual Studio Setup

Installation and containerization of the Visual Studio family of products

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

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

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

Guidelines for COM Interoperability from .NET (Update 1)

Sometime back I posted Guidelines for COM Interoperability from .NET where I enumerated several practices to follow when exposing types from your managed assemblies to COM. This update is to provide some additional information with the release of the Microsoft .NET Framework 2.0 as well as correct one statement I made with regard to ...

Why is Mscoree.lib So Old?

Some people have noticed that mscoree.lib in the Program FilesMicrosoft Visual Studio 2005VCPlatfromSDKLib directory is older than the release date for .NET 2.0. If you run dumpbin.exe on the two libraries you'll see vastly different time stamps:> dumpbin.exe /headers "Program FilesMicrosoft Visual Studio 8VCPlatfromSDKLibmscoree.lib"Dump ...

Where's Msi.lib?

If you're developing custom actions for Windows Installer or a bootstrapper in Visual Studio 2005, or utilizing the resiliency and install-on-demand features of Windows Installer in your product developed in Visual Studio 2005, you might get link errors for Windows Installer functions. Msi.lib was not included for x86 in the Platform SDK ...

Blog Customizations, Part 3: OO JavaScript

Not satisfied by the search feature provided by Community Server I've again created some helpful JavaScript classes this time using object-oriented JavaScript to define a basic search provider and to subclass that for specialized providers like MSN Search. I defined several private properties and several privileged methods that can access ...

Shell Extensions for .NET Assemblies, Version 1.4.1993

Some time back I made modifications to the previous version of my shell extensions for .NET assemblies to display differences in the column handler for both native and managed binaries targeting the x86, IA64, and x64 platform architectures. Now that the Microsoft .NET Framework 2.0 has released, I've updated my public drops. (image) In a ...

Supporting MSI 2.0 and Newer Features

Like all major upgrades, Windows Installer adds features to at least each major version released. Windows Installer 2.0 added support for managed and Win32 assemblies, signed installer support, and much more over previous 1.x versions of Windows Installer. Windows Installer 3.0 added support for more robust patch sequencing, installing ...

MSI Databases and Code Pages

A Windows Installer database is full of strings. Most times those strings don't cause a problem when using the standard, printable characters found in all code pages. These are called ASCII characters and are the same for the first 7 bits (0x00 through 0x7F) for all code pages except for a few rare code pages in existence for legacy support. ...