Share via


Referensi baris perintah MSBuild

Saat menggunakan MSBuild.exe untuk membangun file solusi atau proyek, Anda dapat menyertakan beberapa switch untuk menentukan berbagai aspek proses.

Setiap switch tersedia dalam dua bentuk: -switch dan /switch. Dokumentasi ini hanya menunjukkan bentuk -switch. Sakelar tidak peka huruf besar/kecil. Jika Anda menjalankan MSBuild dari shell selain perintah Windows, daftar argumen ke switch (dipisahkan oleh titik koma atau koma) mungkin memerlukan tanda kutip tunggal atau ganda untuk memastikan bahwa daftar diteruskan ke MSBuild, bukan ditafsirkan oleh shell.

Sintaks

MSBuild.exe [Switches] [ProjectFile]

Argumen

Argumen Deskripsi
ProjectFile Membangun target dalam file proyek yang Anda tentukan. Jika Anda tidak menentukan file proyek, MSBuild akan menelusuri direktori yang berfungsi saat ini untuk menemukan ekstensi nama file yang berakhiran proj dan menggunakan file tersebut. Anda juga dapat menentukan file solusi Visual Studio untuk argumen ini.

Sakelar

Sakelar Formulir pendek Deskripsi
-detailedSummary[:True atau False] -ds[:True atau False] Jika True, tampilkan informasi mendetail di akhir log pembangunan tentang konfigurasi yang dibangun dan cara konfigurasi dijadwalkan ke node.
-getItem:itemName,... Tuliskan nilai item atau item setelah evaluasi, tanpa mengeksekusi build, atau jika -targets opsi atau -getTargetResult opsi digunakan, tulis nilai setelah build.
-getProperty:propertyName,... Tuliskan nilai properti atau properti setelah evaluasi, tanpa mengeksekusi build, atau jika -targets opsi atau -getTargetResult opsi digunakan, tulis nilai setelah build.
-getTargetResult:targetName,... Tuliskan nilai output dari target yang ditentukan.
-graphBuild[:True atau False] -graph[:True atau False] Menyebabkan MSBuild menyusun dan membangun grafik proyek. Penyusunan grafik melibatkan identifikasi referensi proyek untuk membentuk dependensi. Pembangunan grafik tersebut melibatkan upaya pembangunan referensi proyek sebelum pembangunan proyek yang menggunakannya sebagai referensi, berbeda dengan penjadwalan MSBuild tradisional. Memerlukan MSBuild 16 atau yang lebih baru.
-help /? atau -h Menampilkan informasi penggunaan. Perintah berikut adalah contohnya:

msbuild.exe -?
-ignoreProjectExtensions: extensions -ignore: extensions Mengabaikan ekstensi yang ditentukan saat menentukan file proyek yang akan dibangun. Gunakan titik koma atau koma untuk memisahkan beberapa ekstensi, seperti yang ditunjukkan contoh berikut:

-ignoreprojectextensions:.vcproj,.sln
-inputResultsCaches[:cacheFile[;cacheFile2] -irc[:cacheFile[;cacheFile2] Daftar file cache input yang dipisahkan titik koma yang akan dibaca oleh MSBuild. Jika -isolateProjects diatur ke False, ini mengaturnya ke True.
-interactive[:True atau False] - Menunjukkan bahwa tindakan dalam build diizinkan untuk berinteraksi dengan pengguna. Jangan gunakan argumen ini dalam skenario otomatis di mana interaktivitas tidak diharapkan. Menentukan -interactive sama dengan menentukan -interactive:true. Gunakan parameter ini untuk mengambil alih nilai yang berasal dari file respons.
-isolateProjects[:True atau MessageUponIsolationViolationFalse] -isolate[:True atau MessageUponIsolationViolation ]False Menyebabkan MSBuild membangun setiap proyek dalam isolasi. Ketika diatur ke MessageUponIsolationViolation (atau bentuk Messagependeknya ), hanya hasil dari target tingkat atas yang diserialisasikan jika -outputResultsCache sakelar disediakan. Opsi ini adalah untuk mengurangi kemungkinan target yang melanggar isolasi pada proyek dependensi menggunakan status yang salah karena dependensinya pada target cache yang efek sampingnya tidak akan diperhitungkan. (Misalnya, definisi properti.) Mode ini lebih ketat, karena mengharuskan grafik proyek dapat ditemukan secara statis pada waktu evaluasi, tetapi dapat meningkatkan penjadwalan dan mengurangi overhead memori saat membangun serangkaian proyek yang besar.
-lowPriority[:True atau False] -low[:True atau False] Menyebabkan MSBuild berjalan pada prioritas proses rendah. Menentukan -lowPriority sama dengan menentukan -lowPriority:True.
-maxCpuCount[:number] -m[:number] Menentukan jumlah maksimum proses bersamaan yang digunakan saat melakukan pembangunan. Jika Anda tidak menyertakan switch ini, nilai defaultnya adalah 1. Jika Anda menyertakan sakelar ini tanpa menentukan nilai, MSBuild menggunakan hingga jumlah prosesor di komputer. Untuk informasi selengkapnya, lihat Membangun beberapa proyek secara paralel.

Contoh berikut memerintahkan MSBuild untuk melakukan pembangunan dengan tiga proses MSBuild, sehingga tiga proyek dapat dibangun secara bersamaan:

msbuild myproject.proj -maxcpucount:3
-noAutoResponse -noautorsp Jangan sertakan file MSBuild.rsp atau Directory.Build.rsp secara otomatis.
-nodeReuse:value -nr:value Aktifkan atau nonaktifkan penggunaan kembali node MSBuild. Anda bisa menentukan nilai berikut:

- Benar. Node akan tetap ada setelah build selesai sehingga build berikutnya dapat menggunakan node tersebut (default).
- Salah. Node hilang setelah build selesai.

Node merespons sesuai dengan proyek yang dijalankan. Jika Anda menyertakan switch -maxcpucount, beberapa node dapat dijalankan secara bersamaan.
-nologo Jangan tampilkan banner startup atau pesan hak cipta.
-preprocess[:filepath] -pp[:filepath] Membuat satu file proyek agregat dengan menyejajarkan semua file yang akan diimpor selama build, dengan batasan yang ditandai. Anda dapat menggunakan switch ini agar bisa dengan mudah mengetahui file mana yang sedang diimpor, dari mana file diimpor, dan file mana yang berkontribusi pada build. Saat Anda menggunakan switch ini, proyek tidak dibangun.

Jika Anda menentukan filepath, file proyek agregat akan menjadi output ke file. Jika tidak, output akan muncul di jendela konsol.

Untuk informasi tentang cara menggunakan elemen Import untuk menyisipkan file proyek ke file proyek lain, lihat Impor elemen (MSBuild) dan Cara: Menggunakan target yang sama di beberapa file proyek.
-outputResultsCache[:cacheFile] -orc[:cacheFile] File cache output tempat MSBuild menulis konten cache hasil buildnya di akhir build. Jika -isolateProjects diatur ke False, ini mengaturnya ke True.
-profileEvaluation:<file> - Membuat profil evaluasi MSBuild dan menulis hasilnya ke file yang ditentukan. Jika ekstensi file yang ditentukan adalah '.md', hasilnya akan berupa format Markdown. Jika tidak, hasilnya akan berupa file yang dipisahkan tab.
-property:name=value -p:name=value Mengatur atau mengambil alih properti tingkat proyek yang ditentukan, name di sini merupakan nama properti dan value merupakan nilai properti. Tentukan setiap properti secara terpisah, atau gunakan titik koma maupun koma untuk memisahkan beberapa properti, seperti yang ditunjukkan contoh berikut:

-property:WarningLevel=2;OutDir=bin\Debug
-restore \r Menjalankan target Restore sebelum membangun target sebenarnya.
-restoreProperty:name=value -rp:name=value Atur atau ambil alih properti tingkat proyek ini hanya selama pemulihan dan jangan gunakan properti yang ditentukan dengan argumen -property. name adalah nama properti dan value adalah nilai properti. Gunakan titik koma atau koma untuk memisahkan beberapa properti, atau tentukan setiap properti secara terpisah.
-target:targets -t:targets Membangun target yang ditentukan dalam proyek. Tentukan setiap properti secara terpisah, atau gunakan titik koma maupun koma untuk memisahkan beberapa target, seperti yang ditunjukkan contoh berikut:

-target:PrepareResources;Compile

Jika Anda menentukan target apa pun dengan menggunakan sakelar ini, target dijalankan alih-alih target apa pun dalam DefaultTargets atribut dalam file proyek. Untuk informasi selengkapnya, lihat Urutan build target dan Cara: Menentukan target yang harus dibangun terlebih dahulu.

Target adalah sekelompok tugas. Untuk informasi selengkapnya, lihat Target.
-targets[:file] -ts[:file] Menulis daftar target yang tersedia ke file yang ditentukan (atau perangkat output, jika tidak ada file yang ditentukan), tanpa benar-benar menjalankan proses build.
-toolsVersion:version -tv:version Menentukan set alat kustom. Set alat terdiri dari tugas, target, dan alat yang digunakan untuk membangun aplikasi. Lihat Toolset (ToolsVersion) dan Konfigurasi toolset standar dan kustom.
-validate:[schema] -val[schema] Memvalidasi file proyek dan membangun proyek jika validasi berhasil.

Jika Anda tidak menentukan schema, proyek akan divalidasi berdasarkan skema default.

Jika Anda menentukan schema, proyek akan divalidasi berdasarkan skema yang Anda tentukan.

Pengatuan berikut adalah contohnya: -validate:MyExtendedBuildSchema.xsd
-verbosity:level -v:level Menentukan jumlah informasi yang akan ditampilkan dalam log build. Setiap pencatat menampilkan peristiwa berdasarkan tingkat verbositas yang Anda tetapkan untuk pencatat tersebut.

Anda dapat menentukan tingkat verbositas berikut: q[uiet], m[inimal], n[ormal] (default), d[etailed], dan diag[nostic].

Pengatuan berikut adalah contohnya: -verbosity:quiet
-versi -ver Menampilkan informasi versi saja. Proyek tidak dibangun.
@file Menyisipkan switch baris perintah dari file teks. Tentukan switch ini secara terpisah jika Anda memiliki beberapa file. Untuk informasi selengkapnya, lihat File respons.
-warnAsError[:code[;code2] -err[:code[;code2] Daftar kode peringatan untuk dianggap sebagai kesalahan. Gunakan titik koma atau koma untuk memisahkan beberapa kode peringatan. Untuk memperlakukan semua peringatan sebagai kesalahan, gunakan switch tanpa nilai. Ketika peringatan diperlakukan sebagai kesalahan, target terus dijalankan seolah-olah itu adalah peringatan, tetapi build keseluruhan gagal.

Contoh: -err:MSB4130
-warnNotAsError[:code[;code2] -noerr[:code[;code2] Daftar kode peringatan yang seharusnya tidak dipromosikan ke kesalahan. Secara khusus, jika sakelar warnAsError diatur untuk mempromosikan semua peringatan ke kesalahan, kode kesalahan yang ditentukan dengan warnNotAsError tidak dipromosikan. Ini tidak berpengaruh jika warnAsError tidak diatur untuk mempromosikan semua peringatan ke kesalahan. Gunakan titik koma atau koma untuk memisahkan beberapa kode peringatan.

Contoh: -noerr:MSB4130
-warnAsMessage[:code[;code2] -noWarn[:code[;code2] Daftar kode peringatan yang dianggap sebagai pesan penting tingkat rendah. Gunakan titik koma atau koma untuk memisahkan beberapa kode peringatan.

Contoh: -noWarn:MSB3026

Switch untuk pencatat

Sakelar Formulir pendek Deskripsi
-binaryLogger[:[LogFile=]output.binlog
[;ProjectImports=[None,Embed,ZipFile]]]
-bl Menserialisasikan semua peristiwa build ke file biner terkompresi. Secara default file berada di direktori saat ini dan diberi nama msbuild.binlog. Log biner adalah deskripsi terperinci proses build yang nantinya dapat digunakan untuk merekonstruksi log teks dan digunakan oleh alat analisis lainnya. Log biner biasanya 10-20x lebih kecil dari log tingkat diagnostik teks yang paling rinci, tetapi log ini berisi lebih banyak informasi.

Pencatat biner secara default mengumpulkan teks sumber file proyek, termasuk semua proyek yang diimpor dan file target yang ditemui selama build. Switch ProjectImports opsional mengontrol perilaku ini:

- ProjectImports=None. Jangan kumpulkan impor proyek.
- ProjectImports=Embed. Sematkan impor proyek dalam file log (default).
- ProjectImports=ZipFile. Simpan file proyek ke <output>.projectimports.zip, tempat <output> menggunakan nama yang sama dengan nama file log biner.

Pengaturan default untuk ProjectImports adalah Embed.
Catatan: pencatat tidak mengumpulkan file sumber non-MSBuild seperti .cs, .cpp dll.
File .binlog dapat "diputar kembali" dengan meneruskannya ke msbuild.exe sebagai argumen, bukan proyek/solusi. Pencatat lain menerima informasi yang terkandung dalam file log seolah-olah build asli terjadi. Anda dapat membaca info selengkapnya tentang log biner dan penggunaannya di: https://github.com/dotnet/msbuild/blob/main/documentation/wiki/Binary-Log.md

Contoh:
- -bl
- -bl:output.binlog
- -bl:output.binlog;ProjectImports=None
- -bl:output.binlog;ProjectImports=ZipFile
- -bl:..\..\custom.binlog
- -binaryLogger
-consoleLoggerParameters:

parameters
-clp:parameters Meneruskan parameter yang Anda tentukan ke pencatat konsol, yang menampilkan informasi build di jendela konsol. Anda dapat menentukan parameter berikut:

- PerformanceSummary. Tampilkan waktu yang dihabiskan dalam tugas, target, dan proyek.
- Summary. Tampilkan ringkasan kesalahan dan peringatan di akhir.
- NoSummary. Jangan tampilkan ringkasan kesalahan dan peringatan di akhir.
- ErrorsOnly. Tampilkan kesalahan saja.
- WarningsOnly. Tampilkan peringatan saja.
- NoItemAndPropertyList. Jangan tampilkan daftar item dan properti yang akan muncul di awal setiap build proyek jika tingkat verbositas diatur ke diagnostic.
- ShowCommandLine. Tampilkan pesan TaskCommandLineEvent.
- ShowProjectFile. Menampilkan jalur ke file proyek dalam pesan diagnostik. Pengaturan ini aktif secara default.
- ShowTimestamp. Tampilkan stempel waktu sebagai awalan untuk pesan apa pun.
- ShowEventId. Tampilkan ID peristiwa untuk setiap peristiwa yang dimulai, peristiwa selesai, dan pesan.
- ForceNoAlign. Jangan ratakan teks ke ukuran buffer konsol.
- DisableConsoleColor. Gunakan warna konsol default untuk semua pesan pengelogan.
- DisableMPLogging. Nonaktifkan gaya pengelogan multiprosesor output saat berjalan dalam mode non-multiprosesor.
- EnableMPLogging. Aktifkan gaya pengelogan multiprosesor bahkan saat berjalan dalam mode non-multiprosesor. Gaya pengelogan ini aktif secara default.
- ForceConsoleColor. Gunakan warna konsol ANSI meskipun konsol tidak mendukungnya.
- Verbosity. Ambil alih pengaturan -verbosity untuk pencatat ini.

Gunakan titik koma untuk memisahkan beberapa parameter, seperti yang ditunjukkan contoh berikut:

-consoleloggerparameters:PerformanceSummary;NoSummary -verbosity:minimal

Pencatat konsol default berada pada tingkat verbositas normal dan menyertakan Summary.
-distributedFileLogger -dfl Mencatat output build dari setiap node MSBuild ke filenya sendiri. Lokasi awal untuk file-file ini adalah direktori saat ini. Secara default, file diberi nama MSBuild<NodeId>.log. Anda dapat menggunakan switch -fileLoggerParameters untuk menentukan lokasi file dan parameter lain untuk fileLogger.

Jika Anda memberi nama file log dengan menggunakan sakelar -fileLoggerParameters , pencatat terdistribusi menggunakan nama tersebut sebagai templat dan menambahkan ID simpul ke nama tersebut saat membuat file log untuk setiap simpul.
-distributedLogger:

central logger

forwarding logger
-dl:central loggerforwarding logger Mencatat peristiwa dari MSBuild, dengan melampirkan instans pencatat yang berbeda ke setiap node. Untuk menentukan beberapa pencatat, tentukan setiap pencatat secara terpisah.

Gunakan sintaks pencatat untuk menentukan pencatat. Untuk sintaks pencatat, lihat sakelar -logger .

Contoh berikut menunjukkan cara menggunakan switch ini:

-dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

-dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll
-fileLogger

[number]
-fl[number] Mencatat output build ke satu file di direktori saat ini. Jika Anda tidak menentukan number, file output akan diberi nama msbuild.log. Jika Anda tidak menentukan number, file output akan diberi nama msbuild<n>.log, <n> di sini adalah number. Number dapat berupa digit 1 hingga 9.

Anda dapat menggunakan switch -fileLoggerParameters untuk menentukan lokasi file dan parameter lain untuk fileLogger.
-fileLoggerParameters[number]:

parameters
-flp[ number]: parameters Menentukan parameter tambahan untuk pencatat file dan pencatat file yang sudah terdistribusi. Kehadiran switch ini menandakan adanya switch -filelogger[number] yang sesuai. Number dapat berupa digit 1 hingga 9.

Anda dapat menggunakan semua parameter yang tercantum untuk -consoleloggerparameters. Anda juga dapat menggunakan satu atau beberapa parameter berikut:

- LogFile. Jalur ke file log tempat log build ditulis. Pencatat file yang sudah terdistribusi menggunakan jalur ini sebagai awalan nama file lognya.
- Append. Menentukan apakah log build ditambahkan ke file log atau justru menimpanya. Saat Anda mengatur switch ini, log build akan ditambahkan ke file log. Saat sakelar tidak ada, konten file log yang ada akan ditimpa.
Contoh: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append
Jika Anda menyertakan pengaturan true atau false yang eksplisit, log akan ditambahkan terlepas dari pengaturannya. Jika Anda tidak menyertakan sakelar penambah, log akan ditimpa.
Dalam hal ini, file ditimpa: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log
Dalam hal ini, file ditambahkan: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append=true
Dalam hal ini, file ditambahkan: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append=false
- Encoding. Menentukan pengodean untuk file (misalnya, UTF-8, Unicode, atau ASCII).

Contoh berikut menghasilkan file log terpisah untuk peringatan dan kesalahan:

-flp1:logfile=errors.txt;errorsonly -flp2:logfile=warnings.txt;warningsonly

Contoh berikut menunjukkan kemungkinan lainnya:

-fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

-flp:Summary;Verbosity=minimal;LogFile=msbuild.sum

-flp1:warningsonly;logfile=msbuild.wrn

-flp2:errorsonly;logfile=msbuild.err
-logger:

logger
-l:logger Menentukan pencatat yang akan digunakan untuk mencatat peristiwa dari MSBuild. Untuk menentukan beberapa pencatat, tentukan setiap pencatat secara terpisah.

Gunakan sintaks berikut untuk logger: [``LoggerClass``,]``LoggerAssembly``[;``LoggerParameters``]

Gunakan sintaks berikut untuk LoggerClass: [``PartialOrFullNamespace``.]``LoggerClassName

Anda tidak perlu menentukan kelas pencatat jika rakitan berisi tepat satu pencatat.

Gunakan sintaks berikut untuk LoggerAssembly: {``AssemblyName``[,``StrongName``] &#124;AssemblyFile``}

Parameter pencatat bersifat opsional dan diteruskan ke pencatat persis seperti yang Anda masukkan.

Contoh berikut menggunakan switch -logger.

-logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

-logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML
-noConsoleLogger -noconlog Nonaktifkan pencatat konsol default, dan jangan catat peristiwa ke konsol.
-terminalLogger[:auto,on,off] -tl[:auto,on,off] Aktifkan atau nonaktifkan pencatat terminal. Pencatat terminal menyediakan output build yang ditingkatkan pada konsol secara real time, diatur secara logis menurut proyek, dan dirancang untuk menyoroti informasi yang dapat ditindaklanjuti. Tentukan auto (atau gunakan opsi tanpa argumen) untuk menggunakan pencatat terminal hanya jika output standar tidak dialihkan. Jangan mengurai output atau mengandalkan output tersebut tetap tidak berubah dalam versi mendatang. Opsi ini tersedia di MSBuild 17.8 dan yang lebih baru.

Contoh 1

Contoh berikut membangun target rebuild dari proyek MyProject.proj.

MSBuild.exe MyProject.proj -t:rebuild

Contoh 2

Anda dapat menggunakan MSBuild.exe untuk melakukan build yang lebih kompleks. Misalnya, Anda dapat menggunakannya untuk membangun target khusus dari proyek tertentu dalam satu solusi. Contoh berikut membangun kembali proyek NotInSolutionFolder dan membersihkan proyek InSolutionFolder, yang ada di folder solusi NewFolder.

msbuild SlnFolders.sln -t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

Lihat juga