Freigeben über


MarkupCompilePass1-Aufgabe

Aktualisiert: November 2007

Die MarkupCompilePass1-Aufgabe konvertiert nicht lokalisierbare Extensible Application Markup Language (XAML)-Projektdateien in ein kompiliertes Binärformat.

Aufgabenparameter

Parameter

Beschreibung

AllGeneratedFiles

Optionaler ITaskItem[]-Ausgabeparameter.

Enthält eine vollständige Liste der Dateien, die von der MarkupCompilePass1-Aufgabe generiert werden.

AlwaysCompileMarkupFilesInSeparateDomain

Optionaler Boolean Parameter.

Gibt an, ob die Aufgabe in einer separaten AppDomain ausgeführt werden soll. Wenn der Parameter false zurückgibt, wird die Aufgabe in derselben AppDomain wie Microsoft-Buildmodul (MSBuild) und schneller ausgeführt. Wenn der Parameter true zurückgibt, wird die Aufgabe in einer anderen AppDomain, die von MSBuild getrennt ist, und langsamer ausgeführt.

ApplicationMarkup

Optionaler ITaskItem[]-Parameter.

Gibt den Namen der XAML-Anwendungsdefinitionsdatei an.

AssembliesGeneratedDuringBuild

Optionaler String[]-Parameter.

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

Hinweis: Der AssembliesGeneratedDuringBuild-Parameter muss Verweise auf den vollständigen Satz der Assemblys enthalten, die von einer Buildprojektmappe generiert werden.

AssemblyName

Erforderlicher string-Parameter.

Gibt den Kurznamen der Assembly an, die für ein Projekt generiert wird. Wenn beispielsweise ein Projekt eine ausführbare Windows-Datei mit dem Namen WinExeAssembly.exe generiert, hat der AssemblyName-Parameter den Wert WinExeAssembly.

AssemblyPublicKeyToken

Optionaler String-Parameter.

Gibt das öffentliche Schlüsseltoken der 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 wirkt sich auf die Generierung der Zielassembly aus. Wenn dieser Parameter geändert wird, kann die öffentliche API in der Zielassembly geändert und die Kompilierung der XAML-Dateien, die auf lokale Typen verweisen, beeinflusst werden.

ExtraBuildControlFiles

Optionaler ITaskItem[]-Parameter.

Gibt eine Liste der Dateien an, mit denen gesteuert wird, ob beim erneuten Ausführen der MarkupCompilePass1-Aufgabe eine Neuerstellung ausgelöst wird. Eine Neuerstellung wird ausgelöst, wenn sich eine dieser Dateien ändert.

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 verwalteten Codedateien.

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 ein XAML-Browseranwendung (XBAP) ist. Die gültigen Optionen sind true und false. Bei 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. Schließt Assemblys ein, die im globaler Assemblycache (GAC), in einem Microsoft .NET Framework-Installationsverzeichnis usw. gesucht werden.

Language

Erforderlicher String-Parameter.

Gibt die verwaltete Sprache an, die der Compiler unterstützt. Die gültigen Optionen sind C#, VB, JScript, J# und C++.

LanguageSourceExtension

Optionaler String-Parameter.

Gibt die Erweiterung an, die an die Erweiterung der generierten verwalteten Codedatei angefügt wird:

<Filename>.g<LanguageSourceExtension>

Wenn der LanguageSourceExtension-Parameter auf keinen bestimmten Wert festgelegt ist, wird die Standarderweiterung für den Quelldateinamen für die jeweilige Sprache verwendet: .vb für Microsoft Visual Basic und .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 verwalteten Codedateien und XAML-Binärformatdateien generiert werden.

OutputType

Erforderlicher String-Parameter.

Gibt den Typ der Assembly an, die von einem Projekt generiert wird. Die gültigen Optionen sind winexe, exe, 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 aus Dateien auf Assemblys an, in denen die in den XAML-Dateien verwendeten Typen enthalten sind.

RequirePass2ForMainAssembly

Optionaler Boolean-Ausgabeparameter.

Gibt an, ob das Projekt nicht lokalisierbare XAML-Dateien enthält, die auf lokale Typen verweisen, die in die Hauptassembly eingebettet sind.

RequirePass2ForSatelliteAssembly

Optionaler Boolean-Ausgabeparameter.

Gibt an, ob das Projekt lokalisierbare XAML-Dateien enthält, die auf lokale Typen verweisen, die in die Hauptassembly eingebettet sind.

RootNamespace

Optionaler String-Parameter.

Gibt den Stammnamespace für Klassen an, die sich im Projekt befinden. RootNamespace wird auch als Standardnamespace für eine generierte verwaltete Codedatei verwendet, wenn die entsprechende XAML-Datei das x:Class-Attribut nicht enthält.

SourceCodeFiles

Optionaler ITaskItem[]-Parameter.

Gibt die Liste der Codedateien für das aktuelle Projekt an. Die Liste enthält keine generierten sprachspezifischen verwalteten Codedateien.

UICulture

Optionaler String-Parameter.

Gibt die Satellitenassembly für die UI-Kultur an, in die die generierten XAML-Binärformatdateien eingebettet sind. Wenn UICulture nicht festgelegt ist, werden die generierten XAML-Binärformatdateien in die Hauptassembly eingebettet.

XAMLDebuggingInformation

Optionaler Boolean-Parameter.

Bei true werden Diagnoseinformationen generiert und in die kompilierte XAML integriert, um das Debuggen zu unterstützen.

Hinweise

Die MarkupCompilePass1-Aufgabe kompiliert XAML normalerweise im Binärformat und generiert Codedateien. Wenn eine XAML-Datei Verweise auf im gleichen Projekt definierte Typen enthält, wird die Kompilierung im Binärformat von MarkupCompilePass1 in den nächsten Markupkompilierungsschritt (MarkupCompilePass2) verschoben. Die Kompilierung solcher Dateien muss verschoben werden, bis die lokal definierten Typen, auf die verwiesen wird, kompiliert sind. Wenn eine XAML-Datei jedoch über ein x:Class-Attribut verfügt, generiert MarkupCompilePass1 die sprachspezifische Codedatei.

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

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

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

Wenn eine der XAML-Dateien lokalisierbar ist oder auf einen lokal definierten Typ verweist, ist ein zweiter Markupkompilierungsschritt erforderlich, für den die GenerateTemporaryTargetAssembly-Aufgabe und dann die MarkupCompilePass2-Aufgabe ausgeführt werden müssen.

Beispiel

Im folgenden Beispiel wird das Konvertieren von drei PageXAML-Dateien in Dateien im Binärformat veranschaulicht. Page1 enthält einen Verweis auf den Typ Class1, der sich im Stammnamespace des Projekts befindet und in diesem Markupkompilierungsschritt daher nicht in Dateien im Binärformat konvertiert wird. Stattdessen werden die GenerateTemporaryTargetAssembly-Aufgabe und anschließend die MarkupCompilePass2-Aufgabe ausgeführt.

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

Siehe auch

Konzepte

Erstellen einer WPF-Anwendung (WPF)

Übersicht über XAML-Browseranwendungen von Windows Presentation Foundation

Weitere Ressourcen

Windows Presentation Foundation MSBuild-Referenz

Windows Presentation Foundation MSBuild-Aufgabenreferenz

MSBuild-Referenz

Referenz zu MSBuild-Aufgaben