随笔 - 81  文章 - 73  评论 - 947  110

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

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

 

 

 

简介

  想要安装 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 8 x64系统

 

至少选择2个CPU

 

至少4G的内存

 

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

 

安装Windows 8 x64 Pro

 

 

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

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

 

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

下载安装Windows Phone SDK 8.0

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

提示Hyper-V已经启用

 

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

 

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

 

运行Visual Studio

  官网申请序列号

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

 

  新建第一个Windows Phone 8 App

选择Windows Phone App项目模板

 

选择目标系统为Windows Phone OS 8.0

 

选择模拟器(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文件

 

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

 

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

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

 

 

这就是刚刚创建的应用

 

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

 

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

 

其它问题

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

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

 

posted on 2014-03-28 20:22 stg609 阅读(...) 评论(...) 编辑 收藏
分享按钮