Cara membuat paket NuGet dengan .NET CLI
Catatan
Berikut ini memperlihatkan sampel baris perintah menggunakan Unix. dotnet pack
Perintah seperti yang ditunjukkan di sini bekerja dengan cara yang sama pada Windows.
Pustaka .NET Standard dan .NET Core diharapkan didistribusikan sebagai paket NuGet. Ini sebenarnya bagaimana semua pustaka .NET Standard didistribusikan dan digunakan. Ini paling mudah dilakukan dengan dotnet pack
perintah .
Bayangkan Anda hanya menulis pustaka baru yang luar biasa yang ingin Anda distribusikan melalui NuGet. Anda dapat membuat paket NuGet dengan alat lintas platform untuk melakukan hal itu! Contoh berikut mengasumsikan pustaka yang disebut SuperAwesomeLibrary yang menargetkan netstandard1.0
.
Jika Anda memiliki dependensi transitif, yaitu proyek yang bergantung pada paket lain, pastikan untuk memulihkan paket untuk seluruh solusi dengan dotnet restore
perintah sebelum Anda membuat paket NuGet. Gagal melakukannya akan mengakibatkan dotnet pack
perintah tidak berfungsi dengan baik.
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.
Setelah memastikan paket dipulihkan, Anda dapat menavigasi ke direktori tempat pustaka berada:
cd src/SuperAwesomeLibrary
Kemudian hanya satu perintah dari baris perintah:
dotnet pack
Folder /bin/Debug Anda sekarang akan terlihat seperti ini:
$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg
Ini menghasilkan paket yang mampu di-debug. Jika Anda ingin membuat paket NuGet dengan biner rilis, yang perlu Anda lakukan adalah menambahkan --configuration
sakelar (atau -c
) dan gunakan release
sebagai argumen.
dotnet pack --configuration release
Folder /bin Anda sekarang akan memiliki folder rilis yang berisi paket NuGet Anda dengan biner rilis:
$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg
Dan sekarang Anda memiliki file yang diperlukan untuk menerbitkan paket NuGet!
Jangan bingung dotnet pack
dengan dotnet publish
Penting untuk dicatat bahwa tidak ada gunanya adalah perintah yang dotnet publish
terlibat. Perintahnya dotnet publish
adalah untuk menyebarkan aplikasi dengan semua dependensinya dalam bundel yang sama -- bukan untuk menghasilkan paket NuGet yang akan didistribusikan dan dikonsumsi melalui NuGet.