如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  相信很多开发者目前的系统还是Win7或Mac,一般不会为了开发某个程序而重装系统,所以我们就需要用到VMware这类的虚拟机来模拟预期的开发环境。在开始介绍前,给大家说明下我当前的软硬件环境,本文所讲的内容适用于此环境。

  软件环境:Windows 7 旗舰版 (x64)、VMware Workstation 10,硬件环境:Xeon CPU E3 1230 (4核)。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

简介

  想要安装 Windows Phone SDK 8.0,64位处理器、4G 内存、Windows 8 64位操作系统(任意版本)是必须要满足的基本条件,开发完后可以使用在微软开发者中心注册过的 Windows Phone 8手机进行调试。如果想要使用 Windows Phone 模拟器直接调试,那么CPU还必须支持二级地址转换(SLAT,Second Level Address Translation)、操作系统必须是专业版或更高的版本。

准备环境

  按照上面讲的要求进行自检。

  同时检查是否支持SLAT

  在微软官方下载Coreinfo(地址见文末)并解压,然后用管理员身份运行命令提示符(开始菜单->所有程序->附件->命令提示符->右键“以管理员身份运行”)。

并在命令提示符中输入 “Coreinfo安装路径\Coreinfo.exe -v”。intel的处理器,显示为EPT(Extended Page Tables)。AMD处理器,显示为NPT(Nested Page Tables)或RVI(Rapid Virtualization Indexing)。如果CPU支持SLAT,那么你会看见“EPT *”的字样,否则看到的是“EPT -”。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

在VMware中新建虚拟机

  使用自定义安装,除了个别的需要根据下面图片所示进行设置外,其余一路默认安装就可以了。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

选择windows 8 x64系统

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

至少选择2个CPU

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

至少4G的内存

  在启动虚拟机前,设置CPU的虚拟化引擎为 “Intel VT-x/EPT 或 AMD-V/RVI”,同时让CD/DVD指向Windows 8 专业版或更高版的iso文件。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

安装Windows 8 x64 Pro

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  检查此系统的Hyper-V是否已经安装

  使用“Win +X”快捷键呼出“程序和功能”面板,选择“启用或关闭 Windows 功能”,可以看见Hyper-V平台选项为灰色,鼠标移上去显示“无法安装Hyper-V, 某个虚拟机监控程序正在运行”。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  我们先不去理会这个问题,直接进入下一步。

下载安装Windows Phone SDK 8.0

  在官方下载页面下载SDK后安装,因为我下载的是iso版本,该版本貌似md5校验码有问题,所以在安装完后会提示“Visual C++ 2012 x64 Debug Runtime 无法找到元素”。不过不影响我开发Windows Phone App,也就没去细究。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

提示Hyper-V已经启用

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

根据要求重启后,完成安装

  安装成功,并提示Hyper-V也安装成功,我们再看一下系统的Hyper-V选项,发现已经全部安装好了。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

运行Visual Studio

  官网申请序列号

  在运行Visual Studio Express 2012 For Windows Phone的时候,会要求输入序列号,这个只需要点击旁边的“在线注册”字样注册就可以收到带有序列号的邮件。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  新建第一个Windows Phone 8 App

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

选择Windows Phone App项目模板

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

选择目标系统为Windows Phone OS 8.0

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

选择模拟器(Emulator WVGA 512M),点击运行

  使用Windows Phone模拟器运行,提示“The Windows Phone Emulator wasn't able to create the virtual machine. Generic failure”。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  下面将通过修改vmx文件来解决这个问题。

修改vmx文件

  vmx是VMware的配置文件。先关闭当前的虚拟机,然后进入刚创建的虚拟机所对应的目录,找到“.vmx”结尾的文件,使用记事本或其它编辑器工具打开,在文件末加入下列语句:

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

vmx文件

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

  Hyper-V会检查当前是否运行在虚拟机里,只有当不是的时候才会正常运行。hypervisor.cpuid.v0 = "FALSE" 这句话就是为了绕过这个检查。

  保存后,重新打开虚拟机。这次运行项目时,会提示“Do you want to configure the emulator to connect to the Internet?”,意思就是网络连接丢失,我们选择“Yes”,让模拟器配置网络连接。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  现在你已经可以正常运行Windows Phone 模拟器了。Cheers!

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

这个过程有点长,耐心等待一会儿

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

这就是刚刚创建的应用

  回过头来,看一下网络连接面板,会发现多了些奇怪的连接。这些就是Hyper-V创建的虚拟交换机连接。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

  如果禁用了其中的 vEthernet(Internal Ethernet Port Windows Phone Emulator Internal),就会导致运行模拟器时提示“The emulator couldn't determin the host IP address, which is used to communicate with the guest virtual machine”。因此,该连接对于运行模拟器来说是必须的。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

其它问题

  如果发些自己还是启动不了模拟器,请检查下自己的Hyper-V交换机是否已经建立。交换机配置中至少包含“Windows Phone Emulator Internal Switch”这个交换机。

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

Hyper-V 管理器

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

正常的Hyper-V 管理器

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)

正常的虚拟交换机管理器

  如果没有找到这个虚拟交换机,也不用心急。通过“新建虚拟网络交换机”这个选项,输入“Windows Phone Emulator Internal Switch”,选择“内部”就可以自己建立一个了,效果是一样的。

快速问答

  1. 为什么要x64位?

  因为Hyper-V只能在64位处理器下工作

  2. 为什么要支持SLAT?

  因为Hyper-V需要用到它来提高虚拟地址和物理地址转换的效率。

  3. 为什么要使用Hyper-V?

  因为Windows Phone 8 模拟器需要运行在Hyper-V上。

  4. 什么是Hype-V?

  Windows 8 的虚拟化技术。

参考资源

Windows SDK 8.0 下载地址,ISO地址可在该页面内找到

CoreInfo

Windows Phone 模拟器的系统要求

Windows Phone 8 模拟器疑难解答

如何为 Windows Phone 模拟器启用 Hyper-V

上一篇:Android数据库(sqlite)之Room


下一篇:[CSAPP笔记][第十二章并发编程]