MarkupCompilePass2 任务

MarkupCompilePass2 任务对引用同一项目中的类型的可扩展应用程序标记语言 (XAML) 文件执行第二次标记编译。

任务参数

Parameter

说明

AlwaysCompileMarkupFilesInSeparateDomain

可选 Boolean 参数。

指定是否在单独的 AppDomain 中运行任务。 如果此参数返回 false,则任务将在与 Microsoft Build Engine (MSBuild) 相同的 AppDomain 中运行,并且它运行得更快。 如果参数返回 true,则任务将在与 MSBuild 彼此隔离的另一个 AppDomain 中运行,并且运行得较慢。

AssembliesGeneratedDuringBuild

可选 String[] 参数。

指定对在生成过程中发生变化的程序集的引用。 例如,Microsoft Visual Studio 2005 解决方案可能包含一个项目,该项目引用另一个项目的已编译输出。 在这种情况下,可以将第二个项目的已编译输出添加到 AssembliesGeneratedDuringBuild

注意:AssembliesGeneratedDuringBuild 必须包含对生成解决方案所生成的一组完整程序集的引用。

AssemblyName

必选 String 参数。

指定为项目生成的程序集的简称。 例如,如果项目生成名称为 WinExeAssembly.exe 的 Microsoft Windows 可执行文件,则 AssemblyName 参数的值为 WinExeAssembly

GeneratedBaml

可选 ITaskItem[] 输出参数。

包含以 XAML 二进制格式生成的文件的列表。

KnownReferencePaths

可选 String[] 参数。

指定对在生成过程中从不更改的程序集的引用。 包括位于 全局程序集缓存 (GAC)、Microsoft .NET Framework 安装目录等位置中的程序集。

Language

必选 String 参数。

指定编译器支持的托管语言。 有效的选项为 C#VBJScriptC++

LocalizationDirectivesToLocFile

可选 String 参数。

指定如何为每个源 XAML 文件生成本地化信息。 有效选项为 NoneCommentsOnlyAll

OutputPath

必选 String 参数。

指定在其中生成 XAML 二进制格式文件的目录。

OutputType

必选 String 参数。

指定项目生成的程序集的类型。 有效选项为 winexeexelibrarynetmodule

References

可选 ITaskItem[] 参数。

指定文件中对包含 XAML 文件中所使用类型的程序集的引用。 一个引用针对的是 GenerateTemporaryTargetAssembly 任务生成的程序集,该任务必须在 MarkupCompilePass2 任务之前运行。

RootNamespace

可选 String 参数。

为项目内部的类指定根命名空间。 当对应的 XAML 文件未包括 x:Class 特性时,RootNamespace 也将用作所生成托管代码文件的默认命名空间。

XAMLDebuggingInformation

可选 Boolean 参数。

如果为 true,则会生成诊断信息并将其包括在编译的 XAML 中,以便帮助进行调试。

备注

在运行 MarkupCompilePass2 之前,您必须生成一个临时程序集,并使之包含标记编译处理过程被延迟的 XAML 文件所使用的类型。 通过运行 GenerateTemporaryTargetAssembly 任务来生成该临时程序集。

将在 MarkupCompilePass2 运行时向其提供对所生成临时程序集的引用,这样,在第一次标记编译中延迟编译的 XAML 文件现在可以编译为二进制格式。

示例

下面示例演示如何使用 MarkupCompilePass2 任务来执行第二次编译。

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask 
    TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass2" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="MarkupCompilePass2Task">
    <MarkupCompilePass2 
      AssemblyName="WPFMSBuildSample"
      Language="C#"
      OutputType="WinExe"
      OutputPath="obj\Debug\"
      References=".\obj\debug\WPFMSBuildSample.exe;c:\windows\Microsoft.net\Framework\v2.0.50727\System.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationCore.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationFramework.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\WindowsBase.dll" />
  </Target>
</Project>

请参见

概念

生成 WPF 应用程序 (WPF)

WPF XAML 浏览器应用程序概述

其他资源

WPF MSBuild 参考

WPF MSBuild 任务引用

MSBuild 参考

MSBuild 任务参考