PartialClassGenerationTask和MarkupCompilePass1如何一起工作/属于一起

时间:2016-05-01 12:37:56

标签: c# wpf xaml msbuild baml

有人可以解释两个构建任务MarkupCompilePass1PartialClassGenerationTask是如何组合在一起的吗?目前我不知道他们是否共存或是否需要彼此。有人可以清除这两个类的用法以及它们如何相互作用吗?

1 个答案:

答案 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上解释: