Attività GenerateTemporaryTargetAssembly
L'attività GenerateTemporaryTargetAssembly genera un assembly se almeno una pagina Extensible Application Markup Language (XAML) in un progetto fa riferimento a un tipo dichiarato localmente in tale progetto. L'assembly generato viene rimosso dopo il completamento del processo di compilazione o in caso di suo esito negativo.
Parametri dell'attività
Parametro |
Descrizione |
---|---|
AssemblyName |
Parametro String obbligatorio. Specifica il nome breve dell'assembly generato per un progetto ed è anche il nome dell'assembly di destinazione generato temporaneamente. Ad esempio, se un progetto genera un eseguibile Windows il cui nome è WinExeAssembly.exe, il parametro AssemblyName presenterà il valore WinExeAssembly. |
CompileTargetName |
Parametro String obbligatorio. Specifica il nome della destinazione Microsoft build engine (MSBuild) utilizzata per generare assembly dai file di codice sorgente. Il valore tipico per CompileTargetName è CoreCompile. |
CompileTypeName |
Parametro String obbligatorio. Specifica il tipo di compilazione eseguito dalla destinazione specificata dal parametro CompileTargetName. Per la destinazione CoreCompile, questo valore è Compile. |
CurrentProject |
Parametro String obbligatorio. Specifica il percorso completo del file di progetto MSBuild per il progetto che richiede un assembly di destinazione temporaneo. |
GeneratedCodeFiles |
Parametro ITaskItem[] facoltativo. Specifica l'elenco di file di codice gestito specifici del linguaggio generati dall'attività Attività MarkupCompilePass1. |
IntermediateOutputPath |
Parametro String obbligatorio. Specifica la directory in cui viene generato l'assembly di destinazione temporaneo. |
MSBuildBinPath |
Parametro String obbligatorio. Specifica il percorso di MSBuild.exe, necessario per compilare l'assembly di destinazione temporaneo. |
ReferencePath |
Parametro ITaskItem[] facoltativo. Specifica un elenco di assembly, per percorso e nome file, a cui viene fatto riferimento dai tipi compilati nell'assembly di destinazione temporaneo. |
ReferencePathTypeName |
Parametro String obbligatorio. Specifica il parametro utilizzato dal parametro di destinazione della compilazione (CompileTargetName), che specifica l'elenco di riferimenti ad assembly (ReferencePath). Il valore appropriato è ReferencePath. |
Note
Il primo passaggio di compilazione del markup, eseguito dall'Attività MarkupCompilePass1, compila i file XAML in formato binario. Di conseguenza, il compilatore necessita di un elenco degli assembly a cui si fa riferimento che contengono i tipi utilizzati dai file XAML. Tuttavia, se un file XAML utilizza un tipo definito nello stesso progetto, non verrà creato un assembly corrispondente per tale progetto fino a quando quest'ultimo non viene compilato. Pertanto, non sarà possibile fornire un riferimento all'assembly durante il primo passaggio di compilazione del markup.
Invece MarkupCompilePass1 rinvia la conversione dei file XAML che contengono riferimenti ai tipi nello stesso progetto a un secondo passaggio di compilazione del markup, eseguito dall'Attività MarkupCompilePass2. Prima dell'esecuzione di MarkupCompilePass2, verrà generato un assembly temporaneo. Questo assembly contiene i tipi utilizzati dai file XAML il cui passaggio di compilazione del markup è stato rinviato. Un riferimento all'assembly generato viene fornito a MarkupCompilePass2 durante l'esecuzione, per consentire la conversione in formato binario dei file XAML con compilazione rinviata.
Esempio
Nell'esempio riportato di seguito viene generato un assembly temporaneo poiché Page1.xaml contiene un riferimento a un tipo che si trova nello stesso progetto.
<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>
Vedere anche
Concetti
Compilazione di un'applicazione WPF (WPF)
Panoramica delle applicazioni browser XAML di WPF
Altre risorse
Informazioni di riferimento su MSBuild WPF