相信不少开发者目前的系统仍是Win7或Mac,通常不会为了开发某个程序而重装系统,因此咱们就须要用到VMware这类的虚拟机来模拟预期的开发环境。在开始介绍前,给你们说明下我当前的软硬件环境,本文所讲的内容适用于此环境。windows
软件环境:Windows 7 旗舰版 (x64)、VMware Workstation 10,硬件环境:Xeon CPU E3 1230 (4核)。api
想要安装 Windows Phone SDK 8.0,64位处理器、4G 内存、Windows 8 64位操做系统(任意版本)是必需要知足的基本条件,开发完后可使用在微软开发者中心注册过的 Windows Phone 8手机进行调试。若是想要使用 Windows Phone 模拟器直接调试,那么CPU还必须支持二级地址转换(SLAT,Second Level Address Translation)、操做系统必须是专业版或更高的版本。网络
按照上面讲的要求进行自检。编辑器
同时检查是否支持SLAT工具
在微软官方下载Coreinfo(地址见文末)并解压,而后用管理员身份运行命令提示符(开始菜单->全部程序->附件->命令提示符->右键“以管理员身份运行”)。ui
并在命令提示符中输入 “Coreinfo安装路径\Coreinfo.exe -v”。intel的处理器,显示为EPT(Extended Page Tables)。AMD处理器,显示为NPT(Nested Page Tables)或RVI(Rapid Virtualization Indexing)。若是CPU支持SLAT,那么你会看见“EPT *”的字样,不然看到的是“EPT -”。spa
使用自定义安装,除了个别的须要根据下面图片所示进行设置外,其他一路默认安装就能够了。操作系统
选择windows 8 x64系统3d
至少选择2个CPU调试
至少4G的内存
在启动虚拟机前,设置CPU的虚拟化引擎为 “Intel VT-x/EPT 或 AMD-V/RVI”,同时让CD/DVD指向Windows 8 专业版或更高版的iso文件。
检查此系统的Hyper-V是否已经安装
使用“Win +X”快捷键呼出“程序和功能”面板,选择“启用或关闭 Windows 功能”,能够看见Hyper-V平台选项为灰色,鼠标移上去显示“没法安装Hyper-V, 某个虚拟机监控程序正在运行”。
咱们先不去理会这个问题,直接进入下一步。
在官方下载页面下载SDK后安装,由于我下载的是iso版本,该版本貌似md5校验码有问题,因此在安装完后会提示“Visual C++ 2012 x64 Debug Runtime 没法找到元素”。不过不影响我开发Windows Phone App,也就没去细究。
提示Hyper-V已经启用
根据要求重启后,完成安装
安装成功,并提示Hyper-V也安装成功,咱们再看一下系统的Hyper-V选项,发现已经所有安装好了。
官网申请序列号
在运行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是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地址可在该页面内找到