【问题标题】:Is WPF development feasible under VM? [closed]虚拟机下WPF开发可行吗? [关闭]
【发布时间】:2010-10-06 06:08:14
【问题描述】:

看了how to keep your dev machine from slowing down之后,我想起了一年前我的好心,为我的开发机器构建一个VM。

但是,我正在 Vista x64 上开发 WPF 和 SilverLight GUI。我可以在 VM 下运行 x64 版本的操作系统,但我担心 WPF 的图形性能,尤其是运行 Expression Blend。我预计需要 GPU!

我目前有用于 XP 32 位测试的 Virtual PC VM。那个版本或 VMWare 的某个版本是否可能更适合 WPF,如果是,是否有任何版本差异?我已经可以在 OS/X 上使用我的 VMWare Fusion 创建 VM,因此只需使用免费的 VMWare Player 就可以了 - 我无法找到任何有关 Player 和 Workstation 之间 GPU 支持差异的 cmets。

我的主要 Windows 开发机器只是一台具有 4GB RAM 的戴尔笔记本电脑 (Latitude 830),但我必须在笔记本电脑上工作以进行客户访问,因此我不倾向于购买额外的台式机。

【问题讨论】:

  • 截至 2015 年 1 月,我现在在配备 512GB SSD 的 Macbook Retina 13" 上使用 VMWare Fusion,对此非常满意。与此同时,VMWare 中的 3D 功能得到了显着改进。(当然是 WPF有点停滞,但那是一个不同的问题..)

标签: wpf vmware development-environment


【解决方案1】:

我找到了一个更好的方法:拒绝访问d3d9.dll。删除它或编辑安全权限(就像我一样),使其无法访问。 WPF: 0, 1, 2 有好几层。

2 搞砸了一切。 0 不如 1 快。DisableHWAcceleration 强制层为 0。除了禁止 d3d9.dll 之外,我没有找到任何方法。

很高兴,它奏效了。 Microsoft Expression 开始工作时没有杂乱无章。虽然我不确定层级是否真的是 1。

【讨论】:

    【解决方案2】:

    Parallels 5 似乎比我在 WPF 中的 Fusion VM 快得多。 VS2010 加载速度要快得多,并且没有所有视频故障......这有点糟糕,因为我过去几年一直在使用 Fusion,不想切换,但到目前为止,P5 与 WPF 似乎好多了.

    【讨论】:

    • 同上 - 我也不想切换!希望他们很快就能赶上。
    【解决方案3】:

    目前我只找到了一种解决方案:通过 RDP 连接到 VMWare。这样 Microsoft Expression 就不会出现故障。

    (第一次看到还以为微软真的发布了这么不成熟的产品)

    我将尝试找出是否可以在不通过 RDC 登录的情况下关闭 DirectX(或强制使用 DirectX 8)。

    【讨论】:

    • 将 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration 设置为 DWORD:1 这应该可以消除故障
    【解决方案4】:

    VirtualBox 3.0 在 Windows 中增加了对 DirectX 8/9 的支持 - 请参阅 http://www.virtualbox.org/manual/UserManual.html#guestadd-3d 这可能会有所帮助。我还没有亲自尝试过。

    【讨论】:

      【解决方案5】:

      我自己尝试过,我建议避免使用 VM 进行 WPF 开发。 WPF 引擎依赖 DirectX 加速来呈现内容,而 VMWare 上的 DirectX 支持是不完整的(尽管比 MS Virtual PC 不存在的 DirectX 支持好几英里)。

      您将面临的问题是,Visual Studio 和 Expression 在您处理 XAML 时都会不断地重新呈现您的 XAML,这需要大量的 GPU 带宽。在 VM 中工作并不能解决问题,并且根据您的设置,您将在 VS 2008 中遇到黑色/空白或无响应的设计器窗口。

      如果可能,请坚持在本地桌面上进行开发。

      【讨论】:

        【解决方案6】:

        这确实不应该那么糟糕 - 我希望会注意到一些细微的差别,但出于开发目的,使用本地 VM 播放器会起作用。

        您真正遇到的唯一问题是尝试通过带有大量动画/视频等的远程桌面开发 WPF。

        顺便说一句,作为一种可能的替代方法,让 VM 与您的大多数开发工具共享一个逻辑磁盘分区,并在必要时在本地运行 Expression Blend 并打开项目。

        【讨论】:

        • 一旦你开始在你的主系统上安装 Expression Blend,你是否也必须至少拥有平台 SDK - 似乎是拥有主开发的一半工具在那里。
        • 是的,我认为这个决定取决于您在开发过程中需要在多大程度上在应用程序中移动和动画化这些内容。
        【解决方案7】:

        将您的开发环境放入 VM 中如何提高您的工作效率?

        如果您的开发工具使您的计算机变慢,这将使主机操作系统快速而快速,但您必须在开发工具所在的缓慢 VM 中工作 - 所以我怀疑您保留了您使用的计算机部分让你使用的部分变慢,从而快速玩纸牌游戏。

        这有什么成效?

        此外,当您拥有大量内存并且 VM 文件位于与 Windows 安装不同的物理磁盘上时,VM 工作最佳 - 两者都不容易在笔记本电脑上完成。

        【讨论】:

        • 我也在想同样的事情。 :) 我使用虚拟机进行测试,但我不会开发一个。 (好吧,我在VM中开发VB6/VC++6应用程序以避免与VS6和VS2003/2005/2008冲突,但仅此而已)
        • 根据我引用的链接,有些人认为使用 VM 可以防止您的开发环境随着时间的推移而恶化,因为您可以从映像中替换它、尝试新安装等。
        • 如果您要运行 VPC,请从 USB 硬盘驱动器上运行它,这会提高性能,因为它与您的操作系统在同一主轴上可能会减慢它的速度。
        • 我赞同安迪·登特的回答。你不知道每当你想要一个干净的开发环境时重新安装你的计算机是多么令人沮丧,在这句话中使用虚拟机要容易得多。
        • 当您开发多个项目时,您不需要为每个项目配备一台计算机。一个项目可能需要 oracle 或一组特定的 dll
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-19
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 2012-01-10
        相关资源
        最近更新 更多