Share via


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