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 (memilihAllow
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 baris perintah MSBuild
Bagaimana cara membuat beberapa konfigurasi untuk beberapa platform?
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 menentukanBuildPlatform
dengan nilai CPU apa pun. - Untuk aplikasi C++, Anda dapat menentukan
BuildConfiguration
dengan nilai debug dan rilis, dan Anda dapat menentukanBuildPlatform
dengan nilai x86 dan x64 apa pun.
- Untuk aplikasi .NET, Anda dapat menentukan
Pada tab Opsi, pilih
MultiConfiguration
dan tentukan , dipisahkanMultipliers
oleh koma. Misalnya:BuildConfiguration, BuildPlatform
PilihParallel
jika Anda ingin mendistribusikan pekerjaan (satu untuk setiap kombinasi nilai) ke beberapa agen secara paralel jika tersedia.Pada tab Build, pilih langkah ini dan tentukan
Platform
argumen danConfiguration
. Contohnya:- Platform:
$(BuildPlatform)
- Konfigurasi:
$(BuildConfiguration)
- Platform:
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
- Cobalah untuk mereprodusi kesalahan secara lokal
- Apa lagi yang bisa saya lakukan?
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:
- Log diagnostik pekerja
- Log diagnostik agen
- Log lain (Lingkungan dan kemampuan)
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
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