MarkupCompilePass1 – úloha

Úkol MarkupCompilePass1 převede nelokalizovatelné soubory projektu XAML do kompilovaného binárního formátu.

Parametry úkolu

Parametr Popis
AllGeneratedFiles Volitelný výstupní parametr ITaskItem[].

Obsahuje úplný seznam souborů generovaných úkolem MarkupCompilePass1 .
AlwaysCompileMarkupFilesInSeparateDomain Volitelný logický parametr.

Určuje, zda má být úloha spuštěna v samostatném souboru AppDomain. Pokud tento parametr vrátí hodnotu false, úloha se spustí ve stejném pořadí AppDomain jako MSBuild a spustí se rychleji. Pokud parametr vrátí hodnotu true, úloha se spustí v sekundě AppDomain , která je izolovaná od nástroje MSBuild a běží pomaleji.
ApplicationMarkup Volitelný parametr ITaskItem[].

Určuje název souboru XAML definice aplikace.
AssembliesGeneratedDuringBuild Volitelný parametr String[]

Určuje odkazy na sestavení, která se mění během procesu sestavení. Například řešení sady Visual Studio může obsahovat jeden projekt, který odkazuje na zkompilovaný výstup jiného projektu. V tomto případě lze zkompilovaný výstup druhého projektu přidat do parametru AssemblyesGeneratedDuringBuild .

Poznámka: Parametr AssemblyesGeneratedDuringBuild musí obsahovat odkazy na úplnou sadu sestavení generovaných řešením sestavení.
AssemblyName Povinný parametr řetězce .

Určuje krátký název sestavení, které je generováno pro projekt. Pokud například projekt generuje spustitelný soubor systému Windows, jehož název je WinExeAssembly.exe, má parametr AssemblyName hodnotu WinExeAssembly.
AssemblyPublicKeyToken Volitelný parametr String .

Určuje token veřejného klíče pro sestavení.
AssemblyVersion Volitelný parametr String .

Určuje číslo verze sestavení.
ContentFiles Volitelný parametr ITaskItem[].

Určuje seznam volných souborů obsahu.
DefineConstants Volitelný parametr String .

Určuje, že aktuální hodnota DefineConstants je zachována. které ovlivňují generování cílových sestavení; Pokud se tento parametr změní, může být změněno veřejné rozhraní API v cílovém sestavení a může být ovlivněna kompilace souborů XAML, které odkazují na místní typy.
ExtraBuildControlFiles Volitelný parametr ITaskItem[].

Určuje seznam souborů, které řídí, zda se při opětovném spuštění úlohy aktivuje MarkupCompilePass1 opětovné sestavení. Opětovné sestavení se aktivuje, pokud se některý z těchto souborů změní.
GeneratedBamlFiles Volitelný výstupní parametr ITaskItem[].

Obsahuje seznam vygenerovaných souborů v binárním formátu XAML.
GeneratedCodeFiles Volitelný výstupní parametr ITaskItem[].

Obsahuje seznam vygenerovaných souborů spravovaného kódu.
GeneratedLocalizationFiles Volitelný výstupní parametr ITaskItem[].

Obsahuje seznam lokalizačních souborů generovaných pro každý lokalizovatelný soubor XAML.
HostInBrowser Volitelný parametr String .

Určuje, zda generované sestavení je aplikace prohlížeče XAML (XBAP). Platné možnosti jsou true a false. Pokud je pravda, kód se vygeneruje pro podporu hostování prohlížeče.
KnownReferencePaths Volitelný parametr String[]

Určuje odkazy na sestavení, která se během procesu sestavení nemění. Zahrnuje sestavení umístěná v globální mezipaměti sestavení (GAC), v instalačním adresáři .NET atd.
Language Povinný parametr String .

Určuje spravovaný jazyk, který kompilátor podporuje. Platné možnosti jsou C#, VB, JScript a C++.
LanguageSourceExtension Volitelný parametr String .

Určuje příponu, která se připojí k rozšíření vygenerovaného souboru spravovaného kódu:

