MarkupCompilePass2 任务

更新:2007 年 11 月

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

任务参数

参数

说明

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#VBJScriptJ#C++

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)

Windows Presentation Foundation XAML 浏览器应用程序概述

其他资源

Windows Presentation Foundation MSBuild 参考

Windows Presentation Foundation MSBuild 任务参考

MSBuild 参考

MSBuild 任务参考