05 March, 2014

Installing Windows Phone SDK 8.0 on a Windows 8.1 Virtual Machine

I've been meaning to learn some basic app development for quite a while now, but I never really get around to do it. I kinda need something specific and usable to get the motivation, rather than just doing "Hello World" examples. Now I'll try once again, and this time, for no particular reason, I've settled on Windows Phone 8.

I started by visiting Windows Phone Dev Center to figure out what I would need. And this is where I got the great idea to use a virtual development environment. I already use Vmware for some virtual machines, when testing some things, so Hyper-V was kinda out of the question, as installing Vmware and Hyper-V side-by-side was somewhat of a no-go. Well, it could be done, as I gathered, but I wouldn't be able to run 64-bit guest OS in Vmware then. I wasn't interested in that.

A bit of Google-fu turned up this article on the Nokia Developer Community. Essentially you just create a virtual machine in your Vmware and enable Hyper-V for the virtual machine. This is especially handy if you're using a Mac OSX computer, as the same procedure goes for Vmware Fusion.

I get everything installed and finish my first (MiniBrowser) project. But when I try to test it, I get compatibility errors, and the virtual Windows Phone emulator doesn't start. Hmmm?

The issue, of course, was that I installed Windows 8.1 Enterprise evaluation, and not Windows 8 Enterprise evaluation, as the article suggested. Apparently there's a couple of compatibility issues with Visual Studio 2012 and Windows 8.1. The simple solution were to download and install Visual Studio 2012 Update 4, after which the emulator ran without any problems.

To recap...
  • Install Vmware Workstation or Fusion (depending on your platform).
  • Create your virtual machine (Install later, Windows 8, 2 CPU cores, 4 GB memory, 60+ GB HDD)
  • Ensure Hyper-V functions are enabled on the virtual machine:
    Check the "Virtualize Intel VT-x or AMD-V/RVI" option under Processors (something else, but similar for Fusion).
    Shut down and close the virtual machine, then add the following 2 lines to the virtual machine .vmx file:
    1. hypervisor.cpuid.v0 = "FALSE"
    2. mcd.enable = "TRUE"
  • Download and install Windows 8.1 Enterprise evaluation on your virtual machine
  • Download and install Windows Phone SDK 8.0.
    It includes Visual Studio Express 2012 for Windows Phone, and will enable Hyper-V for your.
  • Download and install Visual Studio 2012 Update 4.
    Fixes the Windows 8.1 compatibility issues, and is required for the following updates.
  • Download and install Windows Phone SDK 8.0 Update 3 Emulators.
  • Download and install Windows Phone SDK 8.0 Update for Windows Phone 8.0.10322.