Software7

Personal Developer Notebook

Windows Phone Emulator inside VMWare Fusion (Hyper-V)

 

Want to run Windows Phone Emulator inside VMWare Fusion?

The short version

  • shutdown your Windows 8 guest

  • navigate to your .vmx file

  • add the following two lines at the end:

    hypervisor.cpuid.v0 = FALSE

    vhv.enable = TRUE

  • restart the Windows 8 guest

The long version

System Requirements – Hardware

You need a CPU that includes a virtualization option (Intel VT-x) as well as a Second-Level Address Translation (SLAT), which is called Extended Page Tables (EPT) in Intels case.

Intel’s Core-2-CPUs don’t support EPT, you have to have at least a Core-i-CPU.

If you try to run it on a Core-2-Duo CPU the following message appears:

Virtualized Intel VPT-X/EPT is not supported on this platform.

Error Message on a Core-2-Duo CPU

Apple only offers Intel-based computers, anyway just for completeness: AMD’s equivalent to VT-x is named AMD-V, and the equivalent to EPT is named RVI (Rapid Virtualization Indexing).

System Requirements – Software

  • VMWare Fusion 5 (might also work on VMWare Fusion 4, didn’t try it myself)
  • 64-bit version of Windows 8
  • Visual Studio for Windows Phone 2012

It will not run on the 32-bit version of Windows 8, because you can’t install Visual Studio 2012 on it.

Windows Phone SDK 8 can only be installed on a 64-bit Machine

Setup Blocked on 32-bit Machine

 Setup of Guest

You need to assign at least two CPUs to the 64-bit Windows 8 guest. If you don’t do so, there will be the following message:

The processor topology is not supported.

The Windows Phone Emulator needs at least two CPUs

  • shutdown your Windows 8 guest

  • right click the Windows 8 VM in Finder and choose ‘Show Package Contents’

  • open the .vmx file in a ASCII editor of your choice

  • add the following lines:

    hypervisor.cpuid.v0 = FALSE

    vhv.enable = TRUE

  • restart the Windows 8 guest

Without these changes you can of course try to start the Phone Emulator. But it will give you only the following message:

Generic Failure

Generic Failure

Now you can create an app with a few clicks and start it in the Windows Phone Emulator:

Emulator up and running

Emulator up and running

Happy coding.