Cara: Menggunakan Peristiwa Build di Proyek MSBuild
Peristiwa build adalah perintah yang dilakukan MSBuild pada tahap tertentu dalam proses build. Peristiwa pra-build terjadi sebelum build dimulai; peristiwa pra-tautan terjadi sebelum langkah tautan dimulai; dan peristiwa pasca-build terjadi setelah build berhasil berakhir. Peristiwa build hanya terjadi jika langkah build terkait terjadi. Misalnya, peristiwa pra-tautan tidak terjadi jika langkah tautan tidak berjalan.
Masing-masing dari tiga peristiwa build diwakili dalam grup definisi item oleh elemen perintah (<Command>
) yang dijalankan dan elemen pesan (<Message>
) yang ditampilkan saat MSBuild melakukan peristiwa build. Setiap elemen bersifat opsional, dan jika Anda menentukan elemen yang sama beberapa kali, kemunculan terakhir lebih diutamakan.
Elemen use-in-build opsional (<
build-eventUseInBuild>
) dapat ditentukan dalam grup properti untuk menunjukkan apakah peristiwa build dijalankan. Nilai konten elemen use-in-build adalah true
atau false
. Secara default, peristiwa build dijalankan kecuali elemen use-in-build yang sesuai diatur ke false
.
Tabel berikut mencantumkan setiap elemen XML peristiwa build:
Elemen XML | Deskripsi |
---|---|
PreBuildEvent |
Kejadian ini dijalankan sebelum build dimulai. |
PreLinkEvent |
Kejadian ini dijalankan sebelum langkah tautan dimulai. |
PostBuildEvent |
Kejadian ini dijalankan setelah build selesai. |
Tabel berikut mencantumkan setiap elemen use-in-build :
Elemen XML | Deskripsi |
---|---|
PreBuildEventUseInBuild |
Menentukan apakah akan menjalankan peristiwa pra-build . |
PreLinkEventUseInBuild |
Menentukan apakah akan menjalankan peristiwa pra-tautan . |
PostBuildEventUseInBuild |
Menentukan apakah akan menjalankan peristiwa pasca-build . |
Contoh
Contoh berikut dapat ditambahkan di dalam elemen Project dari file myproject.vcxproj yang dibuat di Walkthrough: Menggunakan MSBuild untuk Membuat Proyek C++. Peristiwa pra-build membuat salinan main.cpp; peristiwa pra-tautan membuat salinan main.obj; dan peristiwa pasca-build membuat salinan myproject.exe. Jika proyek dibangun menggunakan konfigurasi rilis, peristiwa build akan dijalankan. Jika proyek dibangun menggunakan konfigurasi debug, peristiwa build tidak dijalankan.
<ItemDefinitionGroup>
<PreBuildEvent>
<Command>copy $(ProjectDir)main.cpp $(ProjectDir)copyOfMain.cpp</Command>
<Message>Making a copy of main.cpp </Message>
</PreBuildEvent>
<PreLinkEvent>
<Command>copy $(ProjectDir)$(Configuration)\main.obj $(ProjectDir)$(Configuration)\copyOfMain.obj</Command>
<Message>Making a copy of main.obj</Message>
</PreLinkEvent>
<PostBuildEvent>
<Command>copy $(ProjectDir)$(Configuration)\$(TargetFileName) $(ProjectDir)$(Configuration)\copyOfMyproject.exe</Command>
<Message>Making a copy of myproject.exe</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEventUseInBuild>true</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild>true</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEventUseInBuild>false</PreBuildEventUseInBuild>
<PreLinkEventUseInBuild>false</PreLinkEventUseInBuild>
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
</PropertyGroup>
Baca juga
MSBuild pada baris perintah - C++
Panduan: Menggunakan MSBuild untuk Membuat Proyek C++
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk