Mulai cepat: Membuat dan menerbitkan paket dengan CLI dotnet

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

Prasyarat

  • SDK .NET, yang menyediakan alat baris perintah dotnet. Mulai 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 perpustakaan 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 panduan memulai cepat ini berjalan di 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, .fsproj, 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.

Note

Untuk paket yang Anda bangun untuk konsumsi publik, beri perhatian khusus pada properti PackageTags. 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.

Note

  • Nuget.org memindai semua paket yang diunggah untuk virus dan menolak paket apa pun yang berisi 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 membatalkan daftar paket tersebut. Untuk menghosting paket secara privat, lihat Menghosting umpan NuGet Anda sendiri.

Dapatkan kunci API Anda

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

  2. Di sudut kanan atas, pilih nama pengguna Anda, lalu pilih Kunci API.

  3. Pilih Buat, lalu masukkan nama untuk kunci Anda.

  4. Di bawah Pilih Cakupan, pilih Push.

  5. Di bawah Pilih Paket, untuk Pola Glob, masukkan tanda bintang (*).

  6. Pilih Buat.

  7. Pilih Salin untuk menyalin kunci baru.

    Cuplikan layar halaman nuget.org yang menampilkan kunci API baru, pesan tentang menyalin kunci sekarang, dan tombol Salin, yang disorot.

Penting

  • Selalu rahasiakan kunci API Anda. Kunci API seperti kata sandi yang dapat digunakan siapa pun untuk 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 lagi ingin mengirimkan paket.

Cakupan menyediakan cara untuk membuat kunci API terpisah untuk tujuan yang berbeda. Setiap kunci memiliki jangka waktu kedaluwarsa, dan Anda dapat menetapkan cakupan kunci ke paket tertentu atau pola glob tertentu. Anda juga menentukan ruang lingkup setiap kunci ke operasi tertentu: mengunggah paket dan versi paket baru, hanya mengunggah versi paket baru, atau menghapus dari 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.

Publikasikan dengan dotnet nuget push

Dari folder yang berisi file .nupkg , jalankan perintah berikut. Ganti <package-file> dengan nama file .nupkg Anda, dan ganti <API-key> dengan kunci API Anda.

dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json

Output menunjukkan hasil proses penerbitan:

Pushing <package-file> to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
  Created https://www.nuget.org/api/v2/package/ 2891ms
Your package was pushed.

Untuk informasi selengkapnya, lihat dotnet nuget push.

Kesalahan saat mempublikasikan

Saat menjalankan push perintah, Anda terkadang mengalami kesalahan. Misalnya, Anda mungkin mendapatkan kesalahan dalam situasi berikut:

  • Kunci API Anda tidak valid atau kedaluwarsa.
  • Anda mencoba menerbitkan paket yang memiliki pengidentifikasi yang sudah ada di host.
  • Anda membuat perubahan pada paket yang diterbitkan, tetapi Anda lupa memperbarui nomor versi sebelum mencoba menerbitkannya lagi.

Pesan kesalahan biasanya menunjukkan sumber masalah.

Misalnya, pengidentifikasi Contoso.App.Logger.Test ada di nuget.org. Jika Anda mencoba menerbitkan paket dengan pengidentifikasi tersebut, Anda akan mendapatkan 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.).

Untuk mengatasi situasi ini, periksa cakupan, tanggal kedaluwarsa, dan nilai kunci API Anda. Jika kunci valid, kesalahan menunjukkan bahwa pengidentifikasi paket sudah ada di host. Untuk mengatasi masalah, 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 diterbitkan, buka nuget.org, pilih nama pengguna Anda di sudut kanan atas, lalu pilih Kelola Paket.

Note

Mungkin perlu waktu 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:

Cuplikan layar pesan peringatan nuget.org tentang paket yang belum diterbitkan. Teks menyatakan bahwa validasi dan pengindeksan dapat memakan waktu satu jam.

Sekarang setelah paket NuGet Anda diterbitkan di nuget.org, pengembang lain dapat menggunakannya dalam proyek mereka.

Jika Anda membuat paket yang tidak berguna (seperti paket sampel ini dari pustaka kelas kosong), atau jika Anda 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.

    Cuplikan layar halaman Paket nuget.org. Bagian Paket yang Diterbitkan mencantumkan satu paket. Ikon edit disorot.

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

    Cuplikan layar halaman nuget.org. Di bagian Daftar, opsi untuk mencantumkan paket dalam hasil pencarian disorot.

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

Note

Untuk menghindari paket pengujian Anda dipublikasikan di nuget.org, Anda dapat mengunggahnya ke situs pengujian nuget.org di https://int.nugettest.org. Perhatikan bahwa paket yang diunggah ke int.nugettest.org mungkin tidak akan 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: