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.
Artikel ini memberikan gambaran umum tentang opsi dan panduan kustomisasi build tentang kapan harus menggunakan setiap pendekatan. Opsi disajikan dalam urutan kompleksitas, dari argumen baris perintah hingga kustomisasi di seluruh sistem.
Prasyarat
- Keakraban dengan struktur file proyek MSBuild (
.csproj,.vbproj, atau sejenisnya) - Pemahaman dasar tentang properti dan target MSBuild
Gambaran Umum
Proyek MSBuild yang menggunakan proses build standar (mengimpor Microsoft.Common.props dan Microsoft.Common.targets) memiliki beberapa kait ekstensibilitas yang dapat Anda gunakan untuk menyesuaikan proses build Anda.
Banyak operasi build yang dapat disesuaikan dikontrol oleh properti. Penting untuk mengetahui bagaimana dan di mana mengatur nilai properti agar memiliki efek yang diinginkan. Anda dapat mengatur properti pada baris perintah (dan dalam file respons), dalam file khusus seperti Directory.Build.props, dalam file yang diimpor, atau dalam file proyek. Penting untuk mengetahui di mana properti digunakan, diatur, atau diubah dan urutan file yang diimpor, termasuk impor implisit dari SDK seperti .NET SDK.
Untuk daftar properti, lihat Properti umum MSBuild.
Menjelajahi opsi kustomisasi
Opsi penyesuaian berikut tercantum dalam rangka meningkatkan kompleksitas dan cakupan pengaruh. Sebaiknya gunakan opsi kustomisasi paling tidak kompleks yang melayani tujuan Anda, mulai dari bagian atas daftar ini.
| Opsi kustomisasi | Deskripsi |
|---|---|
| Menambahkan argumen ke baris perintah MSBuild | Atur properti global yang memengaruhi pembangunan proyek utama dan semua proyek yang bergantung. |
| Mengkustomisasi build untuk satu proyek | Tambahkan properti ke .props atau .targets file untuk menyesuaikan pengaturan build. |
| Menangani file yang dihasilkan dalam proses build | Pastikan file yang Anda buat disertakan dengan benar dalam build. |
| Menyesuaikan build untuk satu atau beberapa proyek | Tambahkan properti ke Directory.Build.props atau tambahkan properti dan target ke Directory.Build.targets untuk menyesuaikan build untuk semua proyek di bawah folder. Teknik ini berguna untuk mengatur properti yang diatur atau digunakan oleh SDK, serta penyesuaian cakupan sehingga memengaruhi semua proyek dalam folder atau subfolder. |
| Mengkustomisasi build lokal Anda | Buat perubahan pada build hanya di komputer lokal Anda tanpa memengaruhi file sumber bersama. |
| Kustomisasi build solusi | Sesuaikan perilaku build di tingkat solusi, sebelum dan sesudah build proyek individual. |
| Mengkustomisasi semua build .NET | Sesuaikan build dengan cakupan di seluruh sistem, untuk build .NET. |
| Menyesuaikan build C++ | Sesuaikan build C++ yang disesuaikan untuk proyek, solusi, folder, atau semua build yang dikelola oleh penginstalan MSBuild di sistem. |
Menambahkan argumen ke pemanggilan MSBuild melalui baris perintah untuk proyek Anda
Anda dapat mengatur properti global pada baris perintah. Properti global mempengaruhi seluruh pembangunan proyek, termasuk dependensi. Ingat bahwa membangun proyek secara otomatis memicu kemungkinan build untuk semua dependensi proyek. Perilaku normal MSBuild adalah membangun proyek dependen apa pun yang kedaluarsa. Build proyek dependen tersebut dijalankan dengan pengaturan properti global yang sama melalui command line seperti proyek asli.
File Directory.Build.rsp di dalam atau di atas direktori sumber Anda diterapkan pada build proyek Anda yang dijalankan dari baris perintah. Untuk detailnya, lihat File respons MSBuild.
Pilih antara menambahkan properti ke .props file atau .targets
MSBuild bergantung pada urutan impor, dan definisi terakhir properti (atau UsingTask atau target) adalah definisi yang digunakan.
Saat menggunakan impor eksplisit, Anda dapat mengimpor dari .props file atau .targets kapan saja. Berikut adalah konvensi yang banyak digunakan:
.propsfile diimpor paling awal dalam urutan impor..targetsfile diimpor terlambat dalam urutan build.
Konvensi ini diberlakukan oleh <Project Sdk="SdkName"> impor (yaitu, impor Sdk.props menjadi yang pertama, sebelum semua konten file, maka Sdk.targets menjadi yang terakhir, setelah semua konten file).
Saat memutuskan tempat meletakkan properti, gunakan panduan umum berikut:
Untuk banyak properti, tidak masalah di mana properti didefinisikan, karena tidak ditimpa dan hanya dibaca pada waktu eksekusi.
Untuk perilaku yang mungkin disesuaikan dalam proyek individual, atur default dalam
.propsfile.Hindari mengatur properti dependen dalam
.propsfile dengan membaca nilai properti yang mungkin disesuaikan, karena penyesuaian tidak terjadi sampai MSBuild membaca proyek pengguna.Atur properti yang bergantung dalam file
.targets, karena file tersebut mengambil kustomisasi dari proyek individual.Jika Anda perlu mengubah properti, lakukan pada file
.targetssetelah semua penyesuaian proyek pengguna telah diterapkan. Berhati-hatilah saat menggunakan properti turunan; properti turunan mungkin juga perlu dioverride.Sertakan item dalam
.propsfile (dengan kondisi pada properti). Semua properti dipertimbangkan sebelum item apa pun, sehingga kustomisasi properti pada proyek pengguna dapat terdeteksi, dan dengan memasukkan item-item ke dalam file.props, proyek pengguna diberikan kesempatan untukRemoveatauUpdateitem apa pun yang dibawa oleh impor.Tentukan target dalam
.targetsfile. Namun, jika file.targetsdiimpor oleh SDK, ingatlah bahwa skenario ini membuat mengganti target tersebut lebih sulit karena proyek pengguna tidak memiliki tempat untuk melakukannya secara bawaan.Jika memungkinkan, lebih suka menyesuaikan properti pada waktu evaluasi daripada mengubah properti di dalam target. Pedoman ini memudahkan untuk memuat proyek dan memahami apa yang dilakukannya.