Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini berlaku untuk: ✔️ .NET 6 SDK dan versi yang lebih baru
Nama
dotnet pack - Mengemas kode ke dalam paket NuGet.
Sinopsis
dotnet pack [<PROJECT>|<SOLUTION>]
[--artifacts-path <ARTIFACTS_DIR>] [-c|--configuration <CONFIGURATION>]
[--disable-build-servers] [--force] [--include-source] [--include-symbols]
[--interactive] [--no-build] [--no-dependencies] [--no-restore] [--nologo]
[-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
[-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
[--version-suffix <VERSION_SUFFIX>]
dotnet pack -h|--help
Description
Perintah dotnet pack membangun proyek dan membuat paket NuGet. Hasil dari perintah ini adalah paket NuGet (yaitu, file .nupkg ).
Jika Anda ingin membuat paket yang berisi simbol debug, Anda memiliki dua opsi yang tersedia:
-
--include-symbols- itu membuat paket simbol. -
--include-source- ini membuat paket simbol dengansrcfolder di dalamnya berisi file sumber.
Dependensi NuGet dari proyek yang dikemas ditambahkan ke file .nuspec , sehingga diselesaikan dengan benar saat paket diinstal. Jika proyek yang dikemas memiliki referensi ke proyek lain, proyek lain tidak disertakan dalam paket. Saat ini, Anda harus memiliki paket per proyek jika Anda memiliki dependensi proyek-ke-proyek.
Secara default, dotnet pack membangun proyek terlebih dahulu. Jika Anda ingin menghindari perilaku ini, berikan --no-build opsi . Opsi ini sering berguna dalam skenario build Integrasi Berkelanjutan (CI) di mana Anda tahu kode sebelumnya dibuat.
Nota
Dalam beberapa kasus, build implisit tidak dapat dilakukan. Ini dapat terjadi ketika GeneratePackageOnBuild diatur, untuk menghindari dependensi siklik antara target build dan paket. Build juga dapat gagal jika ada file terkunci atau masalah lainnya.
Anda dapat menyediakan properti MSBuild ke dotnet pack perintah untuk proses pengemasan. Untuk informasi selengkapnya, lihat Properti target paket NuGet dan Referensi Command-Line MSBuild. Bagian Contoh memperlihatkan cara menggunakan sakelar MSBuild -p untuk beberapa skenario yang berbeda.
Nota
Proyek web tidak dapat dikemas.
Pemulihan implisit
Anda tidak harus menjalankan dotnet restore karena dijalankan secara implisit oleh semua perintah yang memerlukan terjadinya pemulihan, seperti dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish, dan dotnet pack. Untuk menonaktifkan pemulihan implisit, gunakan opsi --no-restore.
Perintah dotnet restore masih berguna dalam skenario tertentu di mana pemulihan secara eksplisit masuk akal, seperti pembangunan integrasi berkelanjutan di Azure DevOps Services atau dalam sistem pembangunan yang perlu secara eksplisit mengontrol saat pemulihan terjadi.
Untuk informasi tentang cara mengelola umpan NuGet, lihat dotnet restore dokumentasi.
Perintah ini mendukung opsi dotnet restore ketika diteruskan dalam bentuk panjang (misalnya, --source). Opsi pendek, seperti -s, tidak didukung.
Pengunduhan manifes beban kerja
Saat Anda menjalankan perintah ini, pengunduhan latar belakang asinkron manifes iklan untuk beban kerja akan dimulai. Jika unduhan masih berjalan saat perintah ini selesai, unduhan akan dihentikan. Untuk informasi selengkapnya, lihat Manifes iklan.
Arguments
PROJECT | SOLUTION
Proyek atau solusi untuk dikemas. Ini adalah jalur ke file csproj, vbproj, atau fsproj, atau ke file solusi atau direktori. Jika tidak ditentukan, perintah mencari direktori saat ini untuk proyek atau file solusi.
Opsi
-
--artifacts-path <ARTIFACTS_DIR>Semua file output build dari perintah yang dijalankan akan masuk ke subfolder di bawah jalur yang ditentukan, dipisahkan oleh proyek. Untuk informasi selengkapnya, lihat Tata Letak Output Artefak . Tersedia sejak .NET 8 SDK.
-
-c|--configuration <CONFIGURATION>Menentukan konfigurasi build. Jika Anda mengembangkan dengan .NET 8 SDK atau versi yang lebih baru, perintah menggunakan konfigurasi
Releasesecara default untuk proyek yang TargetFramework-nya diatur kenet8.0atau versi yang lebih baru. Konfigurasi build defaultDebuguntuk versi SDK yang lebih lama dan untuk kerangka kerja target sebelumnya. Anda dapat mengambil alih default dalam pengaturan proyek atau dengan menggunakan opsi ini. Untuk informasi selengkapnya, lihat 'penerbitan dotnet' menggunakan konfigurasi Rilis dan 'paket dotnet' menggunakan konfigurasi Rilis. -
--disable-build-serversMemaksa perintah untuk mengabaikan server build persisten apa pun. Opsi ini menyediakan cara yang konsisten untuk menonaktifkan semua penggunaan penembolokan build, yang memaksa build dari awal. Build yang tidak mengandalkan cache berguna ketika cache mungkin rusak atau salah karena beberapa alasan. Tersedia sejak .NET 7 SDK.
--forceMemaksa semua dependensi untuk diselesaikan bahkan jika pemulihan terakhir berhasil. Menentukan bendera ini sama dengan menghapus file project.assets.json.
--include-sourceTermasuk simbol debug paket NuGet selain paket NuGet reguler dalam direktori output. File sumber disertakan
srcdalam folder dalam paket simbol.--include-symbolsTermasuk simbol debug paket NuGet selain paket NuGet reguler dalam direktori output.
-
--interactiveMemungkinkan perintah berhenti dan menunggu input atau tindakan pengguna. Misalnya, untuk menyelesaikan autentikasi.
--no-buildTidak membangun proyek sebelum pengemasan. Ini juga secara implisit
--no-restoremengatur bendera.--no-dependenciesMengabaikan referensi proyek-ke-proyek dan hanya memulihkan proyek akar.
--no-restoreTidak menjalankan pemulihan implisit saat menjalankan perintah.
--nologoTidak menampilkan banner startup atau pesan hak cipta.
-o|--output <OUTPUT_DIRECTORY>Tempatkan paket bawaan dalam direktori yang ditentukan.
.NET 7.0.200 SDK
Dalam SDK 7.0.200, jika Anda menentukan
--outputopsi saat menjalankan perintah ini pada solusi, CLI akan mengeluarkan kesalahan. Ini adalah regresi dan diperbaiki pada 7.0.201 dan versi yang lebih baru dari .NET SDK.
--runtime <RUNTIME_IDENTIFIER>Menentukan runtime target untuk memulihkan paket. Untuk daftar Pengidentifikasi Runtime (RID), lihat katalog RID.
-s|--serviceableMengatur bendera yang dapat dilayankan dalam paket. Untuk informasi selengkapnya, lihat .NET Blog: .NET Framework 4.5.1 Mendukung Pembaruan Keamanan Microsoft untuk Pustaka NuGet .NET.
-
--tl:[auto|on|off]Menentukan apakah Terminal Logger harus digunakan untuk output build. Defaultnya adalah
auto, yang pertama memverifikasi lingkungan sebelum mengaktifkan pengelogan terminal. Pemeriksaan lingkungan memverifikasi bahwa terminal mampu menggunakan fitur output modern dan tidak menggunakan output standar yang dialihkan sebelum mengaktifkan pencatat baru.onmelewati pemeriksaan lingkungan dan mengaktifkan pengelogan terminal.offmelewati pemeriksaan lingkungan dan menggunakan pencatat konsol default.Terminal Logger menunjukkan fase pemulihan diikuti oleh fase build. Selama setiap fase, proyek bangunan saat ini muncul di bagian bawah terminal. Setiap proyek yang membangun menghasilkan target MSBuild yang saat ini sedang dibangun dan jumlah waktu yang dihabiskan untuk target tersebut. Anda dapat mencari informasi ini untuk mempelajari lebih lanjut tentang build. Setelah proyek selesai dibangun, satu bagian "build completed" ditulis yang menangkap:
- Nama proyek bawaan.
- Kerangka kerja target (jika multi-target).
- Status build tersebut.
- Output utama build tersebut (yang di-hyperlink).
- Diagnostik apa pun yang dihasilkan untuk proyek tersebut.
Opsi ini tersedia mulai dari .NET 8.
-
-v|--verbosity <LEVEL>Mengatur tingkat verbositas perintah. Nilai yang diizinkan adalah
q[uiet],m[inimal],n[ormal],d[etailed], dandiag[nostic]. Untuk informasi selengkapnya, lihat LoggerVerbosity . --version-suffix <VERSION_SUFFIX>Menentukan nilai untuk
VersionSuffixproperti MSBuild. Efek properti ini pada versi paket tergantung pada nilaiVersionproperti danVersionPrefix, seperti yang ditunjukkan dalam tabel berikut:Properti dengan nilai Versi paket None 1.0.0Version$(Version)VersionPrefixhanya$(VersionPrefix)VersionSuffixhanya1.0.0-$(VersionSuffix)VersionPrefixdanVersionSuffix$(VersionPrefix)-$(VersionSuffix)Jika Anda ingin menggunakan
--version-suffix, tentukanVersionPrefixdan bukanVersiondalam file proyek. Misalnya, jikaVersionPrefixadalah0.1.2dan Anda meneruskan--version-suffix rc.1kedotnet pack, versi paket akan menjadi0.1.2-rc.1.Jika
Versionmemiliki nilai dan Anda meneruskan--version-suffixkedotnet pack, nilai yang ditentukan untuk--version-suffixdiabaikan.-
-?|-h|--helpMencetak deskripsi cara menggunakan perintah.
Examples
Kemas proyek di direktori saat ini:
dotnet packapp1Kemas proyek:dotnet pack ~/projects/app1/project.csprojKemas proyek di direktori saat ini dan letakkan paket yang dihasilkan ke
nupkgsdalam folder:dotnet pack --output nupkgsKemas proyek di direktori saat ini ke
nupkgsdalam folder dan lewati langkah build:dotnet pack --no-build --output nupkgsDengan akhiran versi proyek yang dikonfigurasi seperti
<VersionSuffix>$(VersionSuffix)</VersionSuffix>dalam file .csproj , kemas proyek saat ini dan perbarui versi paket yang dihasilkan dengan akhiran yang diberikan:dotnet pack --version-suffix "ci-1234"Atur versi paket ke
2.1.0denganPackageVersionproperti MSBuild:dotnet pack -p:PackageVersion=2.1.0Kemas proyek untuk kerangka kerja target tertentu:
dotnet pack -p:TargetFrameworks=net45Kemas proyek dan gunakan runtime tertentu (Windows) untuk operasi pemulihan:
dotnet pack --runtime win-x64Kemas proyek menggunakan file .nuspec :
dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nugetUntuk informasi tentang cara menggunakan
NuspecFile, ,NuspecBasePathdanNuspecProperties, lihat sumber daya berikut: