This blog is the result of a quick investigation of running the Windows Phone Developer Tools CTP under VMWare Player. In the release notes for Windows Phone Developer Tools CTP it mentions that it is not supported under VirtualPC or Hyper-V.
Some developers have policies where ‘no non-production code’ can be installed on their development workstation and so the only way they can use a CTP like this is in a virtual machine.
The dilemma here is that the emulator for Windows Phone itself is a virtual machine and running a virtual machine within another virtual machine is normally frowned upon. Even worse, previous Windows Mobile emulators detected they were in a virtual machine and refused to run.
Why VMWare?
I selected VMWare as a possible solution as it is possible to run VMWare ESXi under VMWare Workstation by manually setting configuration options in the VMX configuration file so that it does not detect the presence of a virtual environment.
I actually found that I could use VMWare Player (the free version, that can now create VM images) and that there was no need for any editing of the configuration file (I tried various switches, none of which made any difference to performance).
So you can run the CTP under VMWare Player, that’s the good news. The bad news is that it is incredibly slow, bordering on unusable. However, if it’s the only way you can use the CTP, at least this is an option.
VMWare Player configuration
I used the latest VMWare Player, 3.0, running under Windows x64 on my HP 6910p laptop with an Intel T7500 Dual Core CPU running at 2.2GHz, 4Gb of memory and using a separate drive for the virtual machines.
I created a machine in VMWare Player with a single CPU, 1536 Mb memory and installed Windows 7 x64 from an ISO image. I then performed a Windows Update, installed VMWare Tools, and finally the Windows Phone Developer Tools CTP
After a few warnings about performance, I configured Windows 7 to run with Windows 7 Basic theme rather than use Aero (which is available under VMWare Player as it has a WDDM driver).
Timings
As a test I first launched Microsoft Visual Studio 2010 Express for Windows Phone, and created a default Windows Phone Application project. I then clicked the run button, which starts the emulator and then loads the default application onto the emulator.
For the second test I left the emulator running, stopped the default application, added a single button to change the page title and redeployed to the already running emulator by clicking the run button.
Test 1 (1st run)
Test 2 (emulator already running)
VMWare Player
10 minutes
1 minute
Windows x64 native
1 minute
< 10 seconds
Conclusion
You can run the Windows Phone Developer Tools CTP under VMWare Player, but it’s really, really slow and you would have to have very good reasons to try this approach.
If you need to keep a development system free of non production code, and the two systems aren’t required to run simultaneously, then I’d consider a boot from VHD option. Then you can completely isolate the Windows Phone Developer Tools CTP and development environment into a single VHD separate from your main development system.