I’ve been trying to get Silverlight 2 and Silverlight 3 to run side-by-side on my OS for a while. Amy Dullard has an interesting set of scripts to facilitate this – in effect, the scripts uninstalls the Silverlight 2 tools and replaces it with Silverlight 3 tools if you want to upswitch, then performs the reverse operation if you want to downswitch from Silverlight 3 to Silverlight 2.
This was time consuming in Windows XP. It turned out to be impossible for me in Windows 7 (64-bit). I received one of the mysterious install errors: 0x80070643.
Here are some descriptions of the issues and possible workarounds (which did not work around me):
http://silverlight.net/forums/t/66253.aspx
http://blogs.msdn.com/rjacobs/archive/2009/01/22/windows-7-and-silverlight-installer.aspx
Fortunately, Windows 7 has the XP Mode feature, which is basically a hardware-based virtualization platform with a license for the Windows XP operating system.
It is an add-on for Windows 7 that must be downloaded. Thanks to a former Magenic colleague, I have a premier subscription to MSDN. To run XP Mode, you must install two beta products: Windows Virtual PC beta and Windows XP Mode beta. These can be downloaded from MSDN Subscriber Downloads |Applications | Windows Virtual PC.
Once I had both of these installed, set up the BIOS to support virtualization, and then installed my development software on the XP image, I found that my host OS now had several interesting new entries on the start menu.
Besides being able to open up my virtual instance of XP, I also can access each application installed on my virtual PC. Behind the scenes this is still running my virtual machine, but it appears as if I am running an application in a special “XP Mode” since I never have to log into my XP virtual machine and also never see the desktop for it. Instead, Visual Studio in “XP Mode” simply appears in my Windows 7 task bar next to my Windows 7 instance of Visual Studio. Furthermore, since I have Silverlight 3 installed on my host OS and Silverlight 2 on the virtual machine, I in effect have a Silverlight 2 instance and a Silverlight 3 instance of Visual Studio running next to each other.
By default, XP Mode runs with 256 Megs of RAM assigned to it. I had to pump this up to 2 Gigs before I had decent performance.
Here’s a screenshot of the two instances of Visual Studio running side-by-side. The one on the left has Silverlight 2 running on XP, while the one on the right has Silverlight 3 running on Windows 7. Notice the lack of glass effects on the left. I’ve also circled the Silverlight Tools for Visual Studio version numbers as proof (partly for myself) that I can develop against two versions of Silverlight at the same time: