为什么格式错误的XAML似乎会编译,然后在运行时失败?

时间:2019-11-20 10:15:32

标签: wpf xaml compiler-errors

由于代码合并问题,或者不小心在XAML文件中迷惑,XAML甚至不是有效的XML,都有可能出错。

例如注意中间一行缺少的<

    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                ResourceDictionary Source="pack://application:,,,/Lovely.UI.Wpf.Themes;component/Theme.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>

我们的构建系统(Azure DevOps)将愉快地构建可执行文件。即使在本地,如果XAML在设计器中打开,我们也只会收到错误消息。

是否可以将格式错误的XAML文件升级为构建错误,以帮助解决偶然发生的按键输入或合并问题?

注意: 我们相当最新,并且正在使用构建配置文件,例如YAML步骤:-任务:VSBuild @ 1

我必须检查它使用的是哪个版本的编译器,但至少是VS2017。

我不是Dev Ops管理员,因此无法在服务器端回答太多问题。老实说,如果有一个本地版本(VS2019)开关可以告诉我在完全重建期间XAML损坏了,那将帮助我晚上入睡:-)

1 个答案:

答案 0 :(得分:0)

不幸的是,编译器未检测到此类错误,这与Azure DevOps无关。

在运行时对编译的BAML进行解析时,尽管会出现异常,所以请确保在发布应用之前先对其进行测试。

  

说实话,如果有一个本地版本(VS2019)开关可以告诉我在完全重建期间XAML损坏了,那将有助于我晚上入睡:-)

恐怕不是:(