MarkupCompilePass1-Aufgabe

Mit der Aufgabe MarkupCompilePass1 werden nicht lokalisierte XAML-Projektdateien in das kompilierte Binärformat konvertiert.

Aufgabenparameter

Parameter Beschreibung
AllGeneratedFiles Optionaler ITaskItem[]-Ausgabeparameter.

Enthält eine vollständige Liste von Dateien, die vom MarkupCompilePass1-Task generiert werden.
AlwaysCompileMarkupFilesInSeparateDomain Optionaler Boolean-Parameter.

Gibt an, ob der Task in einer separaten AppDomain ausgeführt werden soll. Wenn dieser Parameter FALSE zurückgibt, wird die Aufgabe in der gleichen AppDomain wie MSBuild und schneller ausgeführt. Wenn der Parameter TRUE zurückgibt, wird die Aufgabe in einer zweiten AppDomain isoliert von MSBuild und langsamer ausgeführt.
ApplicationMarkup Optionaler ITaskItem[] -Parameter.

Gibt den Namen der XAML-Datei mit der Anwendungsdefinition an.
AssembliesGeneratedDuringBuild Optionaler String[] -Parameter.

Gibt Verweise auf Assemblys an, die sich während des Buildprozesses ändern. Eine Visual Studio-Projektmappe kann möglicherweise ein Projekt enthalten, das auf die kompilierte Ausgabe eines anderen Projekts verweist. In diesem Fall kann die kompilierte Ausgabe des zweiten Projekts dem AssembliesGeneratedDuringBuild-Parameter hinzugefügt werden.

Hinweis: Der AssembliesGeneratedDuringBuild-Parameter muss Verweise auf den vollständigen Satz von Assemblys enthalten, die von einer Projektmappe generiert werden.
AssemblyName Erforderlicher String-Parameter.

Gibt den Kurznamen der Assembly an, die für ein Projekt generiert wird. Wenn ein Projekt z. B. eine ausführbare Windows-Datei mit dem Namen WinExeAssembly.exe generiert, weist der AssemblyName-Parameter den Wert WinExeAssembly auf.
AssemblyPublicKeyToken Optionaler String -Parameter.

Gibt das öffentliche Schlüsseltoken für die Assembly an.
AssemblyVersion Optionaler String -Parameter.

Gibt die Versionsnummer der Assembly an.
ContentFiles Optionaler ITaskItem[] -Parameter.

Gibt die Liste loser Inhaltsdateien an.
DefineConstants Optionaler String -Parameter.

Gibt an, dass der aktuelle Wert von DefineConstants beibehalten wird. Dies betrifft die Generierung der Zielassembly. Wenn dieser Parameter geändert wird, könnte die öffentliche API in der Zielassembly geändert und die Kompilierung der XAML-Dateien, die auf lokale Typen verweisen, beeinträchtigt werden.
ExtraBuildControlFiles Optionaler ITaskItem[] -Parameter.

Gibt eine Liste der Dateien an, die steuern, ob ein erneutes Erstellen ausgelöst wird, wenn der MarkupCompilePass1-Task erneut ausgeführt wird. Ein erneutes Erstellen wird ausgelöst, wenn eine dieser Dateien geändert wird.
GeneratedBamlFiles Optionaler ITaskItem[]-Ausgabeparameter.

Enthält die Liste der generierten Dateien im XAML-Binärformat.
GeneratedCodeFiles Optionaler ITaskItem[]-Ausgabeparameter.

Enthält die Liste der generierten Dateien mit verwaltetem Code.
GeneratedLocalizationFiles Optionaler ITaskItem[]-Ausgabeparameter.

Enthält die Liste der Lokalisierungsdateien, die für jede lokalisierbare XAML-Datei generiert wurden.
HostInBrowser Optionaler String -Parameter.

Gibt an, ob die generierte Assembly eine XAML-Browseranwendung (XBAP) ist. Die gültigen Optionen sind true und false. Wenn true, wird Code generiert, um das Hosten in einem Browser zu unterstützen.
KnownReferencePaths Optionaler String[] -Parameter.

Gibt Verweise auf Assemblys an, die sich während des Buildprozesses nicht ändern. Enthält Assemblys, die im globalen Assemblycache (GAC), in einem .NET-Installationsverzeichnis usw. enthalten sind.
Language Erforderlicher String-Parameter.

Gibt die verwaltete Sprache an, die der Compiler unterstützt. Die gültigen Optionen sind C#, VB, JScript und C++.
LanguageSourceExtension Optionaler String -Parameter.

Gibt die Erweiterung an, die der Erweiterung der generierten Datei mit verwaltetem Code angefügt wird:

