Tarefa MarkupCompilePass2

A tarefa MarkupCompilePass2 executa a compilação de marcação de segunda passagem em arquivos XAML que fazem referência a tipos no mesmo projeto.

Parâmetros de tarefa

Parâmetro Descrição
AlwaysCompileMarkupFilesInSeparateDomain Parâmetro Boolean opcional.

Especifica se a tarefa deve ser executada em um AppDomain separado. Se esse parâmetro retornar false, a tarefa será executada mais rapidamente no mesmo AppDomain que o MSBuild. Se o parâmetro retornar true, a tarefa será executada de modo mais lento em um segundo AppDomain que é isolado do MSBuild.
AssembliesGeneratedDuringBuild Parâmetro String[] opcional.

Especifica as referências aos assemblies alterados durante o processo de build. Por exemplo, uma solução do Visual Studio pode conter um projeto que faz referência à saída compilada de outro projeto. Nesse caso, a saída compilada do segundo projeto pode ser adicionada a AssembliesGeneratedDuringBuild.

Observação: AssembliesGeneratedDuringBuild deve conter referências ao conjunto completo de assemblies que são gerados por uma solução de build.
AssemblyName Parâmetro obrigatório String.

Especifica o nome curto do assembly que é gerado para um projeto. Por exemplo, se um projeto estiver gerando um executável de nome WinExeAssembly.exe, o parâmetro AssemblyName terá o valor de WinExeAssembly.
GeneratedBaml Parâmetro de saída opcional ITaskItem[].

Contém a lista de arquivos gerados no formato binário de XAML.
KnownReferencePaths Parâmetro String[] opcional.

Especifica as referências aos assemblies nunca alterados durante o processo de build. Inclui assemblies localizados no GAC (cache de assembly global) em um diretório de instalação do .NET e assim por diante.
Language Parâmetro obrigatório String.

Especifica a linguagem gerenciada à qual o compilador dá suporte. As opções válidas são C#, VB, JScript e C++.
LocalizationDirectivesToLocFile Parâmetro String opcional.

Especifica como gerar informações de localização para cada arquivo XAML de origem. As opções válidas são None, CommentsOnly e All.
OutputPath Parâmetro obrigatório String.

Especifica o diretório no qual ocorre a geração dos arquivos de formato binário de XAML.
OutputType Parâmetro obrigatório String.

Especifica o tipo de assembly que é gerado por um projeto. As opções válidas são winexe, exe, library e netmodule.
References Parâmetro opcional ITaskItem[].

Especifica a lista de referências de arquivos para assemblies que contêm os tipos usados nos arquivos XAML. Uma referência é ao assembly gerado pela tarefa GenerateTemporaryTargetAssembly, que deve ser executada antes da tarefa MarkupCompilePass2.
RootNamespace Parâmetro String opcional.

Especifica o namespace raiz para as classes que estão dentro do projeto. RootNamespace também é usado como o namespace padrão de um arquivo de código gerenciado gerado quando o arquivo XAML correspondente não incluir o atributo x:Class.
XAMLDebuggingInformation Parâmetro Boolean opcional.

Quando for true, as informações de diagnóstico serão geradas e incluídas no XAML compilado para auxiliar na depuração.

Comentários

Antes de executar MarkupCompilePass2, você deve gerar um assembly temporário que contém os tipos usados pelos arquivos XAML cujas passagens de compilação de marcação foram adiadas. Gere o assembly temporário executando a tarefa GenerateTemporaryTargetAssembly.

Uma referência ao assembly temporário gerado é fornecida para MarkupCompilePass2 quando ele é executado, permitindo que os arquivos XAML cujo build foi adiado na primeira passagem de build de marcação sejam agora compilados em formato binário.

Exemplo

O exemplo a seguir mostra como usar a tarefa MarkupCompilePass2 para executar uma compilação de segunda passagem.

<Project xmlns="http://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>

Confira também