Compartir a través de


MarkupCompilePass1 (Tarea)

Actualización: noviembre 2007

La tarea MarkupCompilePass1 convierte archivos de proyecto de Lenguaje de marcado de aplicaciones extensible (XAML) no localizables al formato binario compilado.

Parámetros de la tarea

Parameter

Description

AllGeneratedFiles

Parámetro de salida opcional de tipo ITaskItem[].

Contiene la lista completa de archivos generados por la tarea MarkupCompilePass1.

AlwaysCompileMarkupFilesInSeparateDomain

Parámetro opcional de tipo Boolean.

Especifica si la tarea se ejecuta en un AppDomain independiente. Si este parámetro devuelve el valor false, la tarea se ejecuta en el mismo dominio AppDomain que Microsoft build engine (MSBuild) y lo hace más rápido. Si el parámetro devuelve el valor true, la tarea se ejecuta en otro dominio AppDomain que está aislado de MSBuild y su ejecución es más lenta.

ApplicationMarkup

Parámetro opcional de tipo ITaskItem[].

Especifica el nombre del archivo XAML de la definición de aplicación.

AssembliesGeneratedDuringBuild

Parámetro opcional de tipo String[].

Especifica las referencias a ensamblados que cambian durante el proceso de compilación. Por ejemplo, una solución de Microsoft Visual Studio 2005 puede contener un proyecto que haga referencia al resultado compilado de otro proyecto. En este caso, el resultado compilado del segundo proyecto se puede agregar al parámetro AssembliesGeneratedDuringBuild.

Nota: el parámetro AssembliesGeneratedDuringBuild debe contener referencias al conjunto completo de ensamblados que genera una solución de compilación.

AssemblyName

Parámetro obligatorio de tipo String.

Especifica el nombre corto del ensamblado que se genera para un proyecto. Por ejemplo, si un proyecto genera un archivo ejecutable de Windows con el nombre WinExeAssembly.exe, el parámetro AssemblyName tiene un valor de WinExeAssembly.

AssemblyPublicKeyToken

Parámetro opcional de tipo String.

Especifica el token de la clave pública del ensamblado.

AssemblyVersion

Parámetro opcional de tipo String.

Especifica el número de versión del ensamblado.

ContentFiles

Parámetro opcional de tipo ITaskItem[].

Especifica la lista de archivos de contenido separados.

DefineConstants

Parámetro opcional de tipo String.

Especifica que se mantiene el valor actual de DefineConstants, lo que afecta a la generación del ensamblado de destino. Si se cambia este parámetro, puede que cambie la API pública del ensamblado de destino y se vea afectada la compilación de los archivos XAML que hacen referencia a tipos locales.

ExtraBuildControlFiles

Parámetro opcional de tipo ITaskItem[].

Especifica una lista de los archivos que controlan si se va a desencadenar una nueva generación cuando se vuelva a ejecutar la tarea MarkupCompilePass1; se desencadena una nueva generación si cambia alguno de estos archivos.

GeneratedBamlFiles

Parámetro de salida opcional de tipo ITaskItem[].

Contiene la lista de archivos generados en el formato binario de XAML.

GeneratedCodeFiles

Parámetro de salida opcional de tipo ITaskItem[].

Contiene la lista de los archivos de código administrado generados.

GeneratedLocalizationFiles

Parámetro de salida opcional de tipo ITaskItem[].

Contiene la lista de los archivos de localización que se generaron por cada archivo XAML localizable.

HostInBrowser

Parámetro opcional de tipo String.

Especifica si el ensamblado generado es una Aplicación del explorador XAML (XBAP). Las opciones válidas son true y false. Si es true, se genera código para admitir el hospedaje en el explorador.

KnownReferencePaths

Parámetro opcional de tipo String[].

Especifica referencias a los ensamblados que no cambian durante el proceso de compilación. Incluye ensamblados que se encuentran en la caché de ensamblados global (GAC), en un directorio de instalación de Microsoft .NET Framework, etc.

Language

Parámetro obligatorio de tipo String.

Especifica el lenguaje administrado que admite el compilador. Las opciones válidas son C#, VB, JScript, J# y C++.

LanguageSourceExtension

Parámetro opcional de tipo String.

Especifica la extensión que se anexa a la extensión del archivo de código administrado generado:

<Filename>.g<LanguageSourceExtension>

Si el valor del parámetro LanguageSourceExtension no se establece en un valor concreto, se utiliza la extensión de nombre de archivo de código fuente predeterminada de un lenguaje: .vb para Microsoft Visual Basic y .csharp para C#.

LocalizationDirectivesToLocFile

Parámetro opcional de tipo String.

