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