虚拟机上的 Windows Phone 7 模拟器?

Posted

技术标签:

【中文标题】虚拟机上的 Windows Phone 7 模拟器?【英文标题】:Windows Phone 7 emulator on a VM? 【发布时间】:2011-02-22 03:02:54 【问题描述】:

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

但是,在网络上,一些人报告说他们可以通过更改大量 VM 设置来使用它。

我必须进行哪些更改才能运行它?我对 Parallels 特别感兴趣,但 VMWare 或任何其他在 OSX 上运行的模拟器对我来说都很好!

【问题讨论】:

如果 Fusion 确实可以工作,另一个想法是,上次我检查时,它是 VS2008 使用的 WPF 应用程序的缓慢/错误。 KMån:简而言之,不。 XP死了。现在已经11岁多了。它不支持手机模拟器所需的许多功能。是时候转向更现代的 Windows 版本了。 【参考方案1】:

WinPhone7(和 WinPhone8)模拟器本身就是一个 VM,很少有(如果有的话)通用 VM 会托管另一个 VM 基础架构,这就是它导致 Parallels 等崩溃的原因。

如果您想让模拟器在与 MS 提供的不同的虚拟机中运行,那么您就进入了提取图像、切换位并尝试将其添加到您选择的虚拟机中的领域。当然,模拟器按预期工作而没有任何残留问题的可能性几乎为零,因为没有任何区别;)

[2013-01-30 更新] VMWare5 和 Parallels Desktop 8 现在支持运行 Hyper-V 来宾 VM。这对于希望针对在 Hyper-V 上运行 Windows Phone 8 来宾 VM 的 Windows Phone 8 SDK 进行开发的用户特别有用。

以下是如何在 VMWare5 或 Parallels desktop 5 中运行 Visual Studio 2012 和 Windows 8 SDK(包括基于 Windows Phone 8 Hyper-V 的模拟器)的指南:http://blogs.msdn.com/b/interoperability/archive/2012/12/21/how-to-develop-for-windows-phone-8-on-your-mac.aspx

注意: 在 VM 中运行 Windows 和 Hyper-V 会比在本地运行要慢。双引导进入 Windows(在 OSX 上使用 Boot Camp)仍然是为 Windows 平台开发的推荐方法,特别是如果您想使用 Hyper-V 来宾 VM。

【讨论】:

Windows Phone 7 SDK 真的是虚拟虚拟机吗?我猜想这将是一个用户空间应用程序,用于在软件中模拟任何底层硬件架构。 它实际上是一个 x86 虚拟机,托管一个 VM 映像,其中包含一个 WinCE 7 x86 内核,上面有 Silverlight、XNA 等,还有操作系统服务、应用程序和 UI。因此,WinPhone VM 几乎可以全速运行。这与例如 WinMobile 仿真器形成鲜明对比,WinMobile 仿真器实际上是 ARM 仿真器,必须在运行时解释 ARM 代码和硬件。这总是意味着在 ARM 仿真器下运行的代码非常慢,并且直到您在真正的 tin 上运行时才发现许多与时序相关的问题! Windows Phone 模拟器由 Microsoft 的 Virtual PC 团队开发。 Channel9.com 上有一个关于它的采访。 这就解释了为什么它运行这么慢。 为什么说WinPhone7模拟器运行“这么慢”?跟什么比起来这么慢?同样,如果您错过了它,您的大部分 WinPhone7 代码都直接在您的 CPU 上的虚拟化环境中运行,而不是像以前的 WinMo 模拟器那样通过运行时转换器。我不确定,但我很确定 WinPhone7 虚拟机已经过门控,可以尝试在真正的(1GHz Snapdragon)WinPhone7 设备上展示你可以期待的那种性能。【参考方案2】:

我在 VMware Fusion 中使用 Expression Blend 4 RC 和模拟器。 像魅力一样工作!

【讨论】:

