相信很多开发者目前的系统还是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

如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)的更多相关文章

  1. Windows Phone 8初学者开发—第2部分:安装Windows Phone SDK 8.0

    原文 Windows Phone 8初学者开发—第2部分:安装Windows Phone SDK 8.0 原文地址:http://channel9.msdn.com/Series/Windows-Ph ...

  2. 如何在VMware中安装Linux系统

    这篇文章主要讲述如何在VMware12中安装RHEL6.9Linux操作系统 步骤一: 打开VMware软件,在主页中点击创建新的虚拟机或者点击左上角文件,在列表中点击新建虚拟机,如图: 步骤二: 点 ...

  3. 烂泥:KVM中安装Windows Server 2008 R2系统

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在前一篇文章中,我介绍了有关在KVM中的安装Centos系统.接下来,就来介绍如何在KVM中安装Windows系统. 注意:在此我安装的是windows ...

  4. 如何在Raspberry Pi 3B中安装Windows 10 IoT Core

    Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本 ...

  5. 【转】如何在vmware中如何设置ip

    如何在vmware中如何设置ip 1.修改网络接口选hostonly2.虚拟机里安装vmware-tool,对鼠标和图形进行更好地支持.如果你在图形界面下,首先要切换到文本模式.右键点击桌面,打开一个 ...

  6. 如何在VPC中安装Ubuntu

    在虚拟机 VPC2007 中安装Ubuntu 方法A:(断网络连接) 1.用载入ISO镜像启动一台标准的 xp设置的虚拟机 2.按 F4 选择启动模式,选择图形模式并确认. 3.按 F6 在启动配置中 ...

  7. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装在阿里云开源镜像地址下载镜像Index of /centos/7.2.1511/isos/x86_64/http://mirro ...

  8. 如何在eclipse中安装Jess

    如何在eclipse中安装Jess 浏览:49 | 更新:2014-05-12 16:39 这个文章帮了不少忙,感谢! 但经我实践,还要把插件那些文件向/dropins/sdk下也放一份,才能成功. ...

  9. Windows10系统在VMware中安装CentOS7操作系统并实现图形化用户界面Gnome

    由于操作系统课程需要,我尝试在windows10环境下安装linux虚拟机,最终采用centOS7和Gnome图形用户界面,在安装和使用过程中出现一些问题,在这里将其记录下来,以便后续查阅. 第一部分 ...

随机推荐

  1. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  2. ABP框架 - OData 集成

    文档目录 本节内容: 简介 安装 安装Nuget包 设置模块依赖 配置你的实体 创建控制器 示例 获取实体列表 请求 响应 获取单个实体 请求 响应 获取单个实体及导航属性 请求 响应 查询 请求 响 ...

  3. 自定义Inspector检视面板

    Unity中的Inspector面板可以显示的属性包括以下两类:(1)C#以及Unity提供的基础类型:(2)自定义类型,并使用[System.Serializable]关键字序列化,比如: [Sys ...

  4. PHP数据类型之间的强制转换

    1.实型数据强制转换为整型数据 $float1=2.7; $int1=(int)$float1; echo var_dump($int1),"<br>"; 输出: in ...

  5. golang sync.WaitGroup bug

    注意,这个结构体,要是想在函数之间传来传去的话,必须要使用指针....... 这个结构体里没有 指针,这个类型可以说没有“引用特性”. 被坑了一晚上.特此记录.

  6. TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计

    在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...

  7. 分享一个php的启动关闭脚本(原)

    自己简单写的一个php服务的启动脚本和大家分享 思路(实现的原理): 1:function模块+case语句多分支判断 2:通过添加# chkconfig: 2345 43 89注释实现开机自启动(前 ...

  8. Linux系统中的Device Mapper学习

    在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...

  9. How to accept Track changes in Microsoft Word 2010?

    "Track changes" is wonderful and remarkable tool of Microsoft Word 2010. The feature allow ...

  10. webform:图片水印、验证码制作

    一.图片水印 1:引命名空间System.Drawing; 前端代码 <div> <asp:FileUpload ID="FileUpload1" runat=& ...