GenerateTemporaryTargetAssembly, tâche
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 requis. 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 requis. 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 requis. 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 requis. 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 requis. Spécifie le répertoire dans lequel l'assembly cible temporaire est généré. |
MSBuildBinPath |
Paramètre String requis. 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 requis. 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