Bagikan melalui


Tugas MarkupCompilePass1

Tugas MarkupCompilePass1 mengonversi file proyek XAML yang tidak dapat dilokalkan ke format biner yang dikompilasi.

Parameter tugas

Parameter Deskripsi
AllGeneratedFiles Parameter output ITaskItem[] opsional.

Berisi daftar lengkap file yang dibuat oleh tugas MarkupCompilePass1.
AlwaysCompileMarkupFilesInSeparateDomain Parameter Boolean opsional.

Menentukan apakah akan menjalankan tugas dalam AppDomain terpisah. Jika parameter ini menampilkan false, tugas berjalan di AppDomain yang sama dengan MSBuild dan berjalan lebih cepat. Jika parameter menampilkan true, tugas berjalan dalam AppDomain kedua yang diisolasi dari MSBuild dan berjalan lebih lambat.
ApplicationMarkup Parameter ITaskItem[] opsional.

Menentukan nama file XAML definisi aplikasi.
AssembliesGeneratedDuringBuild Parameter String[] opsional.

Menentukan referensi ke rakitan yang berubah selama proses build. Misalnya, solusi Visual Studio mungkin berisi satu proyek yang mereferensikan output yang dikompilasi dari proyek lain. Dalam hal ini, output yang dikompilasi dari proyek kedua dapat ditambahkan ke parameter AssembliesGeneratedDuringBuild.

Catatan: Parameter AssembliesGeneratedDuringBuild harus berisi referensi ke kumpulan rakitan lengkap yang dihasilkan oleh solusi build.
AssemblyName Parameter string yang diperlukan.

Menentukan nama pendek rakitan yang dibuat untuk proyek. Misalnya, jika proyek menghasilkan Windows yang dapat dieksekusi yang namanya WinExeAssembly.exe, parameter AssemblyName memiliki nilai WinExeAssembly.
AssemblyPublicKeyToken Parameter String opsional.

Menentukan token kunci publik untuk rakitan.
AssemblyVersion Parameter String opsional.

Menentukan nomor versi rakitan yang akan diproduksi.
ContentFiles Parameter ITaskItem[] opsional.

Menentukan daftar file konten longgar.
DefineConstants Parameter String opsional.

Menentukan bahwa nilai DefineConstants saat ini disimpan. yang mempengaruhi pembuatan rakitan target; jika parameter ini diubah, API publik dalam rakitan target dapat diubah dan kompilasi file XAML yang mereferensikan jenis lokal dapat terpengaruh.
ExtraBuildControlFiles Parameter ITaskItem[] opsional.

Menentukan daftar file yang mengontrol apakah pembuatan ulang dipicu saat tugas MarkupCompilePass1 dijalankan ulang; pembuatan ulang dipicu jika salah satu file ini berubah.
GeneratedBamlFiles Parameter output ITaskItem[] opsional.

Berisi daftar file yang dibuat dalam format biner XAML.
GeneratedCodeFiles Parameter output ITaskItem[] opsional.

Berisi daftar file kode terkelola yang dibuat.
GeneratedLocalizationFiles Parameter output ITaskItem[] opsional.

Berisi daftar file pelokalan yang dibuat untuk setiap file XAML yang dapat dilokalkan.
HostInBrowser Parameter String opsional.

Menentukan apakah rakitan yang dibuat adalah Aplikasi Browser XAML (XBAP). Opsi yang valid adalah true dan false. Jika true, kode dibuat untuk mendukung hosting browser.
KnownReferencePaths Parameter String[] opsional.

Menentukan referensi ke rakitan yang tidak berubah selama proses build. Termasuk rakitan yang terletak di cache rakitan global (GAC), dalam direktori penginstalan .NET, dan sebagainya.
Language Parameter String yang diperlukan.

Menentukan bahasa terkelola yang didukung pengompilasi. Opsi yang valid adalah C#, VB, Jscript, dan C++.
LanguageSourceExtension Parameter String opsional.

Menentukan ekstensi yang ditambahkan ke ekstensi file kode terkelola yang dibuat:

<Filename>.g<LanguageSourceExtension>

