.net - 在初始化中遇到 XAML 错误时 Visual Studio 软崩溃

标签 .net wpf visual-studio-2010 crash

最近,我在 Visual Studio 2010 中遇到了一些严重的问题。当我在控件/窗口的 InitializeComponent() 期间遇到某些类型的 XAML 错误时,它以一种特殊的方式崩溃。

程序中断,visual studio 启动,就像它捕获异常(因为它是),然后中途停止,在我的 XAML 文件中显示损坏的突出显示,没有关于 什么是 错误的详细信息。例子:

没有弹出信息,也没有 Anywhere 关于错误的详细信息,只有一个指向我的 InitializeComponent() 调用的调用堆栈。

现在通常我只是做一些试验和错误来解决这个问题,并找出我搞砸的地方,但真正的问题不是我的代码。 Visual Studio 在这一点上完全没有用。它报告我的应用程序仍处于“运行”模式。工具栏或菜单中的停止/中断/重新启动按钮不执行任何操作(但呈灰色)。

关闭应用程序并不会停止这种行为,关闭 Visual Studio 会使其陷入一个巨大的循环中,它对我大喊大叫,提示每个打开的文件都不在调试项目中,然后在我用尽每个打开的文件时重复此过程。

我必须强制关闭 devenv.exe ,在这种情况连续发生 3-4 次之后,浪费了很多时间(因为我的项目通常很大,工作室可能会很慢@加载)。

重点

  • 有其他人经历过吗?
  • 如何阻止工作室锁定。
  • 我是否可以至少以另一种方式从这个野兽那里获取信息,以便我可以更快地修复我的 XAML 错误,而不是在 3-4 次反复试验编译后产生相同的崩溃?

  • 任何和所有帮助将不胜感激。

    Visual Studio 2010 版本:10.0.30319.1RTM
    编辑和更新

    FWIW,主要是导致这种情况的错误是 XamlParseExceptions (我在发现 XAML 有什么问题后发现了这一点)。

    我想我需要更清楚一点,我不是在寻找我的代码问题的解决方案,因为这些通常是错别字/小东西, 我正在寻找 VStudio 结果被搞砸的解决方案。

    上图中 100% 肯定导致的特定错误是由于忘记了数据触发器上的 XamlParseException 属性而导致的 Value

    我已经修复了那个部分,但它仍然没有告诉我为什么当解析 XAML 时抛出一个完全正常的异常时,我的工作室变成了一堆被阉割的程序。

    会导致此问题的代码(至少对我而言)

    这是基本模板 WPF 应用程序,具有以下 Window.xaml 代码。问题是模板中的 Value="True" 上缺少 <DataTrigger ...>。调试时,它会生成 XamlParseException 和 Visual Studio Crashes,如上所述。
    <Window x:Class="XamlParseExplosion.MainWindow"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow" Height="350" Width="525">
      <Window.Resources>
       <DataTemplate x:Key="BankListItemTemplate">
        <Border x:Name="ItemBorder" Width="250" Margin="1" BorderBrush="Blue" BorderThickness="5,0,0,0">
         <Grid>
          <Label Content="{Binding Name}" />
         </Grid>
        </Border>
        <DataTemplate.Triggers>
         <DataTrigger Binding="{Binding IsDirty}">
          <Setter TargetName="ItemBorder" Property="BorderBrush" Value="Red" />
         </DataTrigger>
        </DataTemplate.Triggers>
       </DataTemplate>
      </Window.Resources>
      <Grid>
       <ListView ItemTemplate="{StaticResource BankListItemTemplate}" />
      </Grid>
     </Window>
    

    最后说明

    以下解决方案 没有 帮助我:
  • 重新启动 Visual Studio
  • 重启
  • 重新安装 Visual Studio
  • 禁用 ReSharper 和 Reflector 等加载项

  • 更新(稍后)带答案

    我想对此进行补充(作为伪答案),因为我后来发现了更多关于此的信息,我想将这些信息传递给在 google 中找到此问题的人。

    真正的问题: XamlParseException 在 Debug -> Exceptions to break 中被选中它)。

    只需将其关闭,生活就会再次美好。

    我不想把它作为答案,因为 mazelo 提供的答案也是正确的,当 vstudio 以管理员身份运行时,它似乎能够正确捕获异常并从那里进行调试,所以我不想带走他的回答状态,因为他的解决方案确实有效。

    最佳答案

    我有一个类似的问题。几个小时后,我有了以管理员身份启动 Visual Studio 的想法。解决了问题,但仍然不知道为什么。

    关于.net - 在初始化中遇到 XAML 错误时 Visual Studio 软崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596642/

    相关文章:

    c# - 访问由另一个线程添加的字典项

    visual-studio-2010 - Visual Studio 中的包目录是什么?我应该将其包含在 SVN 中吗?

    visual-studio-2010 - 文本编辑器的字体和颜色设置 T-SQL 变量声明数据类型大小

    c# - 关于方法锁定的最佳实践

    .net - 与编码(marshal)结合的反射不起作用

    c# - 我应该如何创建后台线程?

    c# - 当我在 C# 中使用今天的日期时,为什么时间会变成 0000

    c# - 如何使用 DataTemplate + 触发器在 View 之间切换

    c# - 如何从 MahApps.Metro 模板中删除窗口命令?

    c# - 如何发布我的网站?