MarkupCompilePass1, tâche
La tâche MarkupCompilePass1 convertit les fichiers projet XAML non localisables au format binaire compilé.
Paramètres de tâche
Paramètre | Description |
---|---|
AllGeneratedFiles |
Paramètre de sortie ITaskItem[] facultatif. Contient une liste complète des fichiers qui sont générés par la tâche MarkupCompilePass1. |
AlwaysCompileMarkupFilesInSeparateDomain |
Paramètre Boolean facultatif. Indique si la tâche doit être exécutée dans un AppDomain séparé. Si ce paramètre retourne false, la tâche s’exécute dans le même AppDomain que MSBuild, plus rapidement. Si le paramètre retourne true, la tâche s’exécute dans un deuxième AppDomain isolé de MSBuild, plus lentement. |
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 à des assemblys qui changent pendant le processus de génération. Par exemple, une solution Visual Studio 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 obligatoire. Spécifie le nom court de l’assembly généré pour un projet. Par exemple, si un projet génère un 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. Indique 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 changé, l’API publique dans l’assembly cible peut être changée également, et la compilation des fichiers XAML qui référencent les types locaux peut être affectée. |
ExtraBuildControlFiles |
Paramètre ITaskItem[] facultatif. Spécifie une liste de fichiers qui contrôlent si une régénération est déclenchée quand la tâche MarkupCompilePass1 est réexécutée ; une régénération est déclenchée si l’un de ces fichiers change. |
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 de navigateur XAML (XBAP). Les options valides sont true et false. Si true, du 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 à des assemblys qui ne changent pas pendant le processus de génération. Inclut les assemblys situés dans le GAC (Global Assembly Cache), dans un répertoire d’installation .NET, etc. |
Language |
Paramètre String obligatoire. 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 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, l’extension de nom de fichier source par défaut pour un langage est utilisée : .vb pour 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 obligatoire. Spécifie le répertoire dans lequel les fichiers de code managé générés et les fichiers au format binaire XAML sont générés. |
OutputType |
Paramètre String obligatoire. 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 des références des 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 les 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 les types locaux incorporés dans l’assembly principal. |
RootNamespace |
Paramètre String facultatif. Spécifie l’espace de noms racine pour les classes qui se trouvent dans le projet. RootNamespace est également utilisé en tant qu’espace de noms par défaut d’un fichier de code managé généré quand le fichier XAML correspondant n’inclut pas l’attribut x:Class . |
SourceCodeFiles |
Paramètre ITaskItem[] facultatif. Spécifie la liste des fichiers de code pour le projet actuel. La liste n’inclut pas les fichiers de code managé générés propres au langage. |
UICulture |
Paramètre String facultatif. Spécifie l’assembly satellite de la culture d’IU dans laquelle les fichiers au format binaire XAML générés sont incorporés. Si UICulture n’est pas défini, les fichiers au format binaire XAML générés sont incorporés dans l’assembly principal. |
XAMLDebuggingInformation |
Paramètre Boolean facultatif. Quand la valeur est true, des informations de diagnostic sont générées et incluses dans le code XAML compilé pour faciliter le débogage. |
Notes
La tâche MarkupCompilePass1 compile généralement le code XAML au format binaire, et génère des fichiers de code. Si un fichier XAML contient des références à des types définis dans le même projet, sa compilation au format binaire est différée par MarkupCompilePass1 jusqu’à une deuxième passe de compilation des balises (MarkupCompilePass2). La compilation de ces fichiers doit être différée car ils doivent attendre que les types référencés définis localement soient compilés. Toutefois, si un fichier XAML a un attribut x:Class
, MarkupCompilePass1 génère le fichier de code spécifique au langage correspondant.
Un fichier XAML est localisable s’il contient des éléments qui utilisent l’attribut x:Uid
:
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Uid="Page1Uid"
>
...
</Page>
Un fichier XAML référence un type défini localement quand il déclare un espace de noms XML qui utilise la valeur clr-namespace
pour faire référence à un espace de noms dans le projet actuel :
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 s’il référence un type défini localement, une deuxième passe de compilation des balises est nécessaire, ce qui implique l’exécution de GenerateTemporaryTargetAssembly, puis de MarkupCompilePass2.
Exemple
L’exemple suivant montre comment convertir trois fichiers XAML Page en fichiers au format binaire. Page1 contient une référence à un type, Class1
, qui se trouve dans l’espace de noms racine du projet et n’est donc pas convertie au format binaire lors de cette passe de compilation du balisage. Au lieu de cela, GenerateTemporaryTargetAssembly est exécutée et suivie par MarkupCompilePass2.
<Project xmlns="http://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>