在虚拟机上安装 Windows Phone 7 模拟器?

29

似乎 Windows Phone 7 SDK 不支持在虚拟机内运行。在 Parallels 上,当模拟器正在启动时,整个虚拟机会崩溃。

尽管如此,在网络上,一些人报告说他们能够通过更改许多虚拟机设置来使用它。

我需要改变什么才能运行它?我特别关心 Parallels,但对于在 OSX 上运行的 VMWare 或任何其他模拟器都可以!


另一个想法是,如果Fusion确实起作用,上次我检查时,它在WPF应用程序上很慢/有错误,而这正是VS2008使用的内容。 - Justin
KMån:简而言之,不行。XP已经死了。它现在已经超过11年的历史了。它不支持手机模拟器所需的许多功能。是时候转向更现代化的Windows版本了。 - Rich Turner
7个回答

21
WinPhone7(和WinPhone8)模拟器本身就是一种虚拟机,很少有通用的虚拟机会托管另一个虚拟机基础架构,这就是为什么它会使Parallels等崩溃的原因。
如果您想让模拟器在MS提供的不同VM中运行,那么您就需要提取映像,切换位并尝试将其附加到您选择的VM中。当然,模拟器按预期工作且没有残留问题的几率非常小;)
[更新2013-01-30] VMWare5和Parallels Desktop 8现在支持运行Hyper-V guest VM。对于那些想要开发针对Windows Phone 8 SDK的人来说,这特别有用,该SDK在Hyper-V上运行Windows Phone 8 guest VM。
以下是如何在VMware5或Parallels desktop 5中运行Visual Studio 2012和Windows 8 SDK(包括Windows Phone 8基于Hyper-V的模拟器)的指南:Link 注意:在VM中运行Windows和Hyper-V将比本地运行更慢。双重启动进入Windows(在OSX上使用Boot Camp)仍然是开发Windows平台的推荐方法,特别是如果您想使用Hyper-V guest VM。

5
实际上,这是一个x86虚拟机,其中包含一个WinCE 7 x86内核的VM镜像,上面安装了Silverlight、XNA等,再在其上安装了操作系统服务、应用和用户界面。因此,WinPhone VM几乎以全速运行。这与WinMobile模拟器形成鲜明对比,后者实际上是ARM模拟器,必须在运行时解释ARM代码和硬件。这不可避免地导致在ARM模拟器下运行的代码非常缓慢,并且很多与时间相关的问题直到在真实环境中运行才能被发现! - Rich Turner
1
Windows Phone 模拟器是由 Microsoft 的虚拟 PC 团队开发的。有关此模拟器的采访可以在 Channel9.com 上找到。 - Joel
它可以在Fusion虚拟机中正常工作,但速度较慢,而且(奇怪的是)网络速度更慢! - Andiih
这篇博客文章还详细介绍了如何成功安装。http://blogs.msdn.com/b/bryang/archive/2011/11/10/windows-phone-sdk-on-a-virtual-machine.aspx - mcobrien
实际上,我已经使用过Android和iPhone模拟器,iOS和WP模拟器/仿真器在性能方面完全超越了Android。我确实没有将iOS和WP仿真器并排进行比较,但两者的性能都非常出色。 - Joe Plante
显示剩余3条评论

4

我正在使用VMware Fusion与Expression Blend 4 RC以及模拟器进行工作。 运行得非常顺畅!


我在我的 MBP 上运行 VMware Fusion 3.1.0(C2D 2.53Ghz,4GB RAM,SF-1200 SSD),使用 Windows Phone VM 进行开发/使用是一件很麻烦的事情。 - Joseph jun. Melettukunnel
@Daan 只是想确认您是否在 VMware 中运行开发工具和模拟器,因为微软表示目前不可能。您的 VMware 实例有特殊的配置吗? - Chris.Jenkins
这个解决方案对我也非常有效。只需要保持内存和处理器高就可以了。 - Fresheyeball

3
正如其他人所说,WP7本身就是一个虚拟机。即使您可以在诸如Parallels之类的虚拟机中运行它,性能也会非常糟糕。如果您的计算机支持硬件虚拟化,模拟器将运行得非常流畅,否则它将非常缓慢。在另一个虚拟机中运行它将使其变得更加缓慢 - 我猜到了无法使用的程度。
我知道这不是您想听到的答案,但我建议在Bootcamp中运行Windows,这样您将获得更好的开发和仿真体验。

1

我以前在虚拟机中运行过Android模拟器。速度较慢,但仍可用于测试基本应用程序。此外,Android模拟器的速度很慢,以至于您无法区分原生还是从运行Linux虚拟机内部的Eclipse中运行。

x86到x86的仿真现在往往非常快,因为英特尔和AMD CPU都有硬件来帮助它。许多x86到x86的仿真也不会进行完全仿真(请参见Android的模拟器,以了解完全仿真与之相比如何运行)。在x86到x86的情况下,更快的仿真将尝试将尽可能多的指令传递给主机操作系统,以便一部分代码可以本地运行

人们声称性能达到80-95%,这非常好。如果您有一个3.2 GHz的CPU,则会降至大约相当于您的CPU的2.4 GHz。那并不坏,而且我在良好的x86到x86 VM中运行时实际上并没有注意到太多开销

WP模拟器与VM存在问题的最大原因可能不是因为它是一个VM-in-a-VM,而是因为它需要DirectX 10。这可能与XNA有关,XNA是微软非常棒的游戏API,可以轻松地在Windows、WP和Xbox 360之间进行移植。许多VM程序不支持硬件3D加速。

另外:如果您想使用低端系统,AMD CPU可能会更好,因为AMD不倾向于在其低端CPU中禁用硬件虚拟化功能。


1

我对长期开发的兼容性并不确定,但是去年九月份,我记得在VirtualBox上尝试了Windows Phone 7.1beta SDK(我使用的是mac SL),这是来自Oracle(之前是Sun)的免费虚拟机,并且它在那里运行良好。

我只是在VBox中进行了常规的Windows 7 Home Basic安装(除了Starter以外的任何Win7都可以,如果我没记错的话),没有进行任何调整,在win7中安装了GuestAddition(由VBox提供),然后安装了SDK。我创建了新的WP项目,排列UI,像往常一样编写了一些代码,然后在模拟器中运行它。令人惊讶的是,模拟器运行得相当顺畅,并显示了我开发的应用程序。

我甚至没有遇到任何延迟(我的MacBook是i5,4GB RAM,VBox设置为双核,2GB RAM,注意没有其他繁重的Mac进程在运行,所以我只运行了VBox...和iTunes听音乐)。

因此,如果您仍然想在VM上尝试WP SDK 7.1,为什么不尝试VirtualBox呢?我的当前VBox安装有Windows 8,没有额外的空间重新安装win7+WPSDK。如果您在VBox上尝试,请在此处报告结果以通知所有人。


0

我们已经成功部署,在我们的环境中性能是可以接受的,虚拟 Windows 8.1 Pro 桌面在 VMware vSphere 5.5 (ESXi 5.5) 下运行,并且 Windows 8 SDK 和模拟器正常工作,没有性能问题。(在教育方面 - 为大学实验室提供 Windows Phone 开发)。

大多数人遇到的问题是必须将 Hypervisor 通过 Intel-VT 传递到虚拟机中,以有效地创建嵌套 Hypervisors。这在 VMware vSphere 5.5 中是可能的。

此选项可在虚拟机版本 10 中使用,在 vSphere Web 客户端中启用硬件虚拟化即可。


0
如果您要部署到设备上,应该可以使用虚拟机,因为模拟器本身作为虚拟机存在问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接