GenerateTemporaryTargetAssembly (Tarea)GenerateTemporaryTargetAssembly task

La tarea GenerateTemporaryTargetAssembly genera un ensamblado si al menos una página de Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) del proyecto hace referencia a un tipo declarado localmente en ese proyecto.The GenerateTemporaryTargetAssembly task generates an assembly if at least one Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) page in a project references a type that is declared locally in that project. El ensamblado generado se quita una vez completado el proceso de compilación, o si este no se produce.The generated assembly is removed after the build process is completed, or if the build process fails.

Parámetros de la tareaTask parameters

ParámetroParameter DescripciónDescription
AssemblyName Parámetro obligatorio de tipo String.Required String parameter.

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.Specifies the short name of the assembly that is generated for a project and is also the name of the target assembly that is temporarily generated. Por ejemplo, si un proyecto genera un archivo ejecutable de WindowsWindows con el nombre WinExeAssembly.exe, el parámetro AssemblyName tiene un valor de WinExeAssembly.For example, if a project generates a WindowsWindows executable whose name is WinExeAssembly.exe, the AssemblyName parameter has a value of WinExeAssembly.
CompileTargetName Parámetro obligatorio de tipo String.Required String parameter.

Especifica el nombre del destino de Microsoft build engine (MSBuild)Microsoft build engine (MSBuild) que se usa para generar ensamblados a partir de archivos de código fuente.Specifies the name of the Microsoft build engine (MSBuild)Microsoft build engine (MSBuild) target that is used to generate assemblies from source code files. El valor típico de CompileTargetName es CoreCompile.The typical value for CompileTargetName is CoreCompile.
CompileTypeName Parámetro obligatorio de tipo String.Required String parameter.

Especifica el tipo de compilación que realiza el destino especificado por el parámetro CompileTargetName.Specifies the type of compilation that is performed by the target that is specified by the CompileTargetName parameter. Para el destino CoreCompile, este valor es Compile.For the CoreCompile target, this value is Compile.
CurrentProject Parámetro obligatorio de tipo String.Required String parameter.

Especifica la ruta de acceso completa del archivo de proyecto de MSBuildMSBuild para el proyecto que requiere un ensamblado de destino temporal.Specifies the full path of the MSBuildMSBuild project file for the project that requires a temporary target assembly.
GeneratedCodeFiles Parámetro opcional de tipo ITaskItem[].Optional ITaskItem[] parameter.

Especifica la lista de archivos de código administrado específicos del lenguaje y generados por la tarea MarkupCompilePass1.Specifies the list of language-specific managed code files that were generated by the MarkupCompilePass1 task.
IntermediateOutputPath Parámetro obligatorio de tipo String.Required String parameter.

Especifica el directorio en el que se genera el ensamblado de destino temporal.Specifies the directory that the temporary target assembly is generated to.
MSBuildBinPath Parámetro obligatorio de tipo String.Required String parameter.

Especifica la ubicación de MSBuild.exe, necesario para compilar el ensamblado de destino temporal.Specifies the location of MSBuild.exe, which is required to compile the temporary target assembly.
ReferencePath Parámetro opcional de tipo ITaskItem[].Optional ITaskItem[] parameter.

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.Specifies a list of assemblies, by path and file name, that are referenced by the types that are compiled into the temporary target assembly.
ReferencePathTypeName Parámetro obligatorio de tipo String.Required String parameter.

Especifica el parámetro que usa el parámetro de destino de compilación (CompileTargetName) que especifica la lista de referencias del ensamblado (ReferencePath).Specifies the parameter that is used by the compilation target (CompileTargetName) parameter that specifies the list of assembly references (ReferencePath). El valor correcto es ReferencePath.The appropriate value is ReferencePath.

ComentariosRemarks

El primer paso de compilación de marcado, que ejecuta MarkupCompilePass1, compila los archivos XAMLXAML en formato binario.The first markup compilation pass, which is run by the MarkupCompilePass1, compiles XAMLXAML files to binary format. 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 de XAMLXAML.Consequently, the compiler needs a list of the referenced assemblies that contain the types that are used by the XAMLXAML files. Sin embargo, si un archivo XAMLXAML usa un tipo definido en el mismo proyecto, no se crea ningún ensamblado correspondiente para ese proyecto hasta que se compile el proyecto.However, if a XAMLXAML file uses a type that is defined in the same project, a corresponding assembly for that project is not created until the project is built. Por consiguiente, no se puede proporcionar ninguna referencia del ensamblado durante el primer paso de compilación de marcado.Therefore, an assembly reference cannot be provided during the first markup compilation pass.

En su lugar, MarkupCompilePass1 aplaza la conversión de los archivos XAMLXAML que contienen referencias a los tipos del mismo proyecto a un segundo paso de compilación de marcado, que ejecuta MarkupCompilePass2.Instead, MarkupCompilePass1 defers the conversion of XAMLXAML files that contain references to types in the same project to a second markup compilation pass, which is executed by the MarkupCompilePass2. Antes de que se ejecute MarkupCompilePass2, se genera un ensamblado temporal.Before MarkupCompilePass2 is executed, a temporary assembly is generated. Este ensamblado contiene los tipos que usan los archivos XAMLXAML cuyo paso de compilación de marcado se aplazó.This assembly contains the types that are used by the XAMLXAML files whose markup compilation pass was deferred. Cuando se ejecuta MarkupCompilePass2 se le proporciona una referencia al ensamblado generado para permitir que los archivos XAMLXAML de la compilación aplazada se conviertan al formato binario.A reference to the generated assembly is provided to MarkupCompilePass2 when it runs to allow the deferred compilation XAMLXAML files to be converted to binary format.

EjemploExample

En el ejemplo siguiente se genera un ensamblado temporal porque Page1.xaml contiene una referencia a un tipo que está en el mismo proyecto.The following example generates a temporary assembly because Page1.xaml contains a reference to a type that is in the same project.

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

Referencia de MSBuild para WPF WPF MSBuild reference
Referencia de tareas Task reference
Referencia de MSBuild MSBuild reference
Referencia de tareas Task reference
Compilar una aplicación de WPF (WPF) Build a WPF application (WPF)
Información general sobre las aplicaciones de explorador XAML de WPFWPF XAML browser applications overview