perintah paket (NuGet CLI)
Berlaku untuk: pembuatan paket • Versi yang didukung: 2.7+
Membuat paket NuGet berdasarkan file .nuspec atau proyek yang ditentukan. Perintah dotnet pack
(lihat perintah dotnet) dan msbuild -t:pack
(lihat target MSBuild) dapat digunakan sebagai alternatif.
Penting
Gunakan dotnet pack
atau msbuild -t:pack
untuk proyek berbasis PackageReference . Dimulai dengan NuGet versi 6.5+, perintah paket akan kesalahan saat mencoba mengemas jenis proyek ini. Versi sebelumnya akan mencoba untuk mengemas, tetapi paket yang dihasilkan mungkin tidak benar.
Di bawah Mono, membuat paket dari file proyek tidak didukung. Anda juga perlu menyesuaikan jalur non-lokal dalam file ke .nuspec
jalur gaya Unix, karena nuget.exe tidak mengonversi nama jalur Windows itu sendiri.
Penggunaan
nuget pack <nuspecPath | projectPath> [options] [-Properties ...]
di mana <nuspecPath>
dan <projectPath>
menentukan .nuspec
file atau proyek, masing-masing.
Opsi
-BasePath
Mengatur jalur dasar file yang ditentukan dalam file .nuspec .
-Build
Menentukan bahwa proyek harus dibangun sebelum membangun paket.
-ConfigFile
File konfigurasi NuGet yang akan diterapkan. Jika tidak ditentukan,
%AppData%\NuGet\NuGet.Config
(Windows), atau atau~/.nuget/NuGet/NuGet.Config
~/.config/NuGet/NuGet.Config
(Mac/Linux) digunakan.-Exclude
Menentukan satu atau beberapa pola kartubebas untuk dikecualikan saat membuat paket. Untuk menentukan lebih dari satu pola, ulangi bendera -Exclude. Contohnya di bawah.
-ExcludeEmptyDirectories
Mencegah penyertaan direktori kosong saat membangun paket.
-ForceEnglishOutput
(3.5+) Memaksa nuget.exe untuk berjalan menggunakan budaya berbasis bahasa Inggris yang invarian.
-?|-help
Menampilkan informasi bantuan untuk perintah.
-IncludeReferencedProjects
Menunjukkan bahwa paket bawaan harus menyertakan proyek yang dirujuk baik sebagai dependensi atau sebagai bagian dari paket. Jika proyek yang dirujuk memiliki file terkait yang memiliki nama yang sama dengan
.nuspec
proyek, proyek yang dirujuk tersebut ditambahkan sebagai dependensi. Jika tidak, proyek yang dirujuk ditambahkan sebagai bagian dari paket.-InstallPackageToOutputPath
Tentukan apakah perintah harus menyiapkan direktori output paket untuk mendukung berbagi sebagai umpan.
-MinClientVersion
Atur atribut minClientVersion untuk paket yang dibuat. Nilai ini akan menggantikan nilai atribut minClientVersion yang ada (jika ada) dalam
.nuspec
file.-MSBuildPath
(4.0+) Menentukan jalur MSBuild untuk digunakan dengan perintah , lebih diutamakan daripada
-MSBuildVersion
.-MSBuildVersion
(3.2+) Menentukan versi MSBuild yang akan digunakan dengan perintah ini. Nilai yang didukung adalah 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Secara default MSBuild di jalur Anda dipilih, jika tidak, MSBuild default ke versi MSBuild tertinggi yang diinstal.
-NoDefaultExcludes
Mencegah pengecualian default file paket NuGet dan file dan folder yang dimulai dengan titik, seperti
.svn
dan.gitignore
.-NonInteractive
Menekan permintaan untuk input atau konfirmasi pengguna.
-NoPackageAnalysis
Menentukan bahwa paket tidak boleh menjalankan analisis paket setelah membuat paket.
-OutputDirectory
Menentukan folder tempat paket yang dibuat disimpan. Jika tidak ada folder yang ditentukan, folder saat ini akan digunakan.
-OutputFileNamesWithoutVersion
Tentukan apakah perintah harus menyiapkan nama output paket tanpa versi .
-PackagesDirectory
Menentukan folder paket.
-p|-Properties
Akan muncul terakhir pada baris perintah setelah opsi lain. Menentukan daftar properti yang mengambil alih nilai dalam file proyek; lihat Properti Proyek MSBuild umum untuk nama properti. Argumen Properti di sini adalah daftar pasangan token=value, dipisahkan oleh titik koma, di mana setiap kemunculan
$token$
.nuspec
dalam file akan diganti dengan nilai yang diberikan. Nilai dapat berupa string dalam tanda kutip. Perhatikan bahwa untuk properti "Konfigurasi", defaultnya adalah "Debug". Untuk mengubah ke konfigurasi Rilis, gunakan-Properties Configuration=Release
. Secara umum, Properti harus sama dengan yang digunakan selama build proyek yang sesuai, untuk menghindari perilaku yang berpotensi aneh.-SolutionDirectory
Menentukan direktori solusi.
-Suffix
(3.4.4+) Menambahkan akhiran ke nomor versi yang dihasilkan secara internal, biasanya digunakan untuk menambahkan build atau pengidentifikasi pra-rilis lainnya. Misalnya, menggunakan
-suffix nightly
akan membuat paket dengan nomor versi seperti1.2.3-nightly
. Akhiran harus dimulai dengan huruf untuk menghindari peringatan, kesalahan, dan potensi ketidakcocokan dengan versi NuGet dan Manajer Paket NuGet yang berbeda.-SymbolPackageFormat
Saat membuat paket simbol, memungkinkan untuk memilih antara
snupkg
format dansymbols.nupkg
.-Symbols
Menentukan bahwa paket berisi sumber dan simbol. Ketika digunakan dengan
.nuspec
file, ini membuat file paket NuGet reguler dan paket simbol yang sesuai. Secara default membuat paket simbol warisan. Format baru yang direkomendasikan untuk paket simbol adalah .snupkg. Lihat Membuat paket simbol (.snupkg).-Tool
Menentukan bahwa file output proyek harus ditempatkan di folder dalam
tools
paket.-Verbosity [normal|quiet|detailed]
Menentukan jumlah detail yang ditampilkan dalam output:
normal
(default),quiet
, ataudetailed
.-Version
Mengambil alih nomor versi dari
.nuspec
file.
Lihat juga Variabel lingkungan
Tidak termasuk dependensi pengembangan
Beberapa paket NuGet berguna sebagai dependensi pengembangan, yang membantu Anda menulis pustaka Anda sendiri, tetapi belum tentu diperlukan sebagai dependensi paket aktual.
Perintah pack
akan mengabaikan package
entri di packages.config
yang memiliki atribut yang developmentDependency
diatur ke true
. Entri ini tidak akan disertakan sebagai dependensi dalam paket yang dibuat.
Misalnya, pertimbangkan file berikut packages.config
dalam proyek sumber:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.5.2" />
<package id="netfx-Guard" version="1.3.3.2" developmentDependency="true" />
<package id="microsoft-web-helpers" version="1.15" />
</packages>
Untuk proyek ini, paket yang dibuat oleh nuget pack
akan memiliki dependensi pada jQuery
dan microsoft-web-helpers
tetapi tidak netfx-Guard
.
Menekan peringatan paket
Meskipun disarankan agar Anda menyelesaikan semua peringatan NuGet selama operasi paket Anda, dalam situasi tertentu menekannya dijaga.
Anda dapat mencapainya dengan cara berikut:
nuget.exe pack package.nuspec -Properties NoWarn=NU5104
Contoh
nuget pack
nuget pack foo.nuspec
nuget pack foo.csproj
nuget pack foo.csproj -Properties Configuration=Release
nuget pack foo.csproj -Build -Symbols -Properties owners=janedoe,xiaop;version="1.0.5"
# Create a package from project foo.csproj, using MSBuild version 12 to build the project
nuget pack foo.csproj -Build -Symbols -MSBuildVersion 12 -Properties owners=janedoe,xiaop;version="1.0.5"
# Create a package from project foo.nuspec and the corresponding symbol package using the new recommended format .snupkg
nuget pack foo.nuspec -Symbols -SymbolPackageFormat snupkg
nuget pack foo.nuspec -Version 2.1.0
nuget pack foo.nuspec -Version 1.0.0 -MinClientVersion 2.5
nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"
Catatan
pack
Perintah untuk proyek gaya SDK tidak didukung, gunakandotnet pack
, atau msbuild -t:pack
untuk mengemas proyek-proyek tersebut sebagai gantinya.