<Filename>.g<LanguageSourceExtension>

Wenn für den LanguageSourceExtension-Parameter kein bestimmter Wert festgelegt ist, wird die Standarderweiterung für Quelldateinamen einer Sprache verwendet: .vb für Visual Basic, .csharp für C#.
LocalizationDirectivesToLocFile Optionaler String -Parameter.

Gibt an, wie Lokalisierungsinformationen für jede XAML-Quelldatei generiert werden. Die gültigen Optionen sind None, CommentsOnly und All.
OutputPath Erforderlicher String-Parameter.

Gibt das Verzeichnis an, in dem die generierten Dateien mit verwaltetem Code und die Dateien im XAML-Binärformat generiert werden.
OutputType Erforderlicher String-Parameter.

Gibt den Typ der Assembly an, die von einem Projekt generiert wird. Die gültigen Optionen sind winexe, wxe, library und netmodule.
PageMarkup Optionaler ITaskItem[] -Parameter.

Gibt eine Liste der zu verarbeitenden XAML-Dateien an.
References Optionaler ITaskItem[] -Parameter.

Gibt die Liste der Verweise von Dateien auf Assemblys an, die die in den XAML-Dateien verwendeten Typen enthalten.
RequirePass2ForMainAssembly Optionaler boolescher Ausgabeparameter.

Gibt an, ob das Projekt nicht lokalisierbare XAML-Dateien enthält, die auf in die Hauptassembly eingebettete lokale Typen verweisen.
RequirePass2ForSatelliteAssembly Optionaler boolescher Ausgabeparameter.

Gibt an, ob das Projekt lokalisierbare XAML-Dateien enthält, die auf in die Hauptassembly eingebettete lokale Typen verweisen.
RootNamespace Optionaler String -Parameter.

Gibt den Stammnamespace für Klassen innerhalb des Projekts an. RootNamespace wird auch als Standardnamespace für eine generierte Datei mit verwaltetem Code verwendet, wenn die zugehörige XAML-Datei nicht das x:Class-Attribut enthält.
SourceCodeFiles Optionaler ITaskItem[] -Parameter.

Gibt die Liste der Codedateien für das aktuelle Projekt an. Die Liste enthält keine generierten sprachspezifischen Dateien mit verwaltetem Code.
UICulture Optionaler String -Parameter.

Gibt die Satellitenassembly für die Benutzeroberflächenkultur an, in die die generierten XAML-Dateien im Binärformat eingebettet werden. Wenn UICulture nicht festgelegt ist, werden die generierten XAML-Dateien im Binärformat in die Hauptassembly eingebettet.
XAMLDebuggingInformation Optionaler Boolean-Parameter.

Sofern TRUE, werden Diagnoseinformationen generiert und in die kompilierte XAML-Datei einbezogen, um das Debuggen zu unterstützen.

Hinweise

Die Aufgabe MarkupCompilePass1 kompiliert XAML normalerweise im Binärformat und generiert Codedateien. Wenn eine XAML-Datei Verweise auf Typen enthält, die im gleichen Projekt definiert sind, wird ihre Kompilierung in das Binärformat durch MarkupCompilePass1 auf einen zweiten Markupkompilierungsschritt (MarkupCompilePass2) aufgeschoben. Die Kompilierung solcher Dateien muss aufgeschoben werden, weil sie warten müssen, bis die referenzierten lokal definierten Typen kompiliert sind. Wenn eine XAML-Datei allerdings ein x:Class-Attribut aufweist, generiert MarkupCompilePass1 die entsprechende sprachspezifische Codedatei.

Eine XAML-Datei ist lokalisierbar, wenn sie Elemente enthält, die das x:Uid-Attribut verwenden:

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

Eine XAML-Datei verweist auf einen lokal definierten Typ, wenn sie einen XML-Namespace deklariert, der mit dem clr-namespace-Wert auf einen Namespace im aktuellen Projekt verweist:

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

Wenn eine beliebige XAML-Datei lokalisierbar ist oder auf einen lokal definierten Typ verweist, ist ein zweiter Markupkompilierungsschritt erforderlich, bei dem GenerateTemporaryTargetAssembly und dann MarkupCompilePass2 ausgeführt werden müssen.

Beispiel

Im folgenden Beispiel wird gezeigt, wie XAML-Dateien mit drei Seiten in das Binärformat konvertiert werden. Seite1 enthält einen Verweis auf einen Typ (Class1), der sich im Stammnamespace des Projekts befindet und daher nicht in diesem Markupkompilierungsschritt in Binärformatdateien konvertiert wird. Stattdessen wird GenerateTemporaryTargetAssembly ausgeführt und anschließend 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>

Siehe auch