我在 MBP(C2D 2.53Ghz,4GB RAM,SF-1200 SSD)上运行 VMware Fusion 3.1.0,开发/使用 Windows Phone VM 是一个 PITA。 @Daan 只是检查您是否在 VMware 中运行了开发工具和模拟器,因为 MS 已经表示目前不可能。您的 VMware 实例是否有特殊配置? 这个解决方案对我也很有效。只需保持 ram 和处理器高。【参考方案3】:

正如其他人所说,WP7 本身就是一个虚拟机。即使你可以让它在像 Parallels 这样的虚拟机中运行,性能也会很糟糕。如果您的计算机支持硬件虚拟化,则模拟器运行非常流畅,没有它会非常缓慢。在另一个 VM 中运行它会使其更加迟钝 - 我猜到它无法使用。

我知道这不是您想听到的答案,但我建议您在 Bootcamp 中运行 Windows,您将获得更好的开发和模拟体验。

【讨论】:

【参考方案4】:

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

我只是在 VBox 中定期安装 Windows 7 Home Basic(除 Starter 之外的任何 Win7 都可以,CMIIW),根本不做任何调整,在 win7 中安装 GuestAddition(由 VBox 提供),然后安装 SDK。我创建新的 WP 项目,安排 UI,像往常一样制作一些代码,然后在模拟器中运行它。令人惊讶的是,模拟器运行得相当好,并且显示了我开发的应用程序。

我什至没有遇到任何延迟(我的 macbook 是 i5,4GB 内存,VBox 设置是双核,2GB 内存,请注意,没有其他繁重的 mac 进程正在运行,所以我只运行 VBox .. . 和 iTunes 用于听音乐)。

如果你还想在 VM 上试用 WP SDK 7.1,何不试试VirtualBox?我现在的 VBox 安装的是 Windows 8,没有多余的空间重新安装 win7+WPSDK。如果您尝试过VBox,请在此报告结果以通知大家。

【讨论】:

【参考方案5】:

我之前在 VM 中运行过 android 模拟器。它速度较慢,但​​仍可用于测试基本应用程序。此外,Android 模拟器的速度很慢,以至于您无法区分原生或运行 Eclipse 和运行 Linux 的虚拟机中的区别

x86 到 x86 的仿真现在往往非常快,因为 Intel 和 AMD CPU 都有硬件来帮助它。很多 x86 到 x86 的仿真也没有进行完全仿真(请参阅 Android 的仿真器以了解比较完整的仿真器是如何运行的)。在 x86 到 x86 的情况下,速度更快的会尝试将尽可能多的指令传递给主机操作系统,以便大量代码在本机运行

人们声称有 80-95% 的性能,这非常好。如果你有一个 3.2 GHz CPU,你会被击倒到相当于你的 CPU 的 2.4 GHz 左右。这一点都不错,老实说,我没有注意到在一个好的 x86-to-x86 VM 中运行的开销很大

WP 模拟器出现 VM 问题的最大原因不必将其处理为 VM-in-a-VM,但它很可能需要 DirectX 10。这可能与 XNA 有关,这是微软真正漂亮的游戏 API,可让您轻松在 Windows、WP 和 Xbox 360 之间进行移植。许多 VM 程序不支持硬件 3d 加速

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

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

大多数人遇到的问题是,您最常让 Hypervisor 通过 Intel-VT 进入 VM,以有效地创建嵌套的 Hypervisor。使用 VMware vSphere 5.5 可以做到这一点。

此选项在虚拟机版本 10 中可用,已在 vSphere Web Client - 启用硬件虚拟化中启用。

【讨论】:

以上是关于虚拟机上的 Windows Phone 7 模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone 7 模拟器无法运行

Windows Phone 7 - 模拟器中的 GeoCoordinate.Speed

Windows Phone 7完整版模拟器

Fiddler 和 Windows Phone 7 模拟器 - 重定向到代理

如何在模拟器上获取 Windows Phone 7 中的当前位置

TextBox.TextChanged 事件在 Windows Phone 7 模拟器上触发两次