MarkupCompilePass2-Aufgabe
Mit der Aufgabe MarkupCompilePass2 wird ein zweiter Markupkompilierungsschritt für XAML-Dateien ausgeführt, die auf Typen im selben Projekt verweisen.
Aufgabenparameter
Parameter | Beschreibung |
---|---|
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. |
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 AssembliesGeneratedDuringBuild hinzugefügt werden. Hinweis: AssembliesGeneratedDuringBuild 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. |
GeneratedBaml |
Optionaler ITaskItem[]-Ausgabeparameter. Enthält die Liste der generierten Dateien im XAML-Binärformat. |
KnownReferencePaths |
Optionaler String[] -Parameter. Gibt Verweise auf Assemblys an, die während des Buildprozesses niemals geändert werden. 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++. |
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 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, wxe, library und netmodule. |
References |
Optionaler ITaskItem[] -Parameter. Gibt die Liste der Verweise von Dateien auf Assemblys an, die die in den XAML-Dateien verwendeten Typen enthalten. Ein Verweis zeigt auf die Assembly, die vom GenerateTemporaryTargetAssembly-Task generiert wurde, der vor dem MarkupCompilePass2-Task ausgeführt werden muss. |
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. |
XAMLDebuggingInformation |
Optionaler Boolean-Parameter. Sofern TRUE, werden Diagnoseinformationen generiert und in die kompilierte XAML-Datei einbezogen, um das Debuggen zu unterstützen. |
Hinweise
Vor dem Ausführen von MarkupCompilePass2 müssen Sie eine temporäre Assembly mit den Typen generieren, die von den XAML-Dateien verwendet werden, deren Markupkompilierungsschritt aufgeschoben wurde. Sie generieren die temporäre Assembly durch Ausführen der GenerateTemporaryTargetAssembly-Aufgabe.
Ein Verweis auf die generierte temporäre Assembly wird bei der Ausführung an MarkupCompilePass2 übergeben, sodass die XAML-Dateien, deren Kompilierung im ersten Markupkompilierungsschritt aufgeschoben wurde, nun zur Kompilierung in das binäre Format übergeben werden.
Beispiel
Im folgenden Beispiel wird gezeigt, wie mit dem MarkupCompilePass2-Task ein zweiter Kompilierungsschritt durchgeführt wird.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass2"
AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
<Target Name="MarkupCompilePass2Task">
<MarkupCompilePass2
AssemblyName="WPFMSBuildSample"
Language="C#"
OutputType="WinExe"
OutputPath="obj\Debug\"
References=".\obj\debug\WPFMSBuildSample.exe;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>