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

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

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


Charley的机器配置


简 介

想要安装 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 -”。

Coreinfo命令提示符界面


在VMware中新建虚拟机

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

VMWare workstation中选择自定义安装

VMWare workstation中选择Windows 8 x64

选择windows 8 x64系统


VMWare workstation中选择至少2个CPU

至少选择2个CPU


VMWare workstation中选择至少4G内存

至少4G的内存


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

VMWare workstation中设置CPU的虚拟化方式


安装Windows 8 x64 Pro

开始安装Windows 8 x64

给Windows 8分区

正在安装Windows 8 x64

正在安装Windows 8 x64

为Windows 8 x64进行个性化设置

Windows 8 x64 Metro 界面

Windows 8 x64 系统配置



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

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

检查Windows 8 x64 是否启用Hyper-V


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

下载安装Windows Phone SDK 8.0

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

安装Windows Phone SDK 8.0

正在安装Windows Phone SDK 8.0

Windows Phone SDK 8.0安装完成,提示Hyper-V已经启用

提示Hyper-V已经启用


Windows Phone SDK 8.0安装完成

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


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

Hyper-V安装成功


运行Visual Studio

官网申请序列号

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

Visual Studio需要输入序列号

Visual Studio完成验证


新建第一个Windows Phone 8 App

使用Visual Studio Express 2012新建第一个Windows Phone App

选择Windows Phone App项目模板


选择目标系统为Windows Phone OS 8.0

选择目标系统为Windows Phone OS 8.0


Windows Phone 8.0 App 模板

选择模拟器运行

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


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

模拟器报错


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


修改vmx文件

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

vmx文件

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”,让模拟器配置网络连接。

Do you want to configure the emulator to connect to the Internet?


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

Windows Phone OS is starting

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


模拟器运行中

模拟器中显示刚才创建的应用

这就是刚刚创建的应用


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

vitrual switch


如果禁用了其中的 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”。因此,该连接对于运行模拟器来说是必须的。

he emulator couldn't determin the host IP address


其它问题

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

Hyper-V 管理器

Hyper-V 管理器


Hyper-V 管理器

正常的Hyper-V 管理器


虚拟交换机管理器

正常的虚拟交换机管理器


如果没有找到这个虚拟交换机,也不用心急。通过“新建虚拟网络交换机”这个选项,输入“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


文章索引

[隐 藏]

本站采用知识共享署名 3.0 中国大陆许可协议进行许可。 ©2014 Charley Box | 关于本站 | 浙ICP备13014059号