Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
MSBuild adalah platform build untuk Microsoft dan Visual Studio yang digunakan untuk membangun sebagian besar proyek Visual Studio, termasuk proyek .NET dan C++. Tutorial ini memperkenalkan Anda ke blok penyusun MSBuild dan menunjukkan kepada Anda cara menulis, memanipulasi, dan men-debug proyek MSBuild. Anda mempelajari tentang:
Membuat dan memanipulasi file proyek.
Cara menggunakan properti build.
Cara menggunakan perlengkapan bangunan.
Anda dapat menjalankan MSBuild dari Visual Studio, atau dari Jendela Perintah dengan menjalankan MSBuild.exe. Ada banyak alasan mengapa Anda mungkin ingin menjalankan MSBuild dari jendela perintah, seperti jika Anda ingin membangun pada komputer yang tidak menginstal Visual Studio, atau Anda ingin menggunakan argumen baris perintah tertentu yang tidak dapat Anda atur di Visual Studio IDE. Misalnya, dengan menjalankan dari baris perintah, Anda dapat mengatur properti MSBuild tertentu, menghasilkan log biner untuk men-debug masalah build, atau menjalankan subset build, seperti secara eksplisit menjalankan target build tertentu daripada build lengkap. Lihat Referensi baris perintah MSBuild. Anda juga dapat menggunakan MSBuild.exe untuk membangun komputer yang tidak menginstal Visual Studio lengkap, seperti di server build atau dengan masuk ke kontainer dalam alur.
Dalam tutorial ini, Anda membuat file proyek MSBuild menggunakan Visual Studio. Anda mengedit file proyek di Visual Studio, dan menggunakan Command Window untuk membangun proyek dan memeriksa hasilnya.
Menginstal MSBuild
Jika Anda memiliki Visual Studio, maka Anda sudah menginstal MSBuild. Dengan Visual Studio 2019 dan yang lebih baru, Visual Studio diinstal di dalam folder penginstalan Visual Studio. Untuk penginstalan default umum pada Windows 10, MSBuild.exe berada di bawah folder penginstalan di MSBuild\Current\Bin.
Di alat penginstal, pastikan alat MSBuild untuk beban kerja yang Anda gunakan dipilih, dan pilih Instal.
Untuk menginstal MSBuild pada sistem yang tidak memiliki Visual Studio, buka Build Tools for Visual Studio 2019 di halaman unduhan. Cara lain untuk mendapatkan MSBuild adalah dengan menginstal .NET SDK.
Jika Anda memiliki Visual Studio, maka Anda sudah menginstal MSBuild. Dengan Visual Studio 2022, itu diinstal dalam folder penginstalan Visual Studio. Untuk penginstalan default umum pada Windows 10, MSBuild.exe berada di bawah folder penginstalan di MSBuild\Current\Bin.
Di alat penginstal Visual Studio, navigasikan ke Komponen Individu, dan temukan kotak centang untuk MSBuild. Ini secara otomatis dipilih saat Anda memilih salah satu beban kerja lain untuk diinstal.
Untuk menginstal MSBuild pada sistem yang tidak memiliki Visual Studio, buka Build Tools for Visual Studio 2022 di halaman unduhan . Cara lain untuk mendapatkan MSBuild adalah dengan menginstal .NET SDK.
Jika Anda memiliki Visual Studio, maka Anda sudah menginstal MSBuild. Ini diinstal di bawah folder penginstalan Visual Studio. Untuk penginstalan default umum di Windows, MSBuild.exe berada di bawah folder penginstalan di MSBuild\Current\Bin.
Untuk menginstal MSBuild pada sistem yang tidak memiliki Visual Studio, buka Alat untuk Alat Build Visual Studio>untuk Visual Studio di halaman unduhan. Cara lain untuk mendapatkan MSBuild adalah dengan menginstal .NET SDK.
Membuat proyek MSBuild
Sistem proyek Visual Studio didasarkan pada MSBuild. Sangat mudah untuk membuat file proyek baru menggunakan Visual Studio. Di bagian ini, Anda membuat file proyek C#. Anda dapat memilih untuk membuat file proyek Visual Basic sebagai gantinya. Dalam konteks tutorial ini, perbedaan antara dua file proyek adalah kecil. Jenis proyek C++ menggunakan infrastruktur build yang berbeda dari yang dijelaskan di sini. Untuk proyek C++, lihat Menggunakan MSBuild untuk membuat proyek C++.
Untuk membuat file proyek
Buka Visual Studio dan buat proyek:
Dalam kotak pencarian, ketik
winforms, lalu pilih Buat Aplikasi Formulir Windows (.NET Framework) baru. Dalam kotak dialog yang muncul, pilih Buat.Dalam kotak Nama proyek, ketik
BuildApp. Masukkan Lokasi untuk solusi, misalnya, D:\.Klik OK atau Buat untuk membuat file proyek.
Memeriksa file proyek
Di bagian sebelumnya, Anda menggunakan Visual Studio untuk membuat file proyek C#. File proyek diwakili dalam Penjelajah Solusi oleh simpul proyek bernama BuildApp. Anda dapat menggunakan editor kode Visual Studio untuk memeriksa file proyek.
Memeriksa file proyek
Di Penjelajah Solusi, klik simpul proyek BuildApp.
Di peramban Properti , perhatikan bahwa properti File Proyek adalah BuildApp.csproj. Semua file proyek diberi nama dengan akhiran proj. Jika Anda telah membuat proyek Visual Basic, nama file proyek akan BuildApp.vbproj.
Klik kanan simpul proyek lagi, lalu klik Edit BuildApp.csproj.
File proyek muncul di editor kode.
Nota
Untuk beberapa jenis proyek, seperti C++, Anda perlu membongkar proyek (klik kanan pada file proyek dan memilih Membongkar proyek) sebelum Anda dapat membuka dan mengedit file proyek.
Menambahkan target dan tugas
Di bagian ini, Anda menambahkan target ke file proyek, yang menulis pesan ke output build. Bagian berikutnya memberikan gambaran singkat tentang target dan tugas dalam file proyek MSBuild.
Target dan tugas
File proyek adalah file XML dengan Proyek simpul akar.
Sebagian besar proyek .NET memiliki atribut Sdk. Proyek-proyek ini disebut proyek bergaya SDK. Mereferensikan SDK berarti MSBuild mengimpor sekumpulan file yang menyediakan infrastruktur build untuk SDK tersebut. Jika Anda tidak mereferensikan SDK apa pun, Anda masih dapat menggunakan MSBuild, Anda tidak akan secara otomatis memiliki semua properti dan target khusus SDK yang tersedia untuk Anda.
<Project Sdk="Microsoft.NET.Sdk">
Ada banyak variasi .NET SDK untuk tujuan khusus; mereka dijelaskan di .NET Project SDK.
Pekerjaan membangun aplikasi dilakukan dengan elemen Target, dan Tugas.
Tugas adalah unit kerja terkecil, dengan kata lain, "atom" dari pembangunan. Tugas adalah komponen yang dapat dieksekusi independen, yang dapat memiliki input dan output. Tidak ada tugas yang saat ini dirujuk atau ditentukan dalam file proyek. Anda menambahkan tugas ke file proyek di bagian berikut. Untuk informasi selengkapnya, lihat tugas .
Target merangkum instruksi build, biasanya untuk beberapa artefak output, seperti file atau sekumpulan file, mengingat input tertentu. Biasanya terdiri dari urutan tugas, tetapi secara kritis, ini mewakili sesuatu yang akan dibangun atau dilakukan, sehingga harus didefinisikan dengan cara yang berorientasi pada tujuan. Untuk informasi selengkapnya, lihat Sasaran.
Target default tidak ditentukan dalam file proyek. Namun, ini ditentukan dalam proyek impor. Elemen Impor menentukan proyek yang diimpor. Misalnya, dalam proyek C#, target default diimpor dari file Microsoft.CSharp.targets.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
File yang diimpor secara efektif dimasukkan ke dalam file proyek di mana pun file tersebut direferensikan.
Dalam proyek bergaya SDK, Anda tidak melihat elemen impor ini, karena atribut SDK menyebabkan file ini diimpor secara implisit.
MSBuild melacak target build, dan menjamin bahwa setiap target dibangun tidak lebih dari sekali.
Tambahkan target ke file proyek. Tambahkan tugas ke target yang mencetak pesan.
Untuk menambahkan target dan tugas
Tambahkan baris ini ke file proyek, tepat setelah pernyataan Impor atau elemen Proyek pembuka.
<Target Name="HelloWorld"> </Target>Kode ini membuat target bernama HelloWorld. Perhatikan bahwa Anda memiliki dukungan IntelliSense saat mengedit file proyek.
Tambahkan baris ke target HelloWorld, sehingga bagian yang dihasilkan terlihat seperti ini:
<Target Name="HelloWorld"> <Message Text="Hello"></Message> <Message Text="World"></Message> </Target>Simpan file proyek.
Tugas Message adalah salah satu dari banyak tugas yang dikirim dengan MSBuild. Untuk daftar lengkap tugas dan informasi penggunaan yang tersedia, lihat referensi tugas .
Tugas Message mengambil nilai string atribut Text sebagai input dan menampilkannya pada perangkat output (atau menulisnya ke satu atau beberapa log, jika berlaku). Target HelloWorld menjalankan tugas Pesan dua kali: pertama untuk menampilkan "Halo", lalu menampilkan "Dunia."
Menetapkan target
Jika Anda mencoba membangun proyek ini dari Visual Studio, proyek ini tidak membangun target yang Anda tentukan. Itu karena Visual Studio memilih target default, yang masih merupakan target dalam file .targets yang diimpor. Untuk membangun target di Visual Studio, Anda dapat menautkannya ke salah satu target default dengan menggunakan atribut tertentu pada Target elemen, seperti AfterTargets atau BeforeTargets. Berikut cara mendapatkan target HelloWorld Anda untuk dijalankan setelah target default Build :
<Target Name="HelloWorld" AfterTargets="Build">
<Message Text="Hello"></Message>
<Message Text="World"></Message>
</Target>
Jalankan build lagi di Visual Studio, dan lihat di tab Build di jendela Output untuk melihat pesan Halo Dunia.
Anda juga dapat menentukan target yang diinginkan dengan menjalankan MSBuild dari baris perintah. Di bagian ini, Anda akan menjalankan MSBuild dari Prompt Perintah Pengembang untuk Visual Studio guna membangun target HelloWorld. Gunakan sakelar baris perintah -target atau -t untuk memilih target.
Nota
Kami akan merujuk ke Perintah Pengembang sebagai Jendela Perintah di bagian berikut.
Untuk membangun target:
Jika Anda menambahkannya, hapus
AfterTargetsatribut, dan simpan file proyek.Buka Jendela Perintah.
Dalam kotak pencarian di taskbar, mulai ketik nama alat, seperti
devataudeveloper command prompt. Daftar aplikasi terinstal yang cocok dengan pola pencarian Anda muncul.Jika Anda perlu menemukannya secara manual, file LaunchDevCmd.bat di folder penginstalan {Visual Studio}\Common7\Tools.
Dari jendela perintah, navigasikan ke folder yang berisi file proyek, dalam hal ini, D:\BuildApp\BuildApp.
Jalankan msbuild dengan sakelar perintah
-t:HelloWorld. Perintah ini memilih dan membangun target HelloWorld:msbuild buildapp.csproj -t:HelloWorldPeriksa output di jendela Perintah . Anda akan melihat dua baris "Halo" dan "Dunia":
Hello World
Dengan bergantian antara editor kode dan jendela perintah, Anda dapat mengubah file proyek dan dengan cepat melihat hasilnya.
Membuat properti
Properti build adalah pasangan nama dan nilai yang mengarahkan proses build. Beberapa properti build sudah ditentukan di bagian atas file proyek:
<PropertyGroup>
...
<ProductVersion>10.0.11107</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{30E3C9D5-FD86-4691-A331-80EA5BA7E571}</ProjectGuid>
<OutputType>WinExe</OutputType>
...
</PropertyGroup>
Semua properti adalah elemen turunan dari elemen PropertyGroup. Nama properti adalah nama elemen turunan, dan nilai properti adalah elemen teks dari elemen turunan. Misalnya
<TargetFrameworkVersion>net8.0</TargetFrameworkVersion>
mendefinisikan properti bernama TargetFrameworkVersion, memberinya nilai string "net8.0"
Properti kompilasi dapat didefinisikan ulang kapan saja. Kalau
<TargetFrameworkVersion>net8.0</TargetFrameworkVersion>
muncul nanti dalam file proyek, atau dalam file yang diimpor nanti dalam file proyek, lalu TargetFrameworkVersion mengambil nilai baru "net8.0"
Memeriksa nilai properti
Untuk mendapatkan nilai properti, gunakan sintaks berikut, di mana PropertyName adalah nama properti:
$(PropertyName)
Gunakan sintaks ini untuk memeriksa beberapa properti dalam file proyek.
Untuk memeriksa nilai properti
Dari editor kode, ganti target HelloWorld dengan kode ini:
<Target Name="HelloWorld"> <Message Text="Configuration is $(Configuration)" /> <Message Text="MSBuildToolsPath is $(MSBuildToolsPath)" /> </Target>Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat kedua baris ini (output Anda mungkin berbeda):
Configuration is Debug MSBuildToolsPath is C:\Program Files\Microsoft Visual Studio\18\MSBuild\Current\Bin\amd64Configuration is Debug MSBuildToolsPath is C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64Configuration is Debug MSBuildToolsPath is C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\16.0\Bin
Properti bersyarat
Banyak properti seperti Configuration didefinisikan secara kondisional, yaitu atribut Condition muncul di elemen properti. Properti kondisional ditentukan atau didefinisikan ulang hanya jika kondisinya bernilai "true." Properti yang tidak ditentukan diberikan nilai default sebuah string kosong. Misalnya
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
berarti "Jika properti Konfigurasi belum ditentukan, tentukan dan berikan nilai 'Debug'."
Hampir semua elemen MSBuild dapat memiliki atribut Condition. Untuk diskusi selengkapnya tentang menggunakan atribut Condition, lihat Kondisi.
Properti terbatas
MSBuild menggunakan beberapa nama properti secara khusus untuk menyimpan informasi tentang file proyek dan biner MSBuild. MSBuildToolsPath adalah contoh properti yang tereservasi. Properti yang sudah dipatenkan dirujuk dengan notasi $ seperti properti lainnya. Untuk informasi selengkapnya, lihat Cara: Mereferensikan nama atau lokasi file proyek dan MSBuild properti khusus dan terkenal.
Variabel lingkungan
Anda dapat mereferensikan variabel lingkungan dalam file proyek dengan cara yang sama seperti properti build. Misalnya, untuk menggunakan variabel lingkungan PATH dalam file proyek Anda, gunakan $(Path). Jika proyek berisi definisi properti yang memiliki nama yang sama dengan variabel lingkungan, properti dalam proyek akan mengambil alih nilai variabel lingkungan. Untuk informasi selengkapnya, lihat Cara: Menggunakan variabel lingkungan dalam build.
Mengatur properti dari baris perintah
Properti dapat ditentukan pada baris perintah menggunakan sakelar baris perintah -property atau -p. Nilai properti yang diterima dari baris perintah menggantikan nilai properti yang ditetapkan dalam file proyek dan variabel lingkungan.
Untuk mengatur nilai properti dari baris perintah:
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorld -p:Configuration=ReleasePeriksa output. Anda akan melihat baris ini:
Configuration is Release.
MSBuild membuat properti Konfigurasi dan memberinya nilai "Rilis."
Karakter khusus
Karakter tertentu memiliki arti khusus dalam file proyek MSBuild. Contoh karakter ini termasuk titik koma (;) dan tanda bintang (*). Untuk menggunakan karakter khusus ini sebagai harfiah dalam file proyek, karakter tersebut harus ditentukan dengan menggunakan sintaks %<xx>, di mana <xx> mewakili nilai heksadesimal ASCII dari karakter.
Ubah tugas Pesan untuk memperlihatkan nilai properti Konfigurasi dengan karakter khusus agar lebih mudah dibaca.
Untuk menggunakan karakter khusus dalam tugas Pesan:
Dari editor kode, ganti kedua tugas Pesan dengan baris ini:
<Message Text="%24(Configuration) is %22$(Configuration)%22" />Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat baris ini:
$(Configuration) is "Debug"
Untuk informasi lebih lanjut, lihat karakter khusus MSBuild.
Buat item
Item adalah bagian dari informasi, biasanya nama file, yang digunakan sebagai input ke sistem build. Misalnya, kumpulan item yang mewakili file sumber mungkin diteruskan ke tugas bernama Kompilasi untuk mengkompilasinya ke dalam rakitan.
Semua item adalah elemen turunan dari elemen ItemGroup. Nama item adalah nama elemen turunan, dan nilai item adalah nilai atribut Include dari elemen turunan. Nilai item dengan nama yang sama dikumpulkan ke dalam tipe item dari nama tersebut. Misalnya
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
menentukan grup item yang berisi dua item. Jenis item Compile memiliki dua nilai: Program.cs dan Properties\AssemblyInfo.cs.
Kode berikut membuat jenis item yang sama dengan mendeklarasikan kedua file dalam satu atribut Include, dipisahkan oleh titik koma.
<ItemGroup>
<Compile Include="Program.cs;Properties\AssemblyInfo.cs" />
</ItemGroup>
Untuk informasi selengkapnya, lihat item .
Nota
Jalur file relatif terhadap folder yang berisi file proyek MSBuild, bahkan jika file proyek adalah file proyek yang diimpor. Ada beberapa pengecualian untuk ini, seperti saat menggunakan elemen Import dan UsingTask.
Memeriksa nilai jenis item
Untuk mendapatkan nilai tipe item, gunakan sintaks berikut, di mana ItemType adalah nama jenis item:
@(ItemType)
Gunakan sintaks ini untuk memeriksa jenis item Compile dalam file proyek.
Untuk memeriksa nilai jenis item:
Dari editor kode, ganti tugas target HelloWorld dengan kode ini:
<Target Name="HelloWorld"> <Message Text="Compile item type contains @(Compile)" /> </Target>Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat garis panjang ini:
Compile item type contains Form1.cs;Form1.Designer.cs;Program.cs;Properties\AssemblyInfo.cs;Properties\Resources.Designer.cs;Properties\Settings.Designer.cs
Nilai jenis item dipisahkan dengan titik koma secara default.
Untuk mengubah pemisah tipe item, gunakan sintaks berikut, di mana ItemType adalah jenis item dan Pemisah adalah string dari satu atau beberapa karakter pemisah:
@(ItemType, Separator)
Ubah tugas Message untuk menggunakan pengembalian gerbong dan umpan baris (%0A%0D) untuk menampilkan Item kompilasi satu per baris.
Untuk menampilkan nilai tipe item satu per baris
Dari editor kode, ganti tugas Pesan dengan baris ini:
<Message Text="Compile item type contains @(Compile, '%0A%0D')" />Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat baris-baris ini:
Compile item type contains Form1.cs Form1.Designer.cs Program.cs Properties\AssemblyInfo.cs Properties\Resources.Designer.cs Properties\Settings.Designer.cs
Sertakan, Kecualikan, dan kartubebas
Anda dapat menggunakan kartubebas "*", "**", dan "?" dengan atribut Include untuk menambahkan item ke jenis item. Misalnya
<Photos Include="images\*.jpeg" />
menambahkan semua file dengan ekstensi file .jpeg di folder gambar ke jenis item Foto, sementara
<Photos Include="images\**\*.jpeg" />
menambahkan semua file dengan ekstensi file .jpeg di folder gambar, dan semua subfoldernya, ke jenis item Foto. Untuk contoh selengkapnya, lihat Cara: Memilih file untuk membangun.
Perhatikan bahwa ketika item dinyatakan, mereka ditambahkan ke jenis item. Misalnya
<Photos Include="images\*.jpeg" />
<Photos Include="images\*.gif" />
membuat jenis item bernama Foto yang berisi semua file di folder gambar dengan ekstensi file baik .jpeg atau .gif. Baris-baris tersebut setara dengan baris berikut:
<Photos Include="images\*.jpeg;images\*.gif" />
Anda dapat mengecualikan item dari jenis item dengan atribut Exclude. Misalnya
<Compile Include="*.cs" Exclude="*Designer*">
menambahkan semua file dengan ekstensi file .cs ke jenis item Compile, kecuali untuk file yang namanya berisi string Designer. Untuk contoh selengkapnya, lihat Cara: Mengecualikan file dari build.
Atribut Exclude hanya memengaruhi item yang ditambahkan oleh atribut Include dalam elemen item yang berisi keduanya. Misalnya
<Compile Include="*.cs" />
<Compile Include="*.res" Exclude="Form1.cs">
tidak akan mengecualikan file Form1.cs, yang ditambahkan dalam elemen item sebelumnya.
Untuk menyertakan dan mengecualikan item
Dari editor kode, ganti tugas Pesan dengan baris ini:
<Message Text="XFiles item type contains @(XFiles)" />Tambahkan grup item ini tepat setelah elemen Impor:
<ItemGroup> <XFiles Include="*.cs;properties/*.resx" Exclude="*Designer*" /> </ItemGroup>Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat baris ini:
XFiles item type contains Form1.cs;Program.cs;Properties/Resources.resx
Metadata pos
Item dapat berisi metadata selain informasi yang dikumpulkan dari atribut Include dan Exclude. Tugas yang memerlukan informasi lebih lanjut tentang item daripada hanya nilai item yang dapat menggunakan metadata ini.
Metadata item dideklarasikan dalam file proyek dengan membuat elemen dengan nama metadata sebagai elemen turunan item. Item dapat memiliki nilai metadata nol atau lebih. Misalnya, item CSFile berikut memiliki metadata Budaya dengan nilai "Fr":
<ItemGroup>
<CSFile Include="main.cs">
<Culture>Fr</Culture>
</CSFile>
</ItemGroup>
Untuk mendapatkan nilai metadata jenis item, gunakan sintaks berikut, di mana ItemType adalah nama jenis item dan MetaDataName adalah nama metadata:
%(ItemType.MetaDataName)
Untuk memeriksa metadata item:
Dari editor kode, ganti tugas Pesan dengan baris ini:
<Message Text="Compile.DependentUpon: %(Compile.DependentUpon)" />Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat baris-baris ini:
Compile.DependentUpon: Compile.DependentUpon: Form1.cs Compile.DependentUpon: Resources.resx Compile.DependentUpon: Settings.settings
Perhatikan bagaimana frasa "Compile.DependentUpon" muncul beberapa kali. Penggunaan metadata dengan sintaks ini dalam target menyebabkan "batching." Batching berarti bahwa tugas dalam target dijalankan sekali untuk setiap nilai metadata unik. Batching adalah skrip MSBuild yang setara dengan konstruksi pemrograman "foreach loop" umum. Untuk informasi selengkapnya, lihat Batching.
Metadata terkenal
Setiap kali item ditambahkan ke daftar item, item tersebut diberi beberapa metadata terkenal. Misalnya, %(Filename) mengembalikan nama file item apa pun. Untuk daftar lengkap metadata terkenal, lihat Metadata item terkenal.
Untuk memeriksa metadata terkenal:
Dari editor kode, ganti tugas Pesan dengan baris ini:
<Message Text="Compile Filename: %(Compile.Filename)" />Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat baris-baris ini:
Compile Filename: Form1 Compile Filename: Form1.Designer Compile Filename: Program Compile Filename: AssemblyInfo Compile Filename: Resources.Designer Compile Filename: Settings.Designer
Dengan membandingkan dua contoh sebelumnya, Anda dapat melihat bahwa meskipun tidak setiap item dalam jenis item Compile memiliki metadata DependentUpon, semua item memiliki metadata Nama File yang terkenal.
Transformasi metadata
Daftar item dapat diubah menjadi daftar item baru. Untuk mengubah daftar item, gunakan sintaks berikut, di mana <ItemType> adalah nama jenis item dan <MetadataName> adalah nama metadata:
@(ItemType -> '%(MetadataName)')
Misalnya, daftar item file sumber dapat diubah menjadi kumpulan file objek menggunakan ekspresi seperti @(SourceFiles -> '%(Filename).obj'). Untuk informasi selengkapnya, lihat Transformasi.
Untuk mengubah item menggunakan metadata:
Dari editor kode, ganti tugas Pesan dengan baris ini:
<Message Text="Backup files: @(Compile->'%(filename).bak')" />Simpan file proyek.
Dari Jendela Perintah, masukkan dan jalankan baris ini:
msbuild buildapp.csproj -t:HelloWorldPeriksa output. Anda akan melihat baris ini:
Backup files: Form1.bak;Form1.Designer.bak;Program.bak;AssemblyInfo.bak;Resources.Designer.bak;Settings.Designer.bak
Perhatikan bahwa metadata yang dinyatakan dalam sintaks ini tidak menyebabkan batching.
Langkah berikutnya
Untuk mempelajari cara untuk membuat sebuah file proyek sederhana langkah demi langkah di Windows, cobalah Membuat file proyek MSBuild dari awal.
Jika Anda terutama menggunakan .NET SDK, lanjutkan membaca di Rujukan MSBuild untuk Proyek .NET SDK.
Konten terkait
- gambaran umum MSBuild
- referensi MSBuild