Udostępnij przez


MarkupCompilePass1, zadanie

Zadanie MarkupCompilePass1 konwertuje nielokalizowalne pliki projektu XAML na skompilowany format binarny.

Parametry zadania

Parametr Opis
AllGeneratedFiles Opcjonalny parametr wyjściowy ITaskItem[] .

Zawiera pełną listę plików generowanych przez MarkupCompilePass1 zadanie.
AlwaysCompileMarkupFilesInSeparateDomain Opcjonalny parametr logiczny .

Określa, czy należy uruchomić zadanie w osobnym AppDomainobiekcie . Jeśli ten parametr zwraca wartość false, zadanie jest uruchamiane w taki sam AppDomain sposób jak program MSBuild i działa szybciej. Jeśli parametr zwraca wartość true, zadanie jest uruchamiane w sekundzie AppDomain odizolowanej od programu MSBuild i działa wolniej.
ApplicationMarkup Opcjonalny parametr ITaskItem[] .

Określa nazwę pliku XAML definicji aplikacji.
AssembliesGeneratedDuringBuild Opcjonalny parametr String[] .

Określa odwołania do zestawów, które zmieniają się podczas procesu kompilacji. Na przykład rozwiązanie programu Visual Studio może zawierać jeden projekt, który odwołuje się do skompilowanych danych wyjściowych innego projektu. W takim przypadku skompilowane dane wyjściowe drugiego projektu można dodać do parametru AssembliesGeneratedDuringBuild .

Uwaga: Parametr AssembliesGeneratedDuringBuild musi zawierać odwołania do kompletnego zestawu zestawów generowanych przez rozwiązanie kompilacji.
AssemblyName Wymagany parametr ciągu .

Określa krótką nazwę zestawu, który jest generowany dla projektu. Jeśli na przykład projekt generuje plik wykonywalny systemu Windows, którego nazwa to WinExeAssembly.exe, parametr AssemblyName ma wartość WinExeAssembly.
AssemblyPublicKeyToken Opcjonalny parametr ciągu .

Określa token klucza publicznego dla zestawu.
AssemblyVersion Opcjonalny parametr ciągu .

Określa numer wersji zestawu.
ContentFiles Opcjonalny parametr ITaskItem[] .

Określa listę luźnych plików zawartości.
DefineConstants Opcjonalny parametr ciągu .

Określa, że bieżąca wartość DefineConstants jest przechowywana. co wpływa na generowanie zestawu docelowego; Jeśli ten parametr zostanie zmieniony, publiczny interfejs API w zestawie docelowym może zostać zmieniony, a na kompilację plików XAML odwołujących się do typów lokalnych może mieć wpływ.
ExtraBuildControlFiles Opcjonalny parametr ITaskItem[] .

Określa listę plików, które kontrolują, czy ponowna kompilacja jest wyzwalana po ponownym uruchomieniu MarkupCompilePass1 zadania; ponowne kompilowanie jest wyzwalane, jeśli jeden z tych plików ulegnie zmianie.
GeneratedBamlFiles Opcjonalny parametr wyjściowy ITaskItem[] .

Zawiera listę wygenerowanych plików w formacie binarnym XAML.
GeneratedCodeFiles Opcjonalny parametr wyjściowy ITaskItem[] .

Zawiera listę wygenerowanych plików kodu zarządzanego.
GeneratedLocalizationFiles Opcjonalny parametr wyjściowy ITaskItem[] .

Zawiera listę plików lokalizacji, które zostały wygenerowane dla każdego zlokalizowanego pliku XAML.
HostInBrowser Opcjonalny parametr ciągu .

Określa, czy wygenerowany zestaw jest aplikacją przeglądarki XAML (XBAP). Prawidłowe opcje to true i false. Jeśli to prawda, kod jest generowany w celu obsługi hostingu przeglądarki.
KnownReferencePaths Opcjonalny parametr String[] .

Określa odwołania do zestawów, które nie zmieniają się podczas procesu kompilacji. Obejmuje zestawy znajdujące się w globalnej pamięci podręcznej zestawów (GAC) w katalogu instalacyjnym platformy .NET itd.
Language Wymagany parametr ciągu .

Określa język zarządzany, który obsługuje kompilator. Prawidłowe opcje to C#, VB, JScript i C++.
LanguageSourceExtension Opcjonalny parametr ciągu .

Określa rozszerzenie, które jest dołączane do rozszerzenia wygenerowanego pliku kodu zarządzanego:

