Freigeben über


GenerateTemporaryTargetAssembly-Aufgabe

Die GenerateTemporaryTargetAssembly-Aufgabe generiert eine Assembly, wenn mindestens eine Extensible Application Markup Language (XAML)-Seite eines Projekts auf einen Typ verweist, der lokal in diesem Projekt deklariert ist. Die generierte Assembly wird entfernt, sobald der Buildprozess abgeschlossen ist oder wenn Fehler im Buildprozess auftreten.

Aufgabenparameter

Parameter

Beschreibung

AssemblyName

Erforderlicher String-Parameter.

Gibt den Kurznamen der für ein Projekt generierten Assembly an, bei dem es sich gleichzeitig um den Namen der temporär generierten Zielassembly handelt. Wenn beispielsweise ein Projekt eine ausführbare Windows-Datei mit dem Namen WinExeAssembly.exe generiert, hat der AssemblyName-Parameter den Wert WinExeAssembly.

CompileTargetName

Erforderlicher String-Parameter.

Gibt den Namen des Microsoft build engine (MSBuild)-Ziels an, das zum Generieren von Assemblys aus Quellcodedateien verwendet wird. Der typische Wert für CompileTargetName ist CoreCompile.

CompileTypeName

Erforderlicher String-Parameter.

Gibt den Typ der Kompilierung an, die von dem Ziel ausgeführt wird, das mit dem CompileTargetName-Parameter angegeben wird. Für das CoreCompile-Ziel lautet dieser Wert Compile.

CurrentProject

Erforderlicher String-Parameter.

Gibt den vollständigen Pfad der MSBuild-Projektdatei für das Projekt an, für das eine temporäre Zielassembly erforderlich ist.

GeneratedCodeFiles

Optionaler ITaskItem[]-Parameter.

Gibt die Liste der sprachspezifischen verwalteten Codedateien an, die von der MarkupCompilePass1-Aufgabe-Aufgabe generiert wurden.

IntermediateOutputPath

Erforderlicher String-Parameter.

Gibt das Verzeichnis an, in dem die temporäre Zielassembly generiert wird.

MSBuildBinPath

Erforderlicher String-Parameter.

Gibt den Speicherort von MSBuild.exe an, die zum Kompilieren der temporären Zielassembly erforderlich ist.

ReferencePath

Optionaler ITaskItem[]-Parameter.

Gibt eine Liste der Assemblys mit Pfad und Dateinamen an, auf die von den Typen verwiesen wird, die in die temporäre Zielassembly kompiliert werden.

ReferencePathTypeName

Erforderlicher String-Parameter.

Gibt den Parameter an, der von dem Parameter des Kompilierungsziels (CompileTargetName) verwendet wird, der die Liste der Assemblyverweise (ReferencePath) angibt. Der geeignete Wert ist ReferencePath.

Hinweise

Im ersten Markupkompilierungsdurchlauf, der von der MarkupCompilePass1-Aufgabe ausgeführt wird, werden XAML-Dateien in das Binärformat kompiliert. Folglich benötigt der Compiler eine Liste der Assemblys, auf die verwiesen wird und in denen die in den XAML-Dateien verwendeten Typen enthalten sind. Wenn eine XAML-Datei jedoch einen Typ verwendet, der im gleichen Projekt definiert ist, wird eine entsprechende Assembly für das Projekt erst erstellt, nachdem das Projekt erstellt wurde. Deshalb kann ein Assemblyverweis nicht während des ersten Markupkompilierungsdurchlaufs bereitgestellt werden.

Stattdessen verschiebt MarkupCompilePass1 die Konvertierung von XAML-Dateien, die Verweise auf Typen im gleichen Projekt enthalten, in den zweiten Markupkompilierungsdurchlauf, der von der MarkupCompilePass2-Aufgabe ausgeführt wird. Vor dem Ausführen von MarkupCompilePass2 wird eine temporäre Assembly generiert. Diese Assembly enthält die von den XAML-Dateien verwendeten Typen, deren Markupkompilierungsdurchlauf verschoben wurde. Während der Ausführung wird dem MarkupCompilePass2 ein Verweis auf die generierte Assembly bereitgestellt, sodass die XAML-Dateien, deren Kompilierung verschoben wurde, in das Binärformat konvertiert werden können.

Beispiel

Im folgenden Beispiel wird eine temporäre Assembly generiert, da Page1.xaml einen Verweis auf einen Typ im gleichen Projekt enthält.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask
    TaskName="Microsoft.Build.Tasks.Windows.GenerateTemporaryTargetAssembly" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="GenerateTemporaryTargetAssemblyTask">
    <GenerateTemporaryTargetAssembly
      AssemblyName="WPFMSBuildSample"
      CompileTargetName="CoreCompile"
      CompileTypeName="Compile"
      CurrentProject="FullBuild.proj"
      GeneratedCodeFiles="obj\debug\app.g.cs;obj\debug\Page1.g.cs;obj\debug\Page2.g.cs"
      ReferencePath="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"
      IntermediateOutputPath=".\obj\debug\"
      MSBuildBinPath="$(MSBuildBinPath)"
      ReferencePathTypeName="ReferencePath"/>
  </Target>
</Project>

Siehe auch

Konzepte

Erstellen einer WPF-Anwendung (WPF)

Übersicht über WPF-XAML-Browseranwendungen

Weitere Ressourcen

WPF-MSBuild-Referenz

Referenz zu MSBuild-Aufgaben für WPF

MSBuild-Referenz

Referenz zu MSBuild-Aufgaben