Compartir a través de


GenerateTemporaryTargetAssembly (Tarea)

Actualización: noviembre 2007

La tarea GenerateTemporaryTargetAssembly genera un ensamblado si al menos una página de Lenguaje de marcado de aplicaciones extensible (XAML) del proyecto hace referencia a un tipo declarado localmente en ese proyecto. El ensamblado generado se quita una vez completado el proceso de compilación, o si éste no se produce.

Parámetros de la tarea

Parameter

Description

AssemblyName

Parámetro obligatorio de tipo String.

Especifica el nombre corto del ensamblado que se genera para un proyecto y que también es el nombre del ensamblado de destino que se genera temporalmente. Por ejemplo, si un proyecto genera un archivo ejecutable de Windows con el nombre WinExeAssembly.exe, el parámetro AssemblyName tendrá un valor de WinExeAssembly.

CompileTargetName

Parámetro obligatorio de tipo String.

Especifica el nombre del destino de Microsoft build engine (MSBuild) que se usa para generar ensamblados a partir de archivos de código fuente. El valor típico de CompileTargetName es CoreCompile.

CompileTypeName

Parámetro obligatorio de tipo String.

Especifica el tipo de compilación que realiza el destino especificado por el parámetro CompileTargetName. Para el destino CoreCompile, este valor es Compile.

CurrentProject

Parámetro obligatorio de tipo String.

Especifica la ruta de acceso completa del archivo de proyecto de MSBuild para el proyecto que requiere un ensamblado de destino temporal.

GeneratedCodeFiles

Parámetro opcional de tipo ITaskItem[].

Especifica la lista de archivos de código fuente administrados específicos del lenguaje y generados por la tarea MarkupCompilePass1 (Tarea).

IntermediateOutputPath

Parámetro obligatorio de tipo String.

Especifica el directorio en el que se genera el ensamblado de destino temporal.

MSBuildBinPath

Parámetro obligatorio de tipo String.

Especifica la ubicación de MSBuild.exe, necesaria para compilar el ensamblado de destino temporal.

ReferencePath

Parámetro opcional de tipo ITaskItem[].

Especifica una lista de ensamblados, por ruta de acceso y nombre de archivo, a los que hacen referencia los tipos compilados en el ensamblado de destino temporal.

ReferencePathTypeName

Parámetro obligatorio de tipo String.

Especifica el parámetro que usa el parámetro de destino de compilación (CompileTargetName) que especifica la lista de referencias del ensamblado (ReferencePath). El valor correcto es ReferencePath.

Comentarios

El primer paso de compilación de marcado, que ejecuta MarkupCompilePass1 (Tarea), compila los archivos XAML en formato binario. Por consiguiente, el compilador necesita una lista de los ensamblados a los que se hace referencia y que contienen los tipos que usan los archivos XAML. Sin embargo, si un archivo XAML usa un tipo definido en el mismo proyecto, no se crea ningún ensamblado correspondiente para ese proyecto hasta que se genera el proyecto. Por consiguiente, no se puede proporcionar ninguna referencia del ensamblado durante el primer paso de compilación de marcado.

En su lugar, MarkupCompilePass1 aplaza la conversión de los archivos XAML que contienen referencias a los tipos del mismo proyecto a un segundo paso de compilación de marcado, que ejecuta MarkupCompilePass2 (Tarea). Antes de que se ejecute MarkupCompilePass2, se genera un ensamblado temporal. Este ensamblado contiene los tipos que usan los archivos XAML cuyo paso de compilación de marcado se aplazó. Cuando se ejecuta MarkupCompilePass2 se le proporciona una referencia al ensamblado generado para permitir que los archivos XAML de la compilación aplazada se conviertan al formato binario.

Ejemplo

En el ejemplo siguiente, se genera un ensamblado temporal porque Page1.xaml contiene una referencia a un tipo que está en el mismo proyecto.

<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>

Vea también

Conceptos

Generar una aplicación de WPF (WPF)

Información general sobre aplicaciones de explorador XAML de Windows Presentation Foundation

Otros recursos

Referencia de MSBuild para Windows Presentation Foundation

Referencia de tareas de MSBuild para Windows Presentation Foundation

Referencia de MSBuild

Referencia de tareas de MSBuild