Tugas MarkupCompilePass2
Tugas MarkupCompilePass2 melakukan kompilasi markup pass kedua pada file XAML yang mereferensikan jenis dalam proyek yang sama.
Parameter tugas
Parameter | Deskripsi |
---|---|
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. |
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 AssembliesGeneratedDuringBuild. Catatan: 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. |
GeneratedBaml |
Parameter output ITaskItem[] opsional. Berisi daftar file yang dibuat dalam format biner XAML. |
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++. |
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 format biner XAML yang dihasilkan dibuat. |
OutputType |
Parameter String yang diperlukan. Menentukan jenis rakitan yang dibuat oleh proyek. Pilihan yang valid adalah winexe, exe, library, dan netmodule. |
References |
Parameter ITaskItem[] opsional. Menentukan daftar referensi dari file ke rakitan yang berisi jenis yang digunakan dalam file XAML. Salah satu referensinya adalah ke rakitan yang dihasilkan oleh tugas GenerateTemporaryTargetAssembly, yang harus dijalankan sebelum tugas MarkupCompilePass2. |
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 . |
XAMLDebuggingInformation |
Parameter Boolean opsional. Jika true, informasi diagnostik dibuat dan disertakan dalam XAML yang dikompilasi untuk membantu penelusuran kesalahan. |
Keterangan
Sebelum menjalankan MarkupCompilePass2, Anda harus membuat rakitan sementara yang berisi jenis yang digunakan oleh file XAML yang lulus kompilasi markupnya ditangguhkan. Anda membuat rakitan sementara dengan menjalankan tugas GenerateTemporaryTargetAssembly .
Referensi ke rakitan sementara yang dihasilkan disediakan saat MarkupCompilePass2 dijalankan, memungkinkan file XAML yang kompilasinya ditangguhkan dalam kompilasi markup pertama yang diteruskan ke sekarang dikompilasi ke format biner.
Contoh
Contoh berikut menunjukkan cara menggunakan tugas MarkupCompilePass2 untuk melakukan kompilasi pass kedua.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass2"
AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
<Target Name="MarkupCompilePass2Task">
<MarkupCompilePass2
AssemblyName="WPFMSBuildSample"
Language="C#"
OutputType="WinExe"
OutputPath="obj\Debug\"
References=".\obj\debug\WPFMSBuildSample.exe;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>