<Filename>.g<LanguageSourceExtension>

Jeśli parametr LanguageSourceExtension nie jest ustawiony z określoną wartością, jest używane domyślne rozszerzenie nazwy pliku źródłowego dla języka: .vb dla języka Visual Basic, .csharp dla języka C#.
LocalizationDirectivesToLocFile Opcjonalny parametr ciągu .

Określa sposób generowania informacji o lokalizacji dla każdego źródłowego pliku XAML. Prawidłowe opcje to Brak, KomentarzeOnly i Wszystkie.
OutputPath Wymagany parametr ciągu .

Określa katalog, w którym są generowane pliki kodu zarządzanego i pliki formatu binarnego XAML.
OutputType Wymagany parametr ciągu .

Określa typ zestawu generowanego przez projekt. Prawidłowe opcje to winexe, exe, library i netmodule.
PageMarkup Opcjonalny parametr ITaskItem[] .

Określa listę plików XAML do przetworzenia.
References Opcjonalny parametr ITaskItem[] .

Określa listę odwołań z plików do zestawów zawierających typy używane w plikach XAML.
RequirePass2ForMainAssembly Opcjonalny parametr wyjściowy wartości logicznej.

Wskazuje, czy projekt zawiera nielokowalne pliki XAML odwołujące się do typów lokalnych osadzonych w głównym zestawie.
RequirePass2ForSatelliteAssembly Opcjonalny parametr wyjściowy wartości logicznej.

Wskazuje, czy projekt zawiera lokalizowalne pliki XAML odwołujące się do typów lokalnych osadzonych w głównym zestawie.
RootNamespace Opcjonalny parametr ciągu .

Określa przestrzeń nazw katalogu głównego dla klas, które znajdują się wewnątrz projektu. RootNamespace jest również używana jako domyślna przestrzeń nazw wygenerowanego pliku kodu zarządzanego, gdy odpowiedni plik XAML nie zawiera atrybutu x:Class .
SourceCodeFiles Opcjonalny parametr ITaskItem[] .

Określa listę plików kodu dla bieżącego projektu. Lista nie zawiera wygenerowanych plików kodu zarządzanego specyficznego dla języka.
UICulture Opcjonalny parametr ciągu .

Określa zestaw satelitarny kultury interfejsu użytkownika, w której są osadzone wygenerowane pliki formatu binarnego XAML. Jeśli funkcja UICulture nie jest ustawiona, wygenerowane pliki formatu binarnego XAML są osadzone w głównym zestawie.
XAMLDebuggingInformation Opcjonalny parametr logiczny .

W przypadku wartości true informacje diagnostyczne są generowane i uwzględniane w skompilowanym kodzie XAML w celu pomocy w debugowaniu.

Uwagi

Zadanie MarkupCompilePass1 zwykle kompiluje kod XAML w formacie binarnym i generuje pliki kodu. Jeśli plik XAML zawiera odwołania do typów zdefiniowanych w tym samym projekcie, jego kompilacja do formatu binarnego jest odroczona przez markupCompilePass1 do drugiego przebiegu kompilacji znaczników (MarkupCompilePass2). Takie pliki muszą odroczyć kompilację, ponieważ muszą poczekać na skompilowanie odwołanych lokalnie typów. Jeśli jednak plik XAML ma x:Class atrybut, MarkupCompilePass1 generuje plik kodu specyficzny dla języka.

Plik XAML jest lokalizowalny, jeśli zawiera elementy używające atrybutu 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>

Plik XAML odwołuje się do typu zdefiniowanego lokalnie podczas deklarowania przestrzeni nazw XML, która używa clr-namespace wartości do odwoływania się do przestrzeni nazw w bieżącym projekcie:

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

Jeśli jakikolwiek plik XAML jest lokalizowalny lub odwołuje się do typu zdefiniowanego lokalnie, wymagany jest drugi kod kompilacji znaczników, który wymaga uruchomienia elementu GenerateTemporaryTargetAssembly , a następnie markupCompilePass2.

Przykład

W poniższym przykładzie pokazano, jak przekonwertować trzy pliki XAML strony na pliki formatu binarnego. Strona Page1 zawiera odwołanie do typu , Class1który znajduje się w głównej przestrzeni nazw projektu i dlatego nie jest konwertowany na pliki formatu binarnego w tym przekazaniu kompilacji znaczników. Zamiast tego jest wykonywany element GenerateTemporaryTargetAssembly i następuje po nim markupCompilePass2.

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

Zobacz też