Mulai cepat: Membuat dan menerbitkan paket dengan CLI dotnet

Mulai cepat ini menunjukkan kepada Anda cara membuat paket NuGet dengan cepat dari pustaka kelas .NET dan menerbitkannya ke nuget.org dengan menggunakan antarmuka baris perintah .NET, atau CLI dotnet.

Prasyarat

  • .NET SDK, yang menyediakan alat baris perintah dotnet. Mulai dari Visual Studio 2017, CLI dotnet secara otomatis diinstal dengan beban kerja terkait .NET atau .NET Core.

  • Akun gratis di nuget.org. Ikuti instruksi di Menambahkan akun individual baru.

Membuat proyek pustaka kelas

Anda dapat menggunakan proyek Pustaka Kelas .NET yang sudah ada untuk kode yang ingin Anda kemas, atau membuat proyek sederhana sebagai berikut:

  1. Buat folder bernama AppLogger.
  2. Buka perintah dan beralih ke folder AppLogger . Semua perintah CLI dotnet dalam mulai cepat ini berjalan pada folder saat ini secara default.
  3. Masukkan dotnet new classlib, yang membuat proyek dengan nama folder saat ini.

Untuk informasi selengkapnya, lihat dotnet new.

Menambahkan metadata paket ke file proyek

Setiap paket NuGet memiliki manifes yang menjelaskan konten dan dependensi paket. Dalam paket akhir, manifes adalah file .nuspec , yang menggunakan properti metadata NuGet yang Anda sertakan dalam file proyek.

Buka file proyek .csproj, .fproj, atau .vbproj, dan tambahkan properti berikut di dalam tag yang ada<PropertyGroup>. Gunakan nilai Anda sendiri untuk nama dan perusahaan, dan ganti pengidentifikasi paket dengan nilai unik.

<PackageId>Contoso.08.28.22.001.Test</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>

Penting

Pengidentifikasi paket harus unik di seluruh nuget.org dan sumber paket lainnya. Penerbitan membuat paket terlihat secara publik, jadi jika Anda menggunakan contoh pustaka AppLogger atau pustaka pengujian lainnya, gunakan nama unik yang menyertakan Sample atau Test.

Anda dapat menambahkan properti opsional apa pun yang dijelaskan di properti metadata NuGet.

Catatan

Untuk paket yang Anda bangun untuk konsumsi publik, beri perhatian khusus pada PackageTags properti. Tag membantu orang lain menemukan paket Anda dan memahami apa yang dilakukannya.

Jalankan perintah paket

Untuk membangun paket NuGet atau file .nupkg dari proyek, jalankan perintah paket dotnet, yang juga membangun proyek secara otomatis.

dotnet pack

Output menunjukkan jalur ke file .nupkg :

MSBuild version 17.3.0+92e077650 for .NET
  Determining projects to restore...
  Restored C:\Users\myname\source\repos\AppLogger\AppLogger.csproj (in 64 ms).
  AppLogger -> C:\Users\myname\source\repos\AppLogger\bin\Debug\net6.0\AppLogger.dll
  Successfully created package 'C:\Users\myname\source\repos\AppLogger\bin\Debug\Contoso.08.28.22.001.Test.1.0.0.nupkg'.

Membuat paket secara otomatis pada build

Untuk menjalankan dotnet pack secara otomatis setiap kali Anda menjalankan dotnet build, tambahkan baris berikut ke file proyek Anda dalam <PropertyGroup>:

    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>

Menerbitkan paket

Terbitkan file .nupkg Anda ke nuget.org dengan menggunakan perintah dotnet nuget push dengan kunci API yang Anda dapatkan dari nuget.org.

Catatan

  • Nuget.org memindai semua paket yang diunggah untuk virus dan menolak paket jika menemukan virus. Nuget.org juga memindai semua paket terdaftar yang ada secara berkala.

  • Paket yang Anda terbitkan ke nuget.org dapat dilihat secara publik oleh pengembang lain kecuali Anda membatalkannya. Untuk menghosting paket secara privat, lihat Menghosting umpan NuGet Anda sendiri.

Mendapatkan kunci API Anda

  1. Masuk ke akun nuget.org Anda atau buat akun jika Anda belum memilikinya.

  2. Pilih nama pengguna Anda di kanan atas, lalu pilih Kunci API.

  3. Pilih Buat, dan berikan nama untuk kunci Anda.

  4. Di bawah Pilih Cakupan, pilih Dorong.

  5. Di bawah Pilih Pola Glob Paket>, masukkan *.

  6. Pilih Buat.

  7. Pilih Salin untuk menyalin kunci baru.

    Screenshot that shows the new API key with the Copy link.

Penting

  • Selalu rahasiakan kunci API Anda. Kunci API seperti kata sandi yang memungkinkan siapa pun mengelola paket atas nama Anda. Hapus atau regenerasi kunci API Anda jika tidak sengaja terungkap.
  • Simpan kunci Anda di lokasi yang aman, karena Anda tidak dapat menyalin kunci lagi nanti. Jika Anda kembali ke halaman kunci API, Anda perlu meregenerasi kunci untuk menyalinnya. Anda juga dapat menghapus kunci API jika Anda tidak ingin lagi mendorong paket.

