Condividi tramite


Attività MarkupCompilePass1

L'attività MarkupCompilePass1 converte i file di progetto Extensible Application Markup Language (XAML) non localizzabili in formato binario compilato.

Parametri dell'attività

Parametro

Descrizione

AllGeneratedFiles

Parametro di output ITaskItem[] facoltativo.

Contiene un elenco completo dei file generati dall'attività MarkupCompilePass1.

AlwaysCompileMarkupFilesInSeparateDomain

Parametro Boolean facoltativo.

Specifica se eseguire l'attività in un AppDomain separato. Se questo parametro restituisce false, l'attività verrà eseguita nello stesso AppDomain di Microsoft build engine (MSBuild) e in modo più rapido. Se il parametro restituisce true, l'attività verrà eseguita in un secondo AppDomain isolato da MSBuild e in modo più lento.

ApplicationMarkup

Parametro ITaskItem[] facoltativo.

Specifica il nome del file XAML di definizione dell'applicazione.

AssembliesGeneratedDuringBuild

Parametro String[] facoltativo.

Specifica i riferimenti ad assembly che vengono modificati durante il processo di compilazione. Ad esempio, una soluzione Microsoft Visual Studio 2005 può contenere un progetto che fa riferimento all'output compilato di un altro progetto. In questo caso, l'output compilato del secondo progetto può essere aggiunto al parametro AssembliesGeneratedDuringBuild.

Nota: il parametro AssembliesGeneratedDuringBuild deve contenere riferimenti all'insieme completo di assembly generati da una soluzione di compilazione.

AssemblyName

Parametro string obbligatorio.

Specifica il nome breve dell'assembly generato per un progetto. Ad esempio, se un progetto sta generando un eseguibile Windows il cui nome è WinExeAssembly.exe, il parametro AssemblyName presenterà il valore WinExeAssembly.

AssemblyPublicKeyToken

Parametro String facoltativo.

Specifica il token di chiave pubblica per l'assembly.

AssemblyVersion

Parametro String facoltativo.

Consente di specificare il numero di versione dell'assembly.

ContentFiles

Parametro ITaskItem[] facoltativo.

Specifica l'elenco dei file di dati separati.

DefineConstants

Parametro String facoltativo.

Specifica che viene mantenuto il valore corrente di DefineConstants, con effetti sulla generazione dell'assembly di destinazione. L'eventuale modifica di questo parametro potrebbe comportare la modifica anche dell'API pubblica nell'assembly di destinazione e potrebbe influire sulla compilazione dei file XAML che fanno riferimento ai tipi locali.

ExtraBuildControlFiles

Parametro ITaskItem[] facoltativo.

Specifica un elenco di file che controllano se viene attivata una ricompilazione durante la riesecuzione dell'attività MarkupCompilePass1; la ricompilazione viene attivata in caso di modifica di uno di questi file.

GeneratedBamlFiles

Parametro di output ITaskItem[] facoltativo.

Contiene l'elenco dei file generati in formato binario XAML.

GeneratedCodeFiles

Parametro di output ITaskItem[] facoltativo.

Contiene l'elenco dei file di codice gestito generati.

GeneratedLocalizationFiles

Parametro di output ITaskItem[] facoltativo.

Contiene l'elenco dei file di localizzazione generati per ogni file XAML localizzabile.

HostInBrowser

Parametro String facoltativo.

Specifica se l'assembly generato è XAML browser application (XBAP). Le opzioni valide sono true e false. Se true, verrà generato codice per supportare l'hosting del browser.

KnownReferencePaths

Parametro String[] facoltativo.

Specifica i riferimenti ad assembly che non vengono modificati durante il processo di compilazione. Include assembly che si trovano in global assembly cache (GAC), in una directory di installazione di Microsoft .NET Framework e così via.

Language

Parametro String obbligatorio.

Specifica il linguaggio gestito supportato dal compilatore. Le opzioni valide sono C#, VB, JScript, J# e C++.

LanguageSourceExtension

Parametro String facoltativo.

Specifica l'estensione aggiunta all'estensione del file di codice gestito generato:

<Filename>.g<LanguageSourceExtension>

Se il parametro LanguageSourceExtension non è impostato con un valore specifico, verrà utilizzata l'estensione del nome file di origine predefinita per un linguaggio: .vb per Microsoft Visual Basic, .csharp per C#.

LocalizationDirectivesToLocFile

Parametro String facoltativo.

Specifica come generare informazioni di localizzazione per ogni file XAML di origine. Le opzioni valide sono None, CommentsOnly e All.

