MarkupCompilePass1-Aufgabe
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 build engine (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 browser application (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 global assembly cache (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 Page XAML-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 WPF-XAML-Browseranwendungen