Cakupan memungkinkan Anda membuat kunci API terpisah untuk tujuan yang berbeda. Setiap kunci memiliki jangka waktu kedaluwarsa, dan Anda dapat mencakup kunci ke paket atau pola glob tertentu. Anda juga mencakup setiap kunci ke operasi tertentu: Mendorong paket dan versi paket baru, hanya mendorong versi paket baru, atau membatalkan daftar.

Melalui cakupan, Anda dapat membuat kunci API untuk orang yang berbeda yang mengelola paket untuk organisasi Anda sehingga mereka hanya memiliki izin yang mereka butuhkan.

Untuk informasi selengkapnya, lihat kunci API cakupan.

Terbitkan dengan dotnet nuget push

Dari folder yang berisi file .nupkg , jalankan perintah berikut. Tentukan nama file .nupkg Anda, dan ganti nilai kunci dengan kunci API Anda.

dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json

Output menunjukkan hasil proses penerbitan:

Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
  Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.

Untuk informasi selengkapnya, lihat dotnet nuget push.

Catatan

Jika Anda ingin menghindari paket pengujian Anda ditayangkan di nuget.org, Anda dapat mendorong ke situs pengujian nuget.org di https://int.nugettest.org. Perhatikan bahwa paket yang diunggah ke int.nugettest.org mungkin tidak dipertahankan.

Kesalahan penerbitan

Kesalahan dari push perintah biasanya menunjukkan masalahnya. Misalnya, Anda mungkin lupa memperbarui nomor versi di proyek Anda, jadi Anda mencoba menerbitkan paket yang sudah ada.

Anda juga melihat kesalahan jika kunci API Anda tidak valid atau kedaluwarsa, atau jika Anda mencoba menerbitkan paket menggunakan pengidentifikasi yang sudah ada di host. Misalnya, misalnya, pengidentifikasi AppLogger-test sudah ada di nuget.org. Jika Anda mencoba menerbitkan paket dengan pengidentifikasi tersebut push , perintah memberikan kesalahan berikut:

Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).

Jika Anda mendapatkan kesalahan ini, periksa apakah Anda menggunakan kunci API yang valid yang belum kedaluwarsa. Jika anda, kesalahan menunjukkan pengidentifikasi paket sudah ada di host. Untuk memperbaiki kesalahan, ubah pengidentifikasi paket menjadi unik, bangun kembali proyek, buat ulang file .nupkg , dan coba push lagi perintah .

Mengelola paket yang diterbitkan

Ketika paket Anda berhasil diterbitkan, Anda menerima email konfirmasi. Untuk melihat paket yang baru saja Anda terbitkan, pada nuget.org, pilih nama pengguna Anda di kanan atas, lalu pilih Kelola Paket.

Catatan

Mungkin perlu beberapa saat agar paket Anda diindeks dan muncul di hasil pencarian di mana orang lain dapat menemukannya. Selama waktu tersebut, paket Anda muncul di bawah Paket Tidak Tercantum, dan halaman paket memperlihatkan pesan berikut:

Screenshot showing the publishing message that's displayed when you upload a package to nuget.org.

Anda sekarang telah menerbitkan paket NuGet untuk nuget.org yang dapat digunakan pengembang lain dalam proyek mereka.

Jika Anda telah membuat paket yang tidak berguna (seperti paket sampel yang dibuat dengan pustaka kelas kosong), atau Anda memutuskan tidak ingin paket terlihat, Anda dapat membatalkan daftar paket untuk menyembunyikannya dari hasil pencarian:

  1. Setelah paket muncul di bawah Paket yang Diterbitkan pada halaman Kelola Paket, pilih ikon pensil di samping daftar paket.

    Screenshot that shows the Edit icon for a package listing on nuget.org.

  2. Pada halaman berikutnya, pilih Daftar, batal pilih kotak centang Daftar di hasil pencarian, lalu pilih Simpan.

    Screenshot that shows clearing the List checkbox for a package on nuget.org.

Paket sekarang muncul di bawah Paket Tidak Tercantum di Kelola Paket dan tidak lagi muncul di hasil pencarian.

Catatan

Untuk menghindari paket pengujian Anda ditayangkan di nuget.org, Anda dapat mendorong ke situs pengujian nuget.org di https://int.nugettest.org. Perhatikan bahwa paket yang diunggah ke int.nugettest.org mungkin tidak dipertahankan.

Selamat membuat dan menerbitkan paket NuGet pertama Anda!

Temukan video NuGet lainnya di Channel 9 dan YouTube.

Langkah berikutnya

Lihat detail selengkapnya tentang cara membuat paket dengan CLI dotnet:

Dapatkan informasi selengkapnya tentang membuat dan menerbitkan paket NuGet: