Partager via


MarkupCompilePass1, tâche

La tâche MarkupCompilePass1 convertit des fichiers projet XAML (eXtensible Application Markup Language) non localisables au format binaire compilé.

Paramètres de la tâche

Paramètre

Description

AllGeneratedFiles

Paramètre de sortie ITaskItem[] facultatif.

Contient une liste complète des fichiers générés par la tâche MarkupCompilePass1.

AlwaysCompileMarkupFilesInSeparateDomain

Paramètre Boolean facultatif.

Spécifie s'il faut exécuter la tâche dans un AppDomain séparé. Si ce paramètre retourne la valeur false, la tâche s'exécute dans le même AppDomain que Microsoft Build Engine (MSBuild) et s'exécute plus rapidement. Si le paramètre retourne la valeur true, la tâche s'exécute plus lentement dans un deuxième AppDomain isolé de MSBuild.

ApplicationMarkup

Paramètre ITaskItem[] facultatif.

Spécifie le nom du fichier XAML de définition d'application.

AssembliesGeneratedDuringBuild

Paramètre String[] facultatif.

Spécifie des références aux assemblys qui sont modifiés lors du processus de génération. Par exemple, une solution Microsoft Visual Studio 2005 peut contenir un projet qui référence la sortie compilée d'un autre projet. Dans ce cas, la sortie compilée du deuxième projet peut être ajoutée au paramètre AssembliesGeneratedDuringBuild.

Remarque : le paramètre AssembliesGeneratedDuringBuild doit contenir des références au jeu complet des assemblys générés par une solution de génération.

AssemblyName

Paramètre string requis.

Spécifie le nom court de l'assembly généré pour un projet. Par exemple, si un projet génère un fichier exécutable Windows dont le nom est WinExeAssembly.exe, le paramètre AssemblyName a la valeur WinExeAssembly.

AssemblyPublicKeyToken

Paramètre String facultatif.

Spécifie le jeton de clé publique de l'assembly.

AssemblyVersion

Paramètre String facultatif.

Spécifie le numéro de version de l'assembly.

ContentFiles

Paramètre ITaskItem[] facultatif.

Spécifie la liste des fichiers de contenu libre.

DefineConstants

Paramètre String facultatif.

Spécifie que la valeur actuelle de DefineConstants est conservée, ce qui affecte la génération de l'assembly cible ; si ce paramètre est modifié, l'API publique de l'assembly cible peut être modifiée et la compilation des fichiers XAML qui référencent des types locaux peut être affectée.

ExtraBuildControlFiles

Paramètre ITaskItem[] facultatif.

Spécifie une liste de fichiers qui contrôlent le déclenchement d'une régénération lorsque la tâche MarkupCompilePass1 est réexécutée ; une régénération est déclenchée si un de ces fichiers est modifié.

GeneratedBamlFiles

Paramètre de sortie ITaskItem[] facultatif.

Contient la liste des fichiers générés au format binaire XAML.

GeneratedCodeFiles

Paramètre de sortie ITaskItem[] facultatif.

Contient la liste des fichiers de code managé générés.

GeneratedLocalizationFiles

Paramètre de sortie ITaskItem[] facultatif.

Contient la liste des fichiers de localisation générés pour chaque fichier XAML localisable.

HostInBrowser

Paramètre String facultatif.

Spécifie si l'assembly généré est une application du navigateur XAML (XBAP). Les options valides sont true et false. Si la valeur est true, le code est généré pour prendre en charge l'hébergement de navigateur.

KnownReferencePaths

Paramètre String[] facultatif.

Spécifie des références aux assemblys qui ne changent pas lors du processus de génération. Inclut des assemblys localisés dans le Global Assembly Cache (GAC), dans un répertoire d'installation Microsoft .NET Framework, et ainsi de suite.

Language

Paramètre String requis.

Spécifie le langage managé pris en charge par le compilateur. les options valides sont C#, VB, JScript, et C++.

LanguageSourceExtension

Paramètre String facultatif.

Spécifie l'extension qui est ajoutée à l'extension du fichier de code managé généré :

<Filename>.g<LanguageSourceExtension>

