Condividi tramite


Attività GenerateTemporaryTargetAssembly

Aggiornamento: novembre 2007

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 esito negativo di tale processo.

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. Se ad esempio 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[] opzionale.

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[] opzionale.

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. Se, tuttavia, 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. Non sarà pertanto 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

Cenni preliminari sulle applicazioni browser XAML di Windows Presentation Foundation

Altre risorse

Riferimento a MSBuild di Windows Presentation Foundation

Riferimento ad attività MSBuild di Windows Presentation Foundation

Riferimenti a MSBuild

Riferimenti delle attività MSBuild