UPDATE: You can now run the Windows Phone emulator on the Windows 8 Consumer Preview using the latest 7.1.1 SDK. As mentioned in the announcement, it’s not officially supported until the Windows RTM and performance is likely to be degraded if Hyper-V is enabled.
If you’re a keen early adopter and have already tried out the Windows 8 Developer Preview, then you may have also tried to do some Windows Phone development on it, too (assuming that you’re reading this because you’re into Windows Phone development, too!). Well, you can’t use the shiny new Visual Studio 11 (the number, not the year!) Developer Preview, you have to do a side-by-side install of Visual Studio 2010 to get the Windows Phone developer tools up and running.
Once you’ve already been through these hurdles to get this far, you may have noticed that the emulator doesn’t work. Thankfully, debugging and deploying to a device does, so all is not lost, but I’ve actually got a solution for.
Before I get to the solution, you may have also tried using the awesome Hyper-V to install Windows 7 on Windows 8 and installing the tools inside this environment. Unfortunately, even though Hyper-V is awesome, this particular scenario doesn’t work either and I’ll explain why shortly.
Get to the Solution Already!
Ok, ok. The solution is to uninstall Hyper-V. Well, OK, that’s a bit extreme, but it works. Alternatively, you can create a 32-bit Windows 8 Hyper-V virtual machine on top of your existing Windows 8 installation. Sounds weird, right? Well here’s why. The virtualization software than runs the emulator doesn’t play nicely with Hyper-V as confirmed by Ben “Virtual PC Guy” Armstrong.
So, while it’s not going to be fast, if you really need to run the emulator on Windows 8 and you don’t want to uninstall Hyper-V, this convoluted solution works even though doing the same with Windows 7 doesn’t because (as confirmed again by Ben) when you run Windows 7 in a virtual machine you get an XDDM display driver, which isn’t good enough for the Windows Phone emulator, however, if you run Windows 8 in a virtual machine, you get a software WDDM driver, which is just what the emulator needs. The reason it’s slow is that it’s a software driver.
Personally, I dual boot my spare dev laptop to Windows 7 and Windows 8, but it’s nice to know there’s a solution if I need one.