Visual Studio 2010 uninstall utility back online

Four years ago I published a utility to help perform a clean uninstall of Visual Studio 2010. Before we added package reference counting and related bundles to Visual Studio setup, we couldn’t always be sure which products were still required so not everything was removed. This utility will remove everything provided one of a few… Read more

Repairing Products after Patches Advertised Features

Windows Installer supports advertising features to enable users to later install those features on demand. But Windows Installer may advertise features in when a component is removed from a feature through obsolescence or supersedence. This will leave the product in a broken state while reporting that the patch installed successfully. Silverlight 2.0 Beta (KB949325) and… Read more

Unadvertise Features

The attached Windows Script file allows you to unadvertise features in a Windows Installer product by specifying either a ProductCode or the path to an MSP. If any features are advertised – whether incidental or intentional – the product will be reinstalled and those features added locally to your computer. Usage Repairs a Windows Installer… Read more

Windows Installer Properties and Conditions

In many languages, some variables can take a value of different types but with the same meaning. Variants in script, for example, can take 0 or false; or they can take any non-zero value and true. The following JScript example prints “Same”. if (0 == false) WScript.Echo(“Same”); The same is not true of Windows Installer… Read more

Windows Installer Errors 2738 and 2739 with Script Custom Actions

Windows Script custom actions should be avoided. They are difficult to debug, get blocked by virus scanners, and are far more susceptible to machine state than native custom actions. That is indicated by Windows Installer error messages 2738 and 2739, which read: 2738, Could not access VBScript run time for custom action [2]. 2739, Could… Read more

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 those private properties, unlike public… Read more

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 to be printed from… Read more

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 document.cookie and a few minor changes to the CollapsiblePanel class, state for unique panels can be remembered. The cookie wrapper class is pretty straight forward: function Cookie()… Read more

Blog Customizations

In my seemingly never-ending quest to provide a simple, compact, yet stylish design for this blog I have recently made a customization based on what Josh Ledgard did sometime back to make collapsible panels, though I wanted something more easily reusable. I whipped together an ECMAScript — that is, ECMA-compliant JScript and JavaScript — class as… Read more