Partager via


GenerateTemporaryTargetAssembly, tâche

Mise à jour : novembre 2007

La tâche GenerateTemporaryTargetAssembly génère un assembly si au moins une page XAML (Extensible Application Markup Language) d'un projet fait référence à un type localement déclaré dans ce projet. L'assembly généré est supprimé une fois le processus de génération terminé, ou lorsque le processus de génération échoue.

Paramètres de la tâche

Paramètre

Description

AssemblyName

Paramètre String obligatoire.

Spécifie le nom court de l'assembly généré pour un projet ; ce nom est le même que celui de l'assembly cible qui est généré temporairement. Par exemple, si un projet génère un exécutable Windows dont le nom est WinExeAssembly.exe, le paramètre AssemblyName a la valeur WinExeAssembly.

CompileTargetName

Paramètre String obligatoire.

Spécifie le nom de la cible Microsoft Build Engine (MSBuild) utilisée pour générer des assemblys à partir de fichiers de code source. La valeur type pour CompileTargetName est CoreCompile.

CompileTypeName

Paramètre String obligatoire.

Spécifie le type de compilation exécutée par la cible spécifiée par le paramètre CompileTargetName. Pour la cible CoreCompile, cette valeur est Compile.

CurrentProject

Paramètre String obligatoire.

Spécifie le chemin d'accès complet du fichier projet MSBuild pour le projet qui requiert un assembly cible temporaire.

GeneratedCodeFiles

Paramètre ITaskItem[] facultatif.

Spécifie la liste des fichiers de code managé, spécifiques au langage, générés par la tâche MarkupCompilePass1, tâche.

IntermediateOutputPath

Paramètre String obligatoire.

Spécifie le répertoire dans lequel l'assembly cible temporaire est généré.

MSBuildBinPath

Paramètre String obligatoire.

Spécifie l'emplacement de MSBuild.exe, requis pour compiler l'assembly cible temporaire.

ReferencePath

Paramètre ITaskItem[] facultatif.

Spécifie, par le chemin d'accès et le nom du fichier, une liste d'assemblys référencés par les types compilés dans l'assembly cible temporaire.

ReferencePathTypeName

Paramètre String obligatoire.

Spécifie le paramètre utilisé par le paramètre de la cible de la compilation (CompileTargetName) qui spécifie la liste des références d'assemblys (ReferencePath). La valeur appropriée est ReferencePath.

Notes

Le premier passage de compilation du balisage, exécuté par la MarkupCompilePass1, tâche, compile des fichiers XAML au format binaire. Par conséquent, le compilateur a besoin d'une liste des assemblys référencés qui contiennent les types utilisés par les fichiers XAML. Toutefois, si un fichier XAML utilise un type défini dans le même projet, aucun assembly correspondant à ce projet ne sera créé tant que le projet ne sera pas généré. Par conséquent, une référence d'assembly ne peut pas être fournie au cours du premier passage de compilation du balisage.

À la place, MarkupCompilePass1 diffère la conversion des fichiers XAML qui contiennent des références à des types du même projet à un second passage de compilation du balisage, exécuté par la MarkupCompilePass2, tâche. Avant l'exécution de MarkupCompilePass2, un assembly temporaire est généré. Cet assembly contient les types utilisés par les fichiers XAML dont le passage de compilation du balisage a été différé. Une référence à l'assembly généré est fournie à MarkupCompilePass2 lors de son exécution afin que les fichiers XAML, dont la compilation a été différée, puissent être convertis au format binaire.

Exemple

L'exemple suivant génère un assembly temporaire car Page1.xaml contient une référence à un type du même projet.

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

Voir aussi

Concepts

Génération d'une application WPF (WPF)

Vue d'ensemble des applications de navigateur XAML Windows Presentation Foundation

Autres ressources

Référence MSBuild - Windows Presentation Foundation

Référence des tâches MSBuild - Windows Presentation Foundation

Référence MSBuild

Référence des tâches MSBuild