Visual Studio 2010 - XAML编辑器极其缓慢

57

有没有其他人在VS 2010中的XAML编辑器中遇到过极慢的性能?如果我有一个新项目,文件数量较少,则性能良好。但是,如果我有一个包含大量XAML文件的项目,XAML编辑器每隔几秒钟会间歇性地挂起,几乎无法使用。

我还应该注意到,性能只在一个特定的项目中缓慢,其中我正在引用DevExpress 2010。我不确定这是否有关。

如果有任何解决此问题的建议,将不胜感激。

克里斯


遇到了同样的问题,只是使用DevExpress的项目...也许确实有关系?到目前为止还没有找到任何解决方法 :( - Gergely Orosz
请查看此帖子:http://nuxtech.blogspot.com/2012/08/visual-studio-silverlight-xaml-designer.html。问题可能出在RIA服务中的Azure程序集。 - user1588356
5个回答

61

在 Visual Studio 2012 中:

转到

Tools > Options > TextEditor > XAML > Misc 

勾选 始终在XAML视图中打开文档,并取消勾选 自动填充工具箱项

在Visual Studio 2015、2017中:

前往

Tools > Options > XAML Designer 

取消选中 自动填充工具箱项目

这解决了我的相同问题。


1
这对我非常有帮助,谢谢。我一直在苦苦挣扎,因为我只能等待和等待。谢谢! - Mike Malter
1
我只是简单地关闭了工具箱。反正谁需要它呢? :-) - itsho
FYI,这两个选项在VS2015中都不可用。 - Josh Noe
@JoshNoe 我添加了 Visual Studio 2015 的选项,但我不知道它是否有帮助。 - Jalal

37

如果您不需要可视化设计工具,可以在Visual Studio中选择其他编辑器:

右键单击xaml文件 -> 打开方式... -> 源代码(文本)编辑器

您将失去拆分视图功能,但智能感知等功能仍然可用。
如果您需要在设计工具中检查某些内容,仍然可以单击“查看设计器”以再次打开普通的XAML编辑器。

如果您想要提高可视化设计工具的性能,请尝试在代码后台中检查DesignerProperties.GetIsInDesignMode。可视化器会实例化控件以了解如何显示它们,因此会执行部分代码后台。


2
“打开方式”提示是世界上最好的东西。我已经使用它一段时间了,不知道如果没有它我该怎么生存下去。 - RobSiklos
如果你仍需要一个可视化设计师,请将所有出现的'"IsExpanded">True'替换为'"IsExpanded">False'(在源代码(文本)编辑器视图中进行)。之后,在设计师中打开你的xaml应该会更快。同时不要使用展开所有选项,只打开所需节点会更快。希望这能帮到你...对我有用。 - Alex M

9
像OP一样,我在一个严重依赖DevExpress WPF控件的项目中使用xaml编辑器时遇到了极度的延迟。尝试使用此处发布的其他解决方案未能解决问题后,我最终尝试删除我的Solution User Options (.suo)文件,该文件通常位于与解决方案(.sln)文件相同的文件夹中。这立即解决了问题。您可能需要阅读这篇文章,了解Visual Studio存储在suo文件中的内容,以便可以重置任何重要的东西(例如构建配置-例如,我的总是将活动解决方案平台默认为"混合平台")

5
简短回答: 如果您不经常使用设计师,只需更换XAML的默认编辑器即可摆脱XAML可视化设计师并加快速度。右键单击任何XAML文件,单击“打开方式...”并选择另一个默认编辑器。源代码(文本)编辑器完全可以胜任。
现在应该已经没问题了。如果您想了解详细信息并完全摆脱缓慢的设计师,请阅读长篇回答。 详细回答: 这里有一个很好的解释,说明发生了什么以及为什么会这么慢。
根据上述文章,以下是完全禁用XAML可视化设计师的简要操作:
  1. 在“工具”->“选项”->“文本编辑器”->“XAML”->“杂项”->“默认视图”下勾选“始终在完整XAML视图中打开文档”
  2. 打开任务管理器并结束XAML Designer进程XDesProc.exe(注意:对于VS2013,请右键单击此进程并转到包含文件夹。将exe重命名为其他名称,然后结束进程)
  3. 标准的XAML编辑器将重新加载此进程(我猜在VS2013中不会成功执行第2步的操作)。但是,右键单击任何XAML文件,“打开方式...”并选择另一个默认编辑器。源代码(文本)编辑器完全可以胜任。

4

在使用Dev Express时,我注意到Visual Studio设计器响应速度较慢。这似乎是由于DevExpress产品的许可验证引起的。

如果您删除项目属性文件夹中找到的"Licenses.Licx"文件,您将会注意到性能有了显著提升。

注意:移除许可文件不会阻止您使用DevExpress控件。但它确实可以防止VS不断进行验证。


1
我做了这个,性能可能有所提高,所以我点了赞。然而,第二天当我来的时候,我看到了一个构建错误。找不到文件Licenses.licx。我猜想这个文件在项目中以某种方式被缓存了,因为我在VS打开的时候进行了更改。现在我看到了这个构建错误,我建议不要这样做,幸运的是我只是重命名了文件而没有删除它。 - JabberwockyDecompiler

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