Bagikan melalui


MSBuild primer untuk pengembang WDK

Bagian ini memperkenalkan beberapa terminologi MSBuild dasar kepada pengembang WDK, yang terbiasa dengan Build.exe dan NMake.exe. Bagian ini menunjukkan pembangunan proyek MSBuild sederhana.

Konsep Nmake yang relevan dengan MSBuild

Jika Anda telah bekerja dengan Build.exe dan versi WDK sebelumnya (sebelum WDK 8), Anda mungkin terbiasa dengan terminologi dan konsep yang NMake.exe gunakan.

  • command - memanggil alat baris perintah.
  • target - menjelaskan urutan perintah bernama.
  • dependensi - menjelaskan target yang bergantung pada target lain.
  • Nmake dipanggil pada file make dengan satu atau beberapa target yang ditentukan. Kemudian menjalankan semua dependensi secara rekursif dan kemudian perintah target.
  • File Nmake dapat mencakup file buat lainnya untuk manajemen struktur build yang kuat.
  • Nmake juga mendukung pembuatan variabel bernama yang akan diganti dengan parameter perintah.
  • Nmake juga mendukung variabel otomatis yang ditetapkan oleh Make.exe itu sendiri, misalnya, nama direktori atau jalur saat ini.
  • Target tidak akan pernah berjalan dua kali selama satu build. Setelah dijalankan, target diasumsikan telah menyelesaikan pekerjaannya dan tidak akan berjalan lagi, bahkan jika target berikutnya dalam build bergantung padanya.

Konsep MSBuild

  • Ekstensi file MSBuild utama untuk proyek C++ adalah .vcxproj.

  • Perintah sekarang disebut tugas, dan mereka bukan hanya pemanggilan proses baris perintah. Sebaliknya, tugas adalah unit kode yang dapat dieksekusi yang dapat digunakan MSBuild untuk melakukan operasi build atomik. Untuk daftar lengkap tugas, lihat Tugas MSBuild Khusus untuk Visual C++.

  • MSBuild mengimpor tugas dari rakitan Common Language Runtime (CLR) mereka dengan elemen UsingTask seperti yang ditunjukkan contoh berikut.

    <UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />
    
  • Menargetkan tugas grup bersama-sama dalam urutan tertentu dan memungkinkan proses build dibagi menjadi unit yang lebih kecil.

  • PropertyGroup memungkinkan properti didefinisikan menggunakan format yang ramah manusia. Contoh berikut menunjukkan format PropertyGroup .

    <PropertyGroup>
      <ProductVersion>9.0.30729</ProductVersion>
    </PropertyGroup>
    
  • Item adalah varian Properti yang berorientasi objek. Meskipun format properti adalah nama/nilai, format item adalah nama/objek di mana objek memiliki beberapa atribut. Item adalah array objek.

  • Properti dirujuk dengan format $(project) sementara Item dirujuk dengan format @(name).

  • ItemGroup adalah kumpulan Item.

  • ItemGroups biasanya mencantumkan semua file yang akan dikompilasi. Kumpulan file kemudian diteruskan ke tugas menggunakan notasi @(nama item ). Lihat Item MSBuild untuk informasi selengkapnya tentang menggunakan Item.

  • MSBuild memiliki sejumlah properti bawaan yang juga dapat Anda referensikan dalam file proyek.

  • Untuk informasi selengkapnya tentang MSBuild dan tugas build, lihat Konsep MSBuild dan Referensi MSBuild.