目前在我的XAML编辑器视图中,我经常会遇到大约每次3秒的抓取剧集。我已经能够缩小它自定义命名空间的原因。
默认情况下,我的页面有2个默认的XMLNS声明:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Page>
这很好用,没有抓住。但是,只要我在应用程序中为控件添加XMLNS,它就会开始占用。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:MyNamespace.Controls">
</Page>
它不仅仅针对该命名空间。我尝试了各种各样的命名空间组合。基本上任何指向MY命名空间的XMLNS都会导致此问题。 我不确定如何诊断这个问题。有什么指针吗?
解
我们找到了解决方案。我们引用了一个大小约为7mb的Microsoft程序集(用于Web浏览器的ACtiveX)。删除后,一切都加快了。我们现在正在研究抽象该程序集的方法,以便它可以存在于运行时文件夹中,但不需要从项目中引用它。谢谢大家的意见。
答案 0 :(得分:1)
首先,我们应该了解在Visual Studio中关闭引号时会发生什么。它只是一个程序(虽然很好) - 调试它/配置它。
干杯!
答案 1 :(得分:0)
这可能是因为它正在寻找或正在重新编译代码。
选择输出标记以查看编译活动,然后查看它是否是下次扫描时的作用。
在某些项目中,如果我们通过按下“停止调试”按钮而不是退出程序退出调试模式,则会出现此行为。
此外,在使用带有WPF的DataGrid控件时,已经报告了Visual Studio挂起的几个错误,它可能与此有关。这是一对夫妇:
http://wpf.codeplex.com/WorkItem/View.aspx?WorkItemId=10542 https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=420621
答案 2 :(得分:0)
您是否正在运行实时病毒扫描程序?当VS需要编译代码时,这些通常会导致性能低下......
答案 3 :(得分:0)
一个合理的猜测是,这种行为与VS的XAML编辑器试图为使用clr-namespace声明的节点提供 Intellisense 有关。这是clr-namespaces和其他类型命名空间之间的所有区别之一(其中URI仅被视为唯一字符串,但不会尝试断言底层XML语言的定义。)
一个可能的解决方法是在xaml编辑阶段在伪造的URI下定义xmlns前缀(因此放弃来自intellisense的任何提示),并为项目的其他阶段恢复到正确的clr-namespace。
此外,可能将assembly = xxxx添加到命名空间声明可能会有所帮助。即使有问题的程序集是当前应用程序的程序集,这可能会使编辑器和相关的智能感知器有些犹豫。
另一个反直觉的解决方法可能是将这些控件放在单独的程序集中,因为这可以使系统免于Intellisense尝试从源代码动态推断类型结构,所有这些相关的hickups例如由后台轮询更改等引起(我不知道它试图这样做,但有时,工具变得非常聪明,但也导致CPU或I / O块的那种你描述