Especifica cómo se genera la información de localización de cada archivo de código fuente XAML. Las opciones válidas son None, CommentsOnly y All.

OutputPath

Parámetro obligatorio de tipo String.

Especifica el directorio en el que se generan los archivos de código administrado y los archivos de formato binario XAML.

OutputType

Parámetro obligatorio de tipo String.

Especifica el tipo de ensamblado que genera un proyecto. Las opciones válidas son winexe, exe, library y netmodule.

PageMarkup

Parámetro opcional de tipo ITaskItem[].

Especifica una lista de archivos XAML que se van a procesar.

References

Parámetro opcional de tipo ITaskItem[].

Especifica la lista de referencias de los archivos a los ensamblados que contienen los tipos que se usan en los archivos XAML.

RequirePass2ForMainAssembly

Parámetro de salida opcional de tipo Boolean.

Indica si el proyecto contiene archivos XAML no localizables que hagan referencia a tipos locales incrustados en el ensamblado principal.

RequirePass2ForSatelliteAssembly

Parámetro de salida opcional de tipo Boolean.

Indica si el proyecto contiene archivos XAML localizables que hagan referencia a tipos locales incrustados en el ensamblado principal.

RootNamespace

Parámetro opcional de tipo String.

Especifica el espacio de nombres raíz de las clases que están dentro del proyecto. También se usa RootNamespace como el espacio de nombres predeterminado de un archivo de código administrado generado cuando el archivo XAML correspondiente no incluye el atributo x:Class.

SourceCodeFiles

Parámetro opcional de tipo ITaskItem[].

Especifica la lista de archivos de código del proyecto actual. La lista no incluye los archivos de código administrado específicos del lenguaje que se hayan generado.

UICulture

Parámetro opcional de tipo String.

Especifica el ensamblado satélite de la referencia cultural de la interfaz de usuario en la que se incrustan los archivos de formato binario XAML generados. Si no se establece el valor de UICulture, los archivos de formato binario XAML generados se incrustan en el ensamblado principal.

XAMLDebuggingInformation

Parámetro opcional de tipo Boolean.

Si el valor es true, se genera información de diagnóstico y se incluye en el archivo XAML compilado como ayuda para la depuración.

Comentarios

La tarea MarkupCompilePass1 normalmente compila XAML en formato binario y genera los archivos de código fuente. Si un archivo XAML contiene referencias a tipos definidos en el mismo proyecto, MarkupCompilePass1 aplaza su compilación en formato binario a un segundo paso de compilación de marcado (MarkupCompilePass2). Estos archivos se deben compilar de forma aplazada porque deben esperar hasta que se compilen los tipos definidos localmente a los que se hace referencia. Sin embargo, si un archivo XAML tiene un atributo x:Class, MarkupCompilePass1 genera el archivo de código específico del lenguaje.

Un archivo XAML es localizable si contiene elementos que usan el atributo x:Uid:

<Page x:Class="WPFMSBuildSample.Page1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    x:Uid="Page1Uid"
    >
  ...
</Page>

Un archivo XAML hace referencia a un tipo definido localmente cuando declara un espacio de nombres XML que use el valor clr-namespace para hacer referencia a un espacio de nombres del proyecto actual:

<Page x:Class="WPFMSBuildSample.Page1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:localNamespace="clr-namespace:WPFMSBuildSample"
    >
    <Grid>
      <Grid.Resources>
        <localNameSpace:LocalType x:Key="localType" />
      </Grid.Resources>
      ...
    </Grid>
</Page>

Si un archivo XAML es localizable o hace referencia a un tipo definido localmente, se necesita un segundo paso de compilación de marcado, el cual requiere la ejecución de GenerateTemporaryTargetAssembly (Tarea) y, a continuación, de MarkupCompilePass2 (Tarea).

Ejemplo

En el siguiente ejemplo se muestra cómo se convierten tres archivos PageXAML en archivos de formato binario. Page1 contiene una referencia a un tipo, Class1, que está en el espacio de nombres de la raíz del proyecto y, por consiguiente, no se convierte en archivo de formato binario en este paso de la compilación de marcado. En su lugar, se ejecuta GenerateTemporaryTargetAssembly (Tarea) y, después, MarkupCompilePass2 (Tarea).

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask 
    TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass1" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="MarkupCompilePass1Task">
    <MarkupCompilePass1 
      AssemblyName="WPFMSBuildSample"
      Language="C#"
      OutputType="WinExe"
      OutputPath="obj\Debug\"
      ApplicationMarkup="App.xaml"
      PageMarkup="Page1.xaml;Page2.xaml;Page3.xaml"
      SourceCodeFiles="Class1.cs"
      References="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" />
  </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