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