Si le paramètre LanguageSourceExtension n'est pas défini avec une valeur spécifique, on utilise l'extension du nom du fichier source par défaut pour un langage : .vb pour Microsoft Visual Basic, .csharp pour C#.

LocalizationDirectivesToLocFile

Paramètre String facultatif.

Spécifie comment générer des informations de localisation pour chaque fichier XAML source. Les options valides sont None, CommentsOnly et All.

OutputPath

Paramètre String requis.

Spécifie le répertoire dans lequel les fichiers de code managé générés et les fichiers de format binaire XAML sont générés.

OutputType

Paramètre String requis.

Spécifie le type d'assembly généré par un projet. Les options valides sont winexe, exe, library et netmodule.

PageMarkup

Paramètre ITaskItem[] facultatif.

Spécifie une liste de fichiers XAML à traiter.

References

Paramètre ITaskItem[] facultatif.

Spécifie la liste de références de fichiers aux assemblys qui contiennent les types utilisés dans les fichiers XAML.

RequirePass2ForMainAssembly

Paramètre de sortie Boolean facultatif.

Indique si le projet contient des fichiers XAML non localisables qui référencent des types locaux incorporés dans l'assembly principal.

RequirePass2ForSatelliteAssembly

Paramètre de sortie Boolean facultatif.

Indique si le projet contient des fichiers XAML localisables qui référencent des types locaux incorporés dans l'assembly principal.

RootNamespace

Paramètre String facultatif.

Spécifie l'espace de noms racine pour les classes à l'intérieur du projet. RootNamespace est également utilisé comme espace de noms par défaut d'un fichier de code managé généré lorsque le fichier XAML correspondant n'inclut pas l'attribut x:Class.

SourceCodeFiles

Paramètre ITaskItem[] facultatif.

Spécifie la liste de fichiers de code pour le projet actuel. La liste n'inclut pas les fichiers de code managé spécifiques au langage générés.

UICulture

Paramètre String facultatif.

Spécifie l'assembly satellite pour la culture d'interface utilisateur dans lequel sont incorporés les fichiers de format binaire XAML générés. Si UICulture n'est pas défini, les fichiers de format binaire XAML générés sont incorporés dans l'assembly principal.

XAMLDebuggingInformation

Paramètre Boolean facultatif.

Lorsque la valeur est true, les informations de diagnostic sont générées et incluses dans le XAML compilé pour faciliter le débogage.

Notes

La tâche MarkupCompilePass1 compile en général XAML au format binaire et génère des fichiers de code. Si un fichier XAML contient des références aux types définis dans le même projet, sa compilation au format binaire est différée par MarkupCompilePass1 à un deuxième passage de compilation du balisage (MarkupCompilePass2). La compilation de ces fichiers doit être différée car ils doivent attendre que les types définis localement référencés soient compilés. Toutefois, si un fichier XAML dispose d'un attribut x:Class, MarkupCompilePass1 génère le fichier de code spécifique au langage.

Un fichier XAML est localisable s'il contient des éléments qui utilisent l'attribut 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 fichier XAML référence un type défini localement lorsqu'il déclare un espace de noms XML utilisant la valeur clr-namespace pour faire référence à un espace de noms dans le projet actuel :

<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 fichier XAML est localisable ou référence un type défini localement, un deuxième passage de compilation du balisage est nécessaire, ce qui requiert l'exécution de la GenerateTemporaryTargetAssembly, tâche, puis de la MarkupCompilePass2, tâche.

Exemple

L'exemple suivant indique comment convertir trois fichiers PageXAML en fichiers binaires. Page1 contient une référence à un type, Class1, qui se trouve dans l'espace de noms racine du projet et par conséquent, n'est pas converti au format binaire dans ce passage de compilation du balisage. À la place, la GenerateTemporaryTargetAssembly, tâche est exécutée et suivie par la MarkupCompilePass2, tâche.

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

Voir aussi

Concepts

Génération d'une application WPF (WPF)

Vue d'ensemble des applications de navigateur XAML

Autres ressources

Référence MSBuild - WPF

Référence des tâches MSBuild WPF

Référence MSBuild

Référence des tâches MSBuild