有人可以解释两个构建任务MarkupCompilePass1
和PartialClassGenerationTask
是如何组合在一起的吗?目前我不知道他们是否共存或是否需要彼此。有人可以清除这两个类的用法以及它们如何相互作用吗?
答案 0 :(得分:3)
MarkupCompilePass1
将使用PartialClassGenerationTask
为所有XAML文件生成部分类。
WPF管道非常复杂,编译WPF应用程序时有许多移动部件。
PartialClassGenerationTask
专门针对指定类型且具有x:Class
的XAML文件。遇到这些问题时,任务将生成匹配的cs或vb代码文件,以便C#/ VB编译器可以在以后引用该类及其属性。
MarkupCompilePass1
任务将基于文本的XAML文件转换为二进制BAML格式。它将编译所有仅引用其他项目和引用程序集中定义的类型的XAML文件。
{1}}任务跟进Pass 1,它专门编译XAML文件,将同一项目中的代码引用到BAML。
为了加快XAML项目的编译速度,最好在第二个项目(标准类库)中定义类型。这样可以跳过MarkupCompilePass2
。
完整的WPF构建管道在MSDN上解释: