Visual Studio Setup

Installation and containerization of the Visual Studio family of products

.NET 2.0 and Visual Studio 2005 Patches will Required MSI 3.1

The .NET Framework 2.0 and Visual Studio 2005, along with SQL Server 2005 and BizTalk Server 2006, will be officially launched November 7th. .NET and Visual Studio, at least, will require that you have Windows Installer 3.0 installed on Windows NT-based platforms, including Windows 2000, Windows XP, Windows 2003, and newer. If you have ...

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

Double-clickable Patches

Beginning with Windows Installer 3.0, bare .msp files can be double-clicked (invoked with the default verb) and will install correctly, assuming no other problems. Windows Installer will determine the updated features based on the changed components and will automatically reinstall those features. The effect is the same as specifying those ...

Building Quality Windows Installer Packages

Building quality installation packages not only helps set up your application correctly but also helps maintain your application. A quality installer fosters quality patches. The Windows Installer SDK offers a lot of information about how to author installation packages but how do you do it right? Why not ask the Windows Installer team?...

Controlling how MsiPatchSequence is Generated

When running on Windows Installer 3.0 and newer, the MsiPatchSequence table dictates how patches apply to a target product install. When using PatchWiz.dll, you can allow this table to be automatically generated, fill it with data yourself, or even prevent it from being generated if you want Windows Installer 2.0 behavior. This means that ...

Don't Install from a Drive Substitution

If you're not familiar with the subst.exe application, it allows you to create DOS devices for a given path using the API. Note in the API remarks the following:Windows Server 2003 and Windows XP: The function creates a device name for a caller that is not running in the LocalSystem context in its own Local MS-DOS device namespace. If the ...

Catching Exceptions in JScript.NET

JScript.NET was created to be compatible with JScript while benefiting from and providing access to more robust features of the .NET Framework. If you're accustomed to more oft-used managed languages like C# and VB.NET, catching different types of exception classes should be no stranger. Considering JScript.NET, however, what would you expect ...

Monad Beta 2 Available

Want a shell that doesn't peak at the for command and that's built on the latest .NET Framework? Monad beta 2 is available for download! Monad is an object-oriented shell that lets you manipulate output and has an extensible provider model so that you can traverse different data sets. Beta 2 ships with providers for Monad aliases, Windows ...

Blog Customizations, Part 2

As mentioned earlier, I wanted to persist your preferences for whether certain collapsible panels were in the collapsed or expanded state. With a simple ECMA-compliant wrapper class around and a few minor changes to the class, state for unique panels can be remembered. The cookie wrapper class is pretty straight forward: To initialize the , ...

How Patching Works

Previously I blogged about what is in a patch, but how do patches work? To put it imply, patches transform a view of the product or products that the patch targets.Patches (.msp files) contain a set of transforms: one transform changes the target product into the upgraded product, and one transform adds information specific to the patch. This ...