Tarefa GenerateTemporaryTargetAssembly
O GenerateTemporaryTargetAssembly tarefa gera um assembly, se pelo menos um Extensible Application Markup Language (XAML) página em um projeto referencia um tipo que seja declarado localmente nesse 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) o destino que é usado para gerar assemblies de arquivos de código fonte.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 da MSBuild arquivo de projeto para o projeto que requer 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 geradas com a Tarefa MarkupCompilePass1 tarefa. |
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 marcação de compilação, o que é executada, o Tarefa MarkupCompilePass1, compila XAML arquivos em 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 arquivos que contêm referências aos tipos no mesmo projeto para uma compilação da marcação segundo passam, o qual está sendo executada 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 que 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 esteja 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
Criando um aplicativo WPF (WPF)
Visão geral de aplicativos de navegador XAML do WPF