Unable to create the virtual machine

2019-01-07 10:14发布

I was so happy today that I have been finally able to install Windows Phone 8 SDK and try it a bit. I installed fresh new installation of Windows 8 Pro into my virtual machine (I am running if from Parallels) and then installed Windows Phone 8 SDK.

Everything went smooth, Visual Studio Express is installed and running, but when I created new project and tried to deploy it, VS fails with really weird message.

First of all, message box informing that "The Windows Phone Emulator wasn't able to create the virtual machine: Generic failure" appears. Really informing, really professional - generic error, that's really good. Then the information that deployment failed appears (thanks a lot for keeping me informed about that, I didn't noticed that it crashed completely). And then in the Error List, there is an information about "Invalid pointer" - even better. No clue at all about what failed or what's wrong.

Can anybody help me with that? There is nothing on the internet about this topic so far and I don't know where the problem is. I scanned the Windows events and logs, but there is nothing (probably I haven't been searching properly, so please guide me through that if you can).

Anybody can help?

12条回答
姐就是有狂的资本
2楼-- · 2019-01-07 10:21

Just as an addition to https://stackoverflow.com/a/13163762/1964969 (top answer at the moment): manually appending "hypervisor.cpuid.v0" key works for VmWare Player 5 as well (the main reason - this software is free for non-commercial use so it's perfect product if you test the waters, just download from VmWare website and install, it's fully-functional).

Slightly unexpected, any of the following amends solve the problem with WP8 emulator:

hypervisor.cpuid.v0="FALSE"
hypervisor.cpuid.v0="TRUE"
hypervisor.cpuid.v0=""

Yeah, you can apply empty value for that key - but why? Have no idea but it works. I did some notes in my blog as well: http://windowsasusual.blogspot.ru/2013/01/how-to-launch-windows-phone-8-emulator.html

查看更多
放荡不羁爱自由
3楼-- · 2019-01-07 10:23

Edit: Oh, I didn't noticed that you are trying to run emulator on VM. My answer is for non-VM environment.


First of all, you need to check hardware requirement at here

Be careful, successful installation of SDK does not guarantee "your hardware is compatible" If your hardware is compatible and Hyper-V is running(described in the link above), please check your BIOS and be sure to enable hardware virtualization in CPU Configuration

(for me, I could find it at Booting > BIOS > Advanced > Advanced > CPU Configuration)

Brief summary:

  • 64bit CPU and OS
  • 4GB RAM
  • Hardware-assisted virtualization supported CPU
  • Second Level Address Translation (SLAT) supported hardware
  • Hardware-based Data Execution Prevention (DEP) supported hardware
  • Proper BIOS settings
查看更多
Root(大扎)
4楼-- · 2019-01-07 10:24

Not enough rep. to comment on the accepted answer, but Microsoft provide instructions specifically for Fusion here. It worked for me, after a couple of reboots of both Mac and VM. I installed W8.1 without Hyper-V support initially and had to install it after the fact ("Turn Windows Features On or Off" in Control Panel), but apart from that no problems. Quite speedy on a 16Gb 2013 MBP.

查看更多
甜甜的少女心
5楼-- · 2019-01-07 10:29

You need SLAT compatible hardware to run Hyper-V, which is a requirement for using the emulator.

Can you clarify what kind of hardware you're attempting to run this on, and if you have enabled Virtualization in your BIOS settings?

The "Invalid pointer" error just means it cannot connect to the emulator (and/or device).

查看更多
Melony?
6楼-- · 2019-01-07 10:30

Actually, it works quite nicely with VMware Fusion 5.0.1

All I had to do is to add to the .vmx file of the virtual machine the following lines:

hypervisor.cpuid.v0 = “FALSE” vhv.enable = "true"

Save and restart VMWARE (obviously the VM must be stopped before the changes are made)

I'm right now debugging a test app from VS2012 using the emaulator inside a VM in my Macbook

I'm a happy camper

:-)

查看更多
三岁会撩人
7楼-- · 2019-01-07 10:31

The Windows Phone 8 emulator requires hardware Hyper-V support. In particular, it requires second-level address translation, hardware assisted virtualization, and hardware DEP support enabled and to not be ran in a hypervisor(no nesting). If you bought your machine within the past 4 years you should have no problem with these requirements. You can check out this article to see more information about that and how to find if your PC supports it.

Because of these hardware requirements, this means you can't run the phone emulator inside of most virtualization technologies... With one exception: I've been using VMWare 9 which appears to include an "unsupported" feature to allow Hyper-V to work though.. So your only choice for running the phone emulator is to either buy VMWare 9 (or 8 with more configuration) or upgrade a physical machine to Windows 8

The unsupported way VMWare allows you to run Hyper-V inside of a VM is that there is a manual option (hypervisor.cpuid.v0 = “FALSE”) which basically tells VMWare not to report to the virtual machine that it's running in a VM. Hyper-V checks if it's running in a VM and won't work if it is, so this gets Hyper-V to work past that check. I personally have tested this whole nested-VM thing with the Phone emulator(including before public release), and other than being quite slow, it does work pretty well with no immediate crashes or anything.

There is a workaround for VMWare Workstation 8 as well in an answer below. However, 9 is much easier to configure, so if you have it use this method.

查看更多
登录 后发表回答