Attività MarkupCompilePass1
L'attività MarkupCompilePass1 converte i file di progetto XAML non localizzabili in formato binario compilato.
Parametri dell'attività
Parametro | Descrizione |
---|---|
AllGeneratedFiles |
Parametro di output facoltativo ITaskItem[]. 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à viene eseguita nello stesso AppDomain modo di MSBuild e viene eseguita più velocemente. Se il parametro restituisce true, l'attività viene eseguita in un secondo AppDomain isolato da MSBuild e viene eseguita più lentamente. |
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 Visual Studio 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 genera un eseguibile di Windows il cui nome è WinExeAssembly.exe, il parametro AssemblyName ha un valore WinExeAssembly. |
AssemblyPublicKeyToken |
Parametro String facoltativo. Specifica il token di chiave pubblica per l'assembly. |
AssemblyVersion |
Parametro String facoltativo. Specifica il numero di versione dell'assembly. |
ContentFiles |
Parametro ITaskItem[] facoltativo. Specifica l'elenco dei file di contenuto separati. |
DefineConstants |
Parametro String facoltativo. Specifica che viene mantenuto il valore corrente di DefineConstants, che influisce sulla generazione di assembly di destinazione; se questo parametro viene modificato, l'API pubblica nell'assembly di destinazione può essere modificata e la compilazione di file XAML che fanno riferimento a tipi locali potrebbero essere interessati. |
ExtraBuildControlFiles |
Parametro ITaskItem[] facoltativo. Specifica un elenco di file che controllano l'attivazione di 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 facoltativo ITaskItem[]. Contiene l'elenco dei file generati in formato binario XAML. |
GeneratedCodeFiles |
Parametro di output facoltativo ITaskItem[]. Contiene l'elenco dei file di codice gestito generati. |
GeneratedLocalizationFiles |
Parametro di output facoltativo ITaskItem[]. Contiene l'elenco dei file di localizzazione generati per ogni file XAML localizzabile. |
HostInBrowser |
Parametro String facoltativo. Specifica se l'assembly generato è un'applicazione browser XAML (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 nella Global Assembly Cache (GAC), in una directory di installazione di .NET e così via. |
Language |
Parametro String obbligatorio. Specifica il linguaggio gestito supportato dal compilatore. Le opzioni valide sono C#, VB, JScript 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, viene utilizzata l'estensione predefinita del nome file di origine per un linguaggio: .vb per 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 di 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 di riferimenti dai file agli assembly che contengono i tipi usati nei file XAML. |
RequirePass2ForMainAssembly |
Parametro di output Boolean facoltativo. Indica se il progetto contiene file XAML non localizzabili che fanno riferimento a tipi locali incorporati nell'assembly principale. |
RequirePass2ForSatelliteAssembly |
Parametro di output Boolean facoltativo. Indica se il progetto contiene file XAML localizzabili che fanno riferimento a 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 usato 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 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 sono incorporati i file di formato binario XAML generati. Se UICulture non è impostato, i file di formato binario XAML generati vengono incorporati nell'assembly principale. |
XAMLDebuggingInformation |
Parametro Boolean facoltativo. Se true, le informazioni di diagnostica vengono generate e incluse nel codice XAML compilato per facilitare il debug. |
Osservazioni:
L'attività MarkupCompilePass1 in genere compila XAML in formato binario e genera file di codice. Se un file XAML contiene riferimenti ai tipi definiti nello stesso progetto, la compilazione in formato binario viene posticipata da MarkupCompilePass1 a un secondo passaggio di compilazione di 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 ha un x:Class
attributo, MarkupCompilePass1 genera il file di codice specifico del linguaggio.
Un file XAML è localizzabile se contiene elementi che usano l'attributo x:Uid
:
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 usa il clr-namespace
valore per fare riferimento a uno spazio dei nomi nel progetto corrente:
<Page x:Class="WPFMSBuildSample.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 in locale, è necessario un secondo passaggio di compilazione di markup, che richiede l'esecuzione di GenerateTemporaryTargetAssembly e quindi markupCompilePass2.
Esempio
L'esempio seguente illustra come convertire tre file XAML di pagina 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. Viene invece eseguito GenerateTemporaryTargetAssembly, seguito da MarkupCompilePass2.
<Project xmlns="http://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>