Jika parameter LanguageSourceExtension tidak diatur dengan nilai tertentu, ekstensi nama file sumber default untuk bahasa digunakan: .vb untuk Visual Basic, .csharp untuk C#.
LocalizationDirectivesToLocFile Parameter String opsional.

Menentukan cara membuat informasi pelokalan untuk setiap file XAML sumber. Opsi yang valid adalah None, CommentsOnly, dan All.
OutputPath Parameter String yang diperlukan.

Menentukan direktori tempat file kode terkelola yang dibuat dan file format biner XAML dibuat.
OutputType Parameter String yang diperlukan.

Menentukan jenis rakitan yang dibuat oleh proyek. Pilihan yang valid adalah winexe, exe, library, dan netmodule.
PageMarkup Parameter ITaskItem[] opsional.

Menentukan daftar file XAML yang akan diproses.
References Parameter ITaskItem[] opsional.

Menentukan daftar referensi dari file ke rakitan yang berisi jenis yang digunakan dalam file XAML.
RequirePass2ForMainAssembly Parameter output Boolean opsional.

Menunjukkan apakah proyek berisi file XAML yang tidak dapat dilokalkan yang mereferensikan jenis lokal yang disematkan ke dalam rakitan utama.
RequirePass2ForSatelliteAssembly Parameter output Boolean opsional.

Menunjukkan apakah proyek berisi file XAML yang dapat dilokalkan yang mereferensikan jenis lokal yang disematkan di rakitan utama.
RootNamespace Parameter String opsional.

Menentukan namespace layanan akar untuk kelas yang ada di dalam proyek. RootNamespace juga digunakan sebagai namespace layanan default file kode terkelola yang dibuat jika file XAML yang sesuai tidak menyertakan atribut x:Class.
SourceCodeFiles Parameter ITaskItem[] opsional.

Menentukan daftar file kode untuk proyek saat ini. Daftar tidak menyertakan file kode terkelola khusus bahasa yang dibuat.
UICulture Parameter String opsional.

Menentukan rakitan satelit untuk kultur antarmuka pengguna tempat file format biner XAML yang dibuat disematkan. Jika UICulture tidak diatur, file format biner XAML yang dibuat akan disematkan di rakitan utama.
XAMLDebuggingInformation Parameter Boolean opsional.

Jika true, informasi diagnostik dibuat dan disertakan dalam XAML yang dikompilasi untuk membantu penelusuran kesalahan.

Keterangan

Tugas MarkupCompilePass1 biasanya mengompilasi XAML ke dalam format biner dan membuat file kode. Jika file XAML berisi referensi ke jenis yang ditentukan dalam proyek yang sama, kompilasinya ke format biner ditunda oleh MarkupCompilePass1 ke pass kompilasi markup kedua (MarkupCompilePass2). File tersebut harus menunda kompilasinya karena harus menunggu sampai jenis yang ditentukan secara lokal dan direferensikan dikompilasi. Namun, jika file XAML memiliki atribut x:Class, MarkupCompilePass1 akan membuat file kode khusus bahasa untuk file tersebut.

File XAML dapat dilokalkan jika berisi elemen yang menggunakan atribut 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>

File XAML mereferensikan jenis yang ditentukan secara lokal saat mendeklarasikan namespace XML yang menggunakan nilai clr-namespace untuk merujuk ke namespace layanan dalam proyek saat ini:

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

Jika ada file XAML yang dapat dilokalkan, atau mereferensikan jenis yang ditentukan secara lokal, diperlukan pass kompilasi markup kedua, yang mengharuskan menjalankan GenerateTemporaryTargetAssembly lalu MarkupCompilePass2.

Contoh

Contoh berikut menunjukkan cara mengonversi tiga file XAML Halaman menjadi file format biner. Page1 berisi referensi ke jenis, Class1, yang berada di namespace layanan akar proyek dan oleh karena itu, tidak dikonversi ke file format biner dalam kode kompilasi markup ini. Sebagai gantinya, GenerateTemporaryTargetAssembly dijalankan dan diikuti oleh 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>

Baca juga