OutputPath

Parametro String obbligatorio.

Specifica la directory in cui vengono generati i file di codice gestito generati e i file in formato binario XAML.

OutputType

Parametro String obbligatorio.

Specifica il tipo di assembly generato da un progetto. Le opzioni valide sono winexe, exe, library e netmodule.

PageMarkup

Parametro ITaskItem[] facoltativo.

Specifica un elenco di file XAML da elaborare.

References

Parametro ITaskItem[] facoltativo.

Specifica l'elenco dei riferimenti dai file agli assembly che contengono i tipi utilizzati nei file XAML.

RequirePass2ForMainAssembly

Parametro di output Boolean facoltativo.

Indica se il progetto contiene file XAML non localizzabili che fanno riferimento ai tipi locali incorporati nell'assembly principale.

RequirePass2ForSatelliteAssembly

Parametro di output Boolean facoltativo.

Indica se il progetto contiene file XAML localizzabili che fanno riferimento ai tipi locali incorporati nell'assembly principale.

RootNamespace

Parametro String facoltativo.

Specifica lo spazio dei nomi radice per le classi all'interno del progetto. RootNamespace viene utilizzato anche come spazio dei nomi predefinito di un file di codice gestito generato quando il file XAML corrispondente non include l'attributo x:Class.

SourceCodeFiles

Parametro ITaskItem[] facoltativo.

Specifica l'elenco dei file di codice per il progetto corrente. L'elenco non include i file di codice gestito generati specifici del linguaggio.

UICulture

Parametro String facoltativo.

Specifica l'assembly satellite per le impostazioni cultura dell'interfaccia utente in cui vengono incorporati i file in formato binario XAML generati. Se UICulture non è impostato, i file in formato binario XAML generati verranno incorporati nell'assembly principale.

XAMLDebuggingInformation

Parametro Boolean facoltativo.

Se true, le informazioni diagnostiche verranno generate e incluse nel file XAML compilato per agevolare il debug.

Note

L'attività MarkupCompilePass1 in genere compila XAML in formato binario e genera file di codice. Se un file XAML contiene riferimenti a tipi definiti nello stesso progetto, la relativa compilazione in formato binario verrà rinviata da MarkupCompilePass1 a un secondo passaggio di compilazione del markup (MarkupCompilePass2). La compilazione di tali file deve essere rinviata poiché è necessario attendere la compilazione dei tipi definiti localmente a cui si fa riferimento. Tuttavia, se un file XAML presenta un attributo x:Class, MarkupCompilePass1 genererà il relativo file di codice specifico del linguaggio.

Un file XAML è localizzabile se contiene elementi che utilizzano l'attributo x:Uid:

<Page x:Class="WPFMSBuildSample.Page1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    x:Uid="Page1Uid"
    >
  ...
</Page>

Un file XAML fa riferimento a un tipo definito localmente quando dichiara uno spazio dei nomi XML che utilizza il valore clr-namespace per fare riferimento a uno spazio dei nomi nel progetto corrente:

<Page x:Class="WPFMSBuildSample.Page1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:localNamespace="clr-namespace:WPFMSBuildSample"
    >
    <Grid>
      <Grid.Resources>
        <localNameSpace:LocalType x:Key="localType" />
      </Grid.Resources>
      ...
    </Grid>
</Page>

Se un file XAML è localizzabile o fa riferimento a un tipo definito localmente, sarà necessario un secondo passaggio di compilazione del markup, che richiede l'esecuzione di Attività GenerateTemporaryTargetAssembly e di Attività MarkupCompilePass2.

Esempio

Nell'esempio riportato di seguito viene illustrato come convertire tre file Page XAML in file di formato binario. Page1 contiene un riferimento a un tipo, Class1, che si trova nello spazio dei nomi radice del progetto e pertanto non viene convertito nei file di formato binario in questo passaggio di compilazione del markup. Invece viene eseguito Attività GenerateTemporaryTargetAssembly, seguito da Attività MarkupCompilePass2.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask 
    TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass1" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="MarkupCompilePass1Task">
    <MarkupCompilePass1 
      AssemblyName="WPFMSBuildSample"
      Language="C#"
      OutputType="WinExe"
      OutputPath="obj\Debug\"
      ApplicationMarkup="App.xaml"
      PageMarkup="Page1.xaml;Page2.xaml;Page3.xaml"
      SourceCodeFiles="Class1.cs"
      References="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" />
  </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

Informazioni di riferimento sulle attività MSBuild WPF

Riferimenti a MSBuild

Riferimenti delle attività MSBuild