Visual Studio Setup

Installation and containerization of the Visual Studio family of products

Digital Signatures in Windows Installer

Digitally signing files helps protect against changes to a file (or any data, really) by validating that a hash of the current file matches the hash stored in the digital signature. Digital signatures also help verify that a package came from a particular publisher by encrypting the hash with the publisher's private key. Verifying the ...

Determine if the Custom Action Function is Exported

Another reason a custom action may not run is because the custom action function isn't exported. This may not be common in most patch build systems, but could arise during authoring or if a binary wasn't updated in the Binary table. You should expect to find a log line similar to the following.MSI (s) (1C:C4) [16:57:23:258]: Doing action: ...

Been Busy on Visual Studio 2005 Service Pack 1

I've been away for a while, though I've barely left the Microsoft campus. As we prepare for Visual Studio 2005 Service Pack 1, I've been very busy with issues: especially an issue with the size of the patch. Visual Studio is probably the biggest product (in terms of the number of files at least; I do know of a couple products using ...

Why a Custom Action May Not Run

When it appears that a custom action in your install package or patch isn't executing, you have to consider a couple of reasons. If the action has a condition in the Condition column of InstallUISequence table, the InstallExecuteSequence table, or any of the other sequence tables, the condition may have evaluated to False. In a verbose log ...

Blank Dialogs for .NET Framework 2.0 Patches

When you download a patch for .NET Framework 2.0 and double-click to install it, you'll find that the dialog is missing some text as in the example below. (image) This is due, in part, to a bug in Windows Installer when the ProductLanguage property is 0 in the Property table. Windows Installer contains localized string tables for some ...

Windows Installer SDK Tools and UAC Prompts

When using the tools from the Windows Installer SDK you might see the following dialog on Windows Vista. (image) Windows Installer tools like msidb.exe shown here, msicert.exe, msifiler.exe, msiinfo.exe, msimerg.exe, msimsp.exe, msistuff.exe, msitran.exe, and wilogutl.exe use Windows Installer file functions. Msizap.exe is the only tool that ...

Find the Product

The Windows SDK Team instructs users how to uninstall older Platform SDK installations without the original source installation media. As part of their instructions, they write, RemoveProgram FilesMicrosoft SDK folder This is the painful part: Find all .msi that are releated to the February 2003 release in %windir%installer from the cmd ...

Cumulative Service Packs with MinorUpdateTargetRTM

Microsoft has had a long-standing policy of providing cumulative service packs - service packs that can be installed for a product whether a previous service pack for that product has been installed or not. Prior to the release of Windows Installer 3.1, minor upgrades which typically serve as service packs had to contain a pair of transforms...

Be Careful or Even Avoid Using Type 35 Custom Actions

My blog was pretty quiet for a while because of a problem we ran into regarding Windows Installer type 35 custom actions. These custom actions change the target location for a directory.Developer Division uses type 35 custom actions for vertical integration with other editions of our Visual Studio products, so that installing products with ...

Always use Unique Package Codes

It's well documented and understood that package codes should be unique for product and patch packages. The package code, also referred to as a patch code for .msp files, is a unique identifier for that package. For patches, the patch code may also be used for obsolescence, where patch codes for patches to be obsolesced are entered into the ...