MSBuild@1 - Tugas MSBuild v1

Gunakan tugas ini untuk membangun dengan MSBuild.

Sintaks

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.

Input

solution - Proyek
string. Wajib diisi. Nilai default: **/*.sln.

Jika Anda ingin membuat beberapa proyek, tentukan kriteria pencarian. Anda dapat menggunakan kartubebas folder tunggal (*) dan kartubebas rekursif (**). Misalnya, **.*proj mencari semua file proyek MSBuild (.*proj) di semua subdirektori.

Pastikan proyek yang Anda tentukan diunduh oleh alur build ini. Pada tab Repositori:

  • Jika Anda menggunakan TFVC, pastikan bahwa proyek tersebut adalah anak dari salah satu pemetaan pada tab Repositori.
  • Jika Anda menggunakan Git, pastikan bahwa proyek atau proyek berada di repositori Git Anda, di cabang yang Sedang Anda bangun.

Tip

Jika Anda membangun solusi, kami sarankan Anda menggunakan tugas build Visual Studio alih-alih tugas MSBuild.


msbuildLocationMethod - MSBuild
string. Nilai yang diizinkan: version, location (Tentukan Lokasi). Nilai default: version.


msbuildVersion - Versi MSBuild
string. Pilihan. Gunakan saat msbuildLocationMethod = version. Nilai yang diizinkan: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Nilai default: latest.

Jika versi pilihan tidak dapat ditemukan, versi terbaru yang ditemukan akan digunakan sebagai gantinya. Pada agen macOS, xbuild (Mono) digunakan jika versi lebih rendah dari 15.0.


msbuildVersion - Versi MSBuild
string. Pilihan. Gunakan saat msbuildLocationMethod = version. Nilai yang diizinkan: latest, 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Nilai default: latest.

Jika versi pilihan tidak dapat ditemukan, versi terbaru yang ditemukan akan digunakan sebagai gantinya. Pada agen macOS, xbuild (Mono) digunakan jika versi lebih rendah dari 15.0.


msbuildArchitecture - Arsitektur MSBuild
string. Pilihan. Gunakan saat msbuildLocationMethod = version. Nilai yang diizinkan: x86 (MSBuild x86), x64 (MSBuild x64). Nilai default: x86.

Memasok arsitektur MSBuild (x86, x64) untuk dijalankan.


msbuildLocation - Jalur ke MSBuild
string. Pilihan. Gunakan saat msbuildLocationMethod = location.

Menyediakan jalur ke MSBuild.


platform - Platform
string.

Tip

  • Jika Anda menargetkan file proyek MSBuild (.*proj) alih-alih solusi, tentukan AnyCPU (tanpa spasi kosong).
  • Deklarasikan variabel build seperti BuildPlatform pada tab Variabel (memilih Allow pada Waktu Antrean) dan mereferensikannya di sini sebagai $(BuildPlatform). Dengan cara ini Anda dapat memodifikasi platform saat mengantre build dan mengaktifkan pembuatan beberapa konfigurasi.

configuration - Konfigurasi
string.

Tip

Deklarasikan variabel build seperti BuildConfiguration pada tab Variabel (memilih Allow pada Waktu Antrean) dan mereferensikannya di sini sebagai $(BuildConfiguration). Dengan cara ini Anda dapat memodifikasi platform saat mengantre build dan mengaktifkan pembuatan beberapa konfigurasi.


msbuildArguments - Argumen MSBuild
string.

Menentukan argumen tambahan yang diteruskan ke MSBuild (di Windows) dan xbuild (di macOS).


clean - Bersih
boolean. Nilai default: false.

Atur ke False jika Anda ingin menjadikannya build inkremental. Pengaturan ini dapat mengurangi waktu build Anda, terutama jika basis kode Anda besar. Opsi ini tidak memiliki efek praktis kecuali Anda juga mengatur repositori Clean ke False. Atur ke True jika Anda ingin membangun kembali semua kode dalam proyek kode. Ini setara dengan argumen MSBuild /target:clean . Untuk informasi selengkapnya, lihat opsi repositori


maximumCpuCount - Bangun secara Paralel
boolean. Nilai default: false.

Jika konfigurasi target MSBuild Anda kompatibel dengan pembuatan secara paralel, Anda dapat memeriksa input ini untuk meneruskan /m sakelar ke MSBuild (khusus Windows). Jika konfigurasi target Anda tidak kompatibel dengan pembuatan secara paralel, memeriksa opsi ini dapat menyebabkan build Anda mengakibatkan file-in-use kesalahan, atau kegagalan build yang terputus-putus atau tidak konsisten.


restoreNugetPackages - Pulihkan Paket NuGet
boolean. Nilai default: false.

Opsi ini tidak digunakan lagi. Untuk memulihkan paket NuGet, tambahkan tugas NuGet sebelum build.


logProjectEvents - Catat Detail Proyek
boolean. Nilai default: false.

Secara opsional merekam detail garis waktu untuk setiap proyek (hanya Windows).


createLogFile - Buat File Log
boolean. Nilai default: false.

Secara opsional membuat file log (hanya Windows).


logFileVerbosity - Log File Verbosity
string. Pilihan. Gunakan saat createLogFile = true. Nilai yang diizinkan: quiet, minimal, normal, detailed, diagnostic. Nilai default: normal.

Menentukan verbositas file log.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Haruskah saya menggunakan tugas Visual Studio Build atau tugas MSBuild?

Jika Anda membangun solusi, dalam banyak kasus, Anda harus menggunakan tugas Visual Studio Build. Tugas ini secara otomatis:

  • /p:VisualStudioVersion Mengatur properti untuk Anda. Ini memaksa MSBuild untuk menggunakan serangkaian target tertentu yang meningkatkan kemungkinan build yang berhasil.
  • Menentukan argumen versi MSBuild.

Dalam beberapa kasus, Anda mungkin perlu menggunakan tugas.MSBuild Misalnya, Anda harus menggunakannya jika Anda membangun proyek kode selain dari solusi.

Di mana saya dapat mempelajari selengkapnya tentang MSBuild?

Referensi MSBuild

Referensi baris perintah MSBuild

Bagaimana cara membuat beberapa konfigurasi untuk beberapa platform?

  1. Pada tab Variabel, pastikan Anda memiliki variabel yang ditentukan untuk konfigurasi dan platform Anda. Untuk menentukan beberapa nilai, pisahkan dengan koma. Contohnya:

    • Untuk aplikasi .NET, Anda dapat menentukan BuildConfiguration dengan nilai debug dan rilis, dan Anda dapat menentukan BuildPlatform dengan nilai CPU apa pun.
    • Untuk aplikasi C++, Anda dapat menentukan BuildConfiguration dengan nilai debug dan rilis, dan Anda dapat menentukan BuildPlatform dengan nilai x86 dan x64 apa pun.
  2. Pada tab Opsi, pilih MultiConfiguration dan tentukan , dipisahkan Multipliersoleh koma. Misalnya: BuildConfiguration, BuildPlatform Pilih Parallel jika Anda ingin mendistribusikan pekerjaan (satu untuk setiap kombinasi nilai) ke beberapa agen secara paralel jika tersedia.

  3. Pada tab Build, pilih langkah ini dan tentukan Platform argumen dan Configuration . Contohnya:

    • Platform: $(BuildPlatform)
    • Konfigurasi: $(BuildConfiguration)

Dapatkah saya membuat file TFSBuild.proj?

Anda tidak dapat membuat TFSBuild.proj file. Jenis file ini dihasilkan oleh TFS 2005 dan TFS 2008. File-file ini berisi tugas, dan target hanya didukung menggunakan build XAML.

Pemecahan Masalah

Bagian ini menyediakan tips pemecahan masalah untuk masalah umum yang mungkin ditemui pengguna saat menggunakan MSBuild tugas.

Build gagal dengan kesalahan berikut: Terjadi kegagalan internal saat menjalankan MSBuild

Kemungkinan penyebab
  • Ubah versi MSBuild.
  • Masalah dengan ekstensi pihak ketiga.
  • Pembaruan baru untuk Visual Studio yang dapat menyebabkan rakitan yang hilang pada agen build.
  • Memindahkan atau menghapus beberapa paket NuGet yang diperlukan.
Saran pemecahan masalah
Jalankan alur dengan diagnostik untuk mengambil log terperinci

Salah satu opsi yang tersedia untuk mendiagnosis masalah ini adalah melihat log yang dihasilkan. Anda dapat melihat log alur dengan memilih tugas dan pekerjaan yang sesuai di ringkasan eksekusi alur Anda.

Untuk mendapatkan log eksekusi alur Anda , Dapatkan log untuk mendiagnosis masalah

Anda juga dapat menyiapkan dan mengunduh log verbose yang disesuaikan untuk membantu pemecahan masalah Anda:

Selain log diagnostik alur, Anda juga dapat memeriksa jenis log lain ini yang berisi lebih banyak informasi untuk membantu Anda men-debug dan menyelesaikan masalah:

Cobalah untuk mereprodusi kesalahan secara lokal

Jika Anda menggunakan agen build yang dihosting, Anda mungkin ingin mencoba mereproduksi kesalahan secara lokal. Ini akan membantu Anda mempersempit apakah kegagalan adalah hasil dari agen build atau tugas build.

Jalankan perintah yang sama MSBuild pada komputer lokal Anda menggunakan argumen yang sama. Lihat perintah MSBuild untuk referensi.

Tip

Jika Anda dapat mereproduksi masalah pada komputer lokal Anda, maka langkah Anda selanjutnya adalah menyelidiki masalah MSBuild .

Pelajari selengkapnya tentang agen yang dihosting Microsoft.

Untuk menyiapkan agen yang dihost sendiri dan menjalankan pekerjaan build:

Apa lagi yang bisa saya lakukan?

Beberapa kesalahan MSBuild disebabkan oleh perubahan di Visual Studio sehingga Anda dapat mencari di Komunitas Pengembang Visual Studio untuk melihat apakah masalah ini telah dilaporkan. Kami juga menyambut pertanyaan, saran, dan umpan balik Anda.

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Agen yang dihost sendiri harus memiliki kemampuan yang sesuai dengan tuntutan berikut untuk menjalankan pekerjaan yang menggunakan tugas ini: msbuild
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 1.95.0 atau lebih tinggi
Kategori tugas Build

Lihat juga