Seeing colors with psake

Psake (pronounced like Japanese “sake”) is a build automation tool similar to others out there like make, rake, etc., but built using PowerShell as the language of choice. So it should be no surprise that I use it for my Windows Installer PowerShell Module. It’s useful for automating tasks not limited to just calling MSBuild,… Read more

How to relocate the Package Cache

Visual Studio can require a lot of space on the system drive. Based on years of data collected from customers’ installations from the Customer Experience Improvement Program, we took advantage of this feature in Burn – the Windows Installer XML (WiX) chainer – to eliminate most errors during repair, servicing, and even uninstall. This was… Read more

Visual Studio 2013 shortcuts in Windows 8.1

Windows 8.1 made a change for RTM – as some MSDN Subscribers might’ve noticed – where newly installed applications’ shortcuts are not immediately visible on the Start menu. They are still installed and indexed, but you need to either swipe down on your touch screen or click the down arrow as shown below. On the… Read more

Delete shadow copies to compact VHDs and AVHDs

For a few years my primary development machine has actually been a VM with source located on a physical hard drive attached to the VM. This helps reduce latency compared to a differencing disk (AVHD) which may need to expand to accommodate additional data (common when building). It’s also easier to maintain than multiple boot… Read more

Testing for components that install under TARGETDIR

A while back I explained how Windows Installer sets the TARGETDIR property to the root of the fixed drive with the most free space available. The problem is that even an attached USB external drive can appear as a fixed drive, and these may be later detached. If components are installed to that drive and… Read more

How to install local help content after installing Visual Studio 2010 RC

After the Visual Studio 2010 Release Candidate (RC) is installed, there is a button to install the documentation locally. If you have overlooked this option or chose not to install documentation locally and wish to do so later, you can follow these instructions. Click on Start. Browse to All Programs Microsoft Visual Studio 2010 Visual… Read more

Booting Windows to a Differencing Virtual Hard Disk

Testing software can be fun and rewarding. You get to see new, upcoming features and provide valuable feedback to the developer. But as with most pre-release software, we recommend that you don’t install it on production machines. You could dedicate extra machines for testing, or even test in a virtual machine. Virtual machines are great… Read more

Enable BITS Logging

Microsoft Visual Studio 2008 Service Pack 1 uses a new bootstrap application that chains several packages together for a seamless installation experience. Because VS2008 SP1 contains a lot of fixes and new features, it is also quite large – almost 3 times as large as VS2005 SP1. To download all this data, we use the… Read more

Functional Testing of Cmdlets

While developing unit and functional tests for Windows Installer PowerShell Extensions, I needed a way to invoke cmdlets without requiring elevation on Vista. That is, of course, because running elevated has always been a bad idea unless it is required. In order to load a PowerShell snap-in, however, one must write to HKEY_LOCAL_MACHINE which requires… Read more

Group by Different Properties for Format-Table

For my Windows Installer PowerShell Extensions, I’ve been simplifying some of the use cases and adding additional formats. One thing I wanted to do was display source list information in a table and group either by the attached ProductCode or PatchCode properties. The format-table cmdlet doesn’t support multiple properties and doesn’t appear to allow you… Read more