Compartilhar via


Tarefa de GenerateTemporaryTargetAssembly

O GenerateTemporaryTargetAssembly tarefa gera um assembly, se pelo menos um Extensible Application Markup Language (XAML) página em um projeto faz referência a um tipo que está declarado localmente no projeto. O assembly gerado é removido após a conclusão do processo de compilação ou se o processo de compilação falhar.

Parâmetros da tarefa

Parâmetro

Descrição

AssemblyName

Obrigatório seqüência de caracteres parâmetro.

Especifica o nome curto do assembly que é gerado para um projeto e também é o nome do assembly de destino que é gerado temporariamente. Por exemplo, se um projeto gera um Windows executável cujo nome é WinExeAssembly.exe, o AssemblyName parâmetro tem um valor de WinExeAssembly.

CompileTargetName

Obrigatório seqüência de caracteres parâmetro.

Especifica o nome da Microsoft build engine (MSBuild) destino que é usado para gerar assemblies de arquivos de código de origem. O valor típico para CompileTargetName é CoreCompile.

CompileTypeName

Obrigatório seqüência de caracteres parâmetro.

Especifica o tipo de compilação é executada pelo destino especificado pelo CompileTargetName parâmetro. Para o CoreCompile o destino, esse valor é compilar.

CurrentProject

Obrigatório seqüência de caracteres parâmetro.

Especifica o caminho completo do MSBuild o arquivo de projeto para o projeto que exija um assembly de destino temporário.

GeneratedCodeFiles

Opcional [] de ITaskItem parâmetro.

Especifica a lista de arquivos específicos do idioma de código gerenciado que foram gerados pela Tarefa MarkupCompilePass1 de tarefas.

IntermediateOutputPath

Obrigatório seqüência de caracteres parâmetro.

Especifica o diretório que o assembly de destino temporário é gerado.

MSBuildBinPath

Obrigatório seqüência de caracteres parâmetro.

Especifica a localização do MSBuild. exe, que é necessário para compilar o assembly de destino temporário.

ReferencePath

Opcional [] de ITaskItem parâmetro.

Especifica uma lista de assemblies, pelo caminho e nome de arquivo, que são referenciados pelos tipos que são compilados no assembly de destino temporário.

ReferencePathTypeName

Obrigatório seqüência de caracteres parâmetro.

Especifica o parâmetro que é usado pelo destino de compilação (CompileTargetName) parâmetro especifica a lista de referências de assembly (ReferencePath). O valor apropriado é ReferencePath.

Comentários

A primeira passagem de compilação de marcação, que é executada, o Tarefa MarkupCompilePass1, compila XAML arquivos no formato binário. Conseqüentemente, o compilador precisa de uma lista de assemblies referenciados que contêm os tipos que são usados pela XAML arquivos. No entanto, se um XAML arquivo usa um tipo que é definido no mesmo projeto, um assembly correspondente para o projeto não é criado até que o projeto é construído. Portanto, uma referência de assembly não pode ser fornecida durante a primeira etapa de compilação da marcação.

Em vez disso, MarkupCompilePass1 adia a conversão de XAML passam os arquivos que contêm referências aos tipos no mesmo projeto para um segundo compilação da marcação, que é executado pelo Tarefa de MarkupCompilePass2. Antes de MarkupCompilePass2 é executado, um assembly temporário é gerado. Este assembly contém os tipos que são usados pela XAML arquivos cuja passagem de compilação da marcação foi adiada. Uma referência ao assembly gerado é fornecida para MarkupCompilePass2 quando ele é executado para permitir a compilação adiada XAML arquivos a ser convertido em formato binário.

Exemplo

O exemplo a seguir gera um assembly temporário porque Page1.xaml contém uma referência a um tipo que está no mesmo projeto.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask
    TaskName="Microsoft.Build.Tasks.Windows.GenerateTemporaryTargetAssembly" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="GenerateTemporaryTargetAssemblyTask">
    <GenerateTemporaryTargetAssembly
      AssemblyName="WPFMSBuildSample"
      CompileTargetName="CoreCompile"
      CompileTypeName="Compile"
      CurrentProject="FullBuild.proj"
      GeneratedCodeFiles="obj\debug\app.g.cs;obj\debug\Page1.g.cs;obj\debug\Page2.g.cs"
      ReferencePath="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"
      IntermediateOutputPath=".\obj\debug\"
      MSBuildBinPath="$(MSBuildBinPath)"
      ReferencePathTypeName="ReferencePath"/>
  </Target>
</Project>

Consulte também

Conceitos

Building a WPF Application (WPF)

Visão geral sobre WPF XAML Browser Applications

Outros recursos

Referência do WPF MSBuild

Referência de tarefa MSBuild do WPF

Referência do MSBuild

Referência de tarefa do MSBuild