<Filename>.g<LanguageSourceExtension>

Pokud parametr LanguageSourceExtension není nastaven s konkrétní hodnotou, použije se výchozí přípona názvu zdrojového souboru pro jazyk: .vb pro Visual Basic, .csharp pro C#.
LocalizationDirectivesToLocFile Volitelný parametr String .

Určuje, jak generovat informace o lokalizaci pro každý zdrojový soubor XAML. Platné možnosti jsou None, CommentsOnly a All.
OutputPath Povinný parametr String .

Určuje adresář, ve kterém se generují vygenerované soubory spravovaného kódu a soubory binárního formátu XAML.
OutputType Povinný parametr String .

Určuje typ sestavení, které je generováno projektem. Platné možnosti jsou winexe, exe, knihovna a netmodule.
PageMarkup Volitelný parametr ITaskItem[].

Určuje seznam souborů XAML, které se mají zpracovat.
References Volitelný parametr ITaskItem[].

Určuje seznam odkazů ze souborů na sestavení, která obsahují typy používané v souborech XAML.
RequirePass2ForMainAssembly Volitelný logický výstupní parametr.

Určuje, zda projekt obsahuje nelokalizovatelné soubory XAML, které odkazují na místní typy vložené do hlavního sestavení.
RequirePass2ForSatelliteAssembly Volitelný logický výstupní parametr.

Určuje, zda projekt obsahuje lokalizovatelné soubory XAML, které odkazují na místní typy vložené do hlavního sestavení.
RootNamespace Volitelný parametr String .

Určuje kořenový obor názvů pro třídy, které jsou uvnitř projektu. RootNamespace se také používá jako výchozí obor názvů vygenerovaného souboru spravovaného kódu, pokud odpovídající soubor XAML neobsahuje x:Class atribut.
SourceCodeFiles Volitelný parametr ITaskItem[].

Určuje seznam souborů kódu pro aktuální projekt. Seznam neobsahuje soubory spravovaného kódu specifického pro jazyk.
UICulture Volitelný parametr String .

Určuje satelitní sestavení pro jazykovou verzi uživatelského rozhraní, ve které jsou vloženy vygenerované soubory binárního formátu XAML. Pokud uiCulture není nastavena, vygenerované soubory binárního formátu XAML jsou vloženy do hlavního sestavení.
XAMLDebuggingInformation Volitelný logický parametr.

Pokud je pravda, vygenerují se diagnostické informace a zahrnou se do zkompilovaného XAML, aby bylo možné ladit.

Poznámky

Úloha MarkupCompilePass1 obvykle kompiluje XAML do binárního formátu a generuje soubory kódu. Pokud soubor XAML obsahuje odkazy na typy definované ve stejném projektu, jeho kompilace do binárního formátu je odložena MarkupCompilePass1 na druhý kód kompilace pass (MarkupCompilePass2). Tyto soubory musí mít odloženou kompilaci, protože musí počkat, až budou odkazované místně definované typy zkompilovány. Pokud má ale soubor x:Class XAML atribut, MarkupCompilePass1 vygeneruje pro něj soubor kódu specifický pro jazyk.

Soubor XAML je lokalizovatelný, pokud obsahuje elementy, které používají x:Uid atribut:

<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>

Soubor XAML odkazuje na místně definovaný typ, když deklaruje obor názvů XML, který používá clr-namespace hodnotu odkazující na obor názvů v aktuálním projektu:

<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>

Pokud je jakýkoli soubor XAML lokalizovatelný nebo odkazuje na místně definovaný typ, je vyžadován druhý průchod kompilace značek, který vyžaduje spuštění GenerateTemporaryTargetAssembly a pak MarkupCompilePass2.

Příklad

Následující příklad ukazuje, jak převést tři stránkové soubory XAML na binární formát souborů. Stránka1 obsahuje odkaz na typ, Class1který je v kořenovém oboru názvů projektu, a proto není převeden na binární formát souborů v tomto průchodu kompilace značek. Místo toho se spustí GenerateTemporaryTargetAssembly a následuje 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>

Viz také