Membuat paket menggunakan CLI nuget.exe
Tidak peduli apa yang dilakukan paket Anda atau kode apa yang dikandungnya, Anda menggunakan salah satu alat CLI, baik nuget.exe
atau dotnet.exe
, untuk mengemas fungsionalitas tersebut ke dalam komponen yang dapat dibagikan dengan dan digunakan oleh sejumlah pengembang lain. Untuk menginstal alat NuGet CLI, lihat Menginstal alat klien NuGet. Perhatikan bahwa Visual Studio tidak secara otomatis menyertakan alat CLI.
Untuk proyek bergaya non-SDK, biasanya proyek .NET Framework, ikuti langkah-langkah yang dijelaskan dalam artikel ini untuk membuat paket. Untuk instruksi langkah demi langkah menggunakan Visual Studio dan
nuget.exe
CLI, lihat Membuat dan menerbitkan paket .NET Framework.Untuk proyek .NET Core dan .NET Standard yang menggunakan format gaya SDK, dan proyek gaya SDK lainnya, lihat Membuat paket NuGet menggunakan CLI dotnet.
Untuk proyek yang dimigrasikan dari
packages.config
ke PackageReference, gunakan msbuild -t:pack.
Secara teknis, paket NuGet hanyalah file ZIP yang telah diganti namanya dengan ekstensi dan kontennya cocok dengan .nupkg
konvensi tertentu. Topik ini menjelaskan proses terperinci pembuatan paket yang memenuhi konvensi tersebut.
Pengemasan dimulai dengan kode yang dikompilasi (rakitan), simbol, dan/atau file lain yang ingin Anda kirim sebagai paket (lihat Gambaran Umum dan alur kerja). Proses ini independen dari mengkompilasi atau menghasilkan file yang masuk ke paket, meskipun Anda dapat menarik dari informasi dalam file proyek untuk menjaga rakitan dan paket yang dikompilasi tetap sinkron.
Penting
Topik ini berlaku untuk proyek bergaya non-SDK, biasanya proyek selain proyek .NET Core dan .NET Standard menggunakan Visual Studio 2017 dan versi yang lebih tinggi dan NuGet 4.0+.
Memutuskan rakitan mana yang akan dibungkus
Sebagian besar paket tujuan umum berisi satu atau beberapa rakitan yang dapat digunakan pengembang lain dalam proyek mereka sendiri.
Secara umum, yang terbaik adalah memiliki satu rakitan per paket NuGet, asalkan setiap rakitan berguna secara independen. Misalnya, jika Anda memiliki
Utilities.dll
yang bergantung padaParser.dll
, danParser.dll
berguna sendiri, maka buat satu paket untuk masing-masing paket. Melakukannya memungkinkan pengembang untuk menggunakanParser.dll
secara independen dariUtilities.dll
.Jika pustaka Anda terdiri dari beberapa rakitan yang tidak berguna secara independen, maka tidak masalah untuk menggabungkannya menjadi satu paket. Menggunakan contoh sebelumnya, jika
Parser.dll
berisi kode yang hanya digunakan olehUtilities.dll
, maka tidak masalah untuk disimpanParser.dll
dalam paket yang sama.Demikian pula, jika
Utilities.dll
tergantung padaUtilities.resources.dll
, di mana lagi yang terakhir tidak berguna sendiri, maka letakkan keduanya dalam paket yang sama.
Sumber daya, pada kenyataannya, kasus khusus. Ketika paket diinstal ke dalam proyek, NuGet secara otomatis menambahkan referensi rakitan ke DLL paket, tidak termasuk yang dinamai .resources.dll
karena diasumsikan sebagai rakitan satelit yang dilokalkan (lihat Membuat paket yang dilokalkan). Untuk alasan ini, hindari penggunaan .resources.dll
untuk file yang berisi kode paket penting.
Jika pustaka Anda berisi rakitan interop COM, ikuti panduan tambahan dalam Membuat paket dengan rakitan interop COM.
Peran dan struktur file .nuspec
Setelah Anda mengetahui file apa yang ingin Anda kemas, langkah berikutnya adalah membuat manifes paket dalam .nuspec
file XML.
Manifes:
- Menjelaskan konten paket dan disertakan dalam paket itu sendiri.
- Mendorong pembuatan paket dan menginstruksikan NuGet tentang cara menginstal paket ke dalam proyek. Misalnya, manifes mengidentifikasi dependensi paket lain sehingga NuGet juga dapat menginstal dependensi tersebut saat paket utama diinstal.
- Berisi properti yang diperlukan dan opsional seperti yang dijelaskan di bawah ini. Untuk detail yang tepat, termasuk properti lain yang tidak disebutkan di sini, lihat referensi .nuspec.
Properti yang diperlukan:
- Pengidentifikasi paket, yang harus unik di seluruh galeri yang menghosting paket.
- Nomor versi tertentu dalam formulir Major.Minor.Patch[-Suffix] di mana -Suffix mengidentifikasi versi pra-rilis
- Judul paket seperti yang akan muncul di host (seperti nuget.org)
- Informasi penulis dan pemilik.
- Deskripsi paket yang panjang.
Properti opsional umum:
- Catatan rilis
- Informasi hak cipta
- Deskripsi singkat untuk UI Pengelola Paket di Visual Studio
- ID lokal
- URL Proyek
- Lisensi sebagai ekspresi atau file (
licenseUrl
tidak digunakan lagi, gunakanlicense
elemen metadata nuspec sebagai gantinya) - File ikon (
iconUrl
tidak digunakan lagi menggunakanicon
elemen metadata nuspec sebagai gantinya) - Daftar dependensi dan referensi
- Tag yang membantu pencarian galeri
Berikut ini adalah file umum (tetapi fiktif), .nuspec
dengan komentar yang menjelaskan properti:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Identifier that must be unique within the hosting gallery -->
<id>Contoso.Utility.UsefulStuff</id>
<!-- Package version number that is used when resolving dependencies -->
<version>1.8.3</version>
<!-- Authors contain text that appears directly on the gallery -->
<authors>Dejana Tesic, Rajeev Dey</authors>
<!--
Owners are typically nuget.org identities that allow gallery
users to easily find other packages by the same owners.
-->
<owners>dejanatc, rjdey</owners>
<!-- Project URL provides a link for the gallery -->
<projectUrl>http://github.com/contoso/UsefulStuff</projectUrl>
<!-- License information is displayed on the gallery -->
<license type="expression">Apache-2.0</license>
<!-- Icon is used in Visual Studio's package manager UI -->
<icon>icon.png</icon>
<!--
If true, this value prompts the user to accept the license when
installing the package.
-->
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<!-- Any details about this particular release -->
<releaseNotes>Bug fixes and performance improvements</releaseNotes>
<!--
The description can be used in package manager UI. Note that the
nuget.org gallery uses information you add in the portal.
-->
<description>Core utility functions for web applications</description>
<!-- Copyright information -->
<copyright>Copyright ©2016 Contoso Corporation</copyright>
<!-- Tags appear in the gallery and can be used for tag searches -->
<tags>web utility http json url parsing</tags>
<!-- Dependencies are automatically installed when the package is installed -->
<dependencies>
<dependency id="Newtonsoft.Json" version="9.0" />
</dependencies>
</metadata>
<!-- A readme.txt to display when the package is installed -->
<files>
<file src="readme.txt" target="" />
<file src="icon.png" target="" />
</files>
</package>
Untuk detail tentang mendeklarasikan dependensi dan menentukan nomor versi, lihat packages.config dan Penerapan versi paket. Dimungkinkan juga untuk memunculkan aset dari dependensi langsung dalam paket dengan menggunakan include
atribut dan exclude
pada dependency
elemen . Lihat Referensi .nuspec - Dependensi.
Karena manifes disertakan dalam paket yang dibuat darinya, Anda dapat menemukan sejumlah contoh tambahan dengan memeriksa paket yang ada. Sumber yang baik adalah folder paket global di komputer Anda, lokasi yang dikembalikan oleh perintah berikut:
nuget locals -list global-packages
Masuk ke folder package\version apa pun, salin .nupkg
file ke .zip
file, lalu buka file tersebut .zip
dan periksa di .nuspec
dalamnya.
Catatan
Saat membuat .nuspec
dari proyek Visual Studio, manifes berisi token yang diganti dengan informasi dari proyek saat paket dibuat. Lihat Membuat .nuspec dari proyek Visual Studio.
Membuat file .nuspec
Membuat manifes lengkap biasanya dimulai dengan file dasar .nuspec
yang dihasilkan melalui salah satu metode berikut:
Anda kemudian mengedit file dengan tangan sehingga menjelaskan konten yang tepat yang Anda inginkan dalam paket akhir.
Penting
File yang dihasilkan berisi tempat penampung yang harus dimodifikasi .nuspec
sebelum membuat paket dengan nuget pack
perintah . Perintah tersebut .nuspec
gagal jika berisi tempat penampung apa pun.
Dari direktori kerja berbasis konvensi
Karena paket NuGet hanyalah file ZIP yang telah diganti namanya dengan .nupkg
ekstensi, seringkali paling mudah untuk membuat struktur folder yang Anda inginkan pada sistem file lokal Anda, lalu membuat file langsung dari struktur tersebut .nuspec
. Perintah nuget pack
kemudian secara otomatis menambahkan semua file dalam struktur folder tersebut (tidak termasuk folder apa pun yang dimulai dengan .
, memungkinkan Anda untuk menyimpan file privat dalam struktur yang sama).
Keuntungan dari pendekatan ini adalah Anda tidak perlu menentukan dalam manifes file mana yang ingin Anda sertakan dalam paket (seperti yang dijelaskan nanti dalam topik ini). Anda cukup membuat proses build menghasilkan struktur folder yang tepat yang masuk ke paket, dan Anda dapat dengan mudah menyertakan file lain yang mungkin bukan bagian dari proyek jika tidak:
- Konten dan kode sumber yang harus disuntikkan ke dalam proyek target.
- Skrip PowerShell
- Transformasi ke konfigurasi dan file kode sumber yang ada dalam proyek.
Konvensi folder adalah sebagai berikut:
Folder | Deskripsi | Tindakan saat penginstalan paket |
---|---|---|
(root) | Lokasi untuk readme.txt | Visual Studio menampilkan file readme.txt di akar paket saat paket diinstal. |
lib/{tfm} | File Assembly (.dll ), dokumentasi (.xml ), dan simbol (.pdb ) untuk Moniker Kerangka Kerja Target (TFM) yang diberikan |
Rakitan ditambahkan sebagai referensi untuk kompilasi serta runtime; .xml dan .pdb disalin ke dalam folder proyek. Lihat Mendukung beberapa kerangka kerja target untuk membuat sub-folder khusus target kerangka kerja. |
ref/{tfm} | File Assembly (.dll ), dan simbol (.pdb ) untuk Moniker Kerangka Kerja Target (TFM) yang diberikan |
Rakitan ditambahkan sebagai referensi hanya untuk waktu kompilasi; Jadi tidak ada yang akan disalin ke dalam folder bin proyek. |
runtimes | Rakitan khusus arsitektur (.dll ), simbol (.pdb ), dan file sumber daya asli (.pri ) |
Rakitan ditambahkan sebagai referensi hanya untuk runtime; file lain disalin ke dalam folder proyek. Harus selalu ada perakitan khusus (TFM) AnyCPU yang sesuai di bawah /ref/{tfm} folder untuk menyediakan rakitan waktu kompilasi yang sesuai. Lihat Mendukung beberapa kerangka kerja target. |
konten | File arbitrer | Isi disalin ke akar proyek. Anggap folder konten sebagai akar aplikasi target yang pada akhirnya mengonsumsi paket. Agar paket menambahkan gambar di folder /images aplikasi, letakkan di folder konten/gambar paket. |
build | (3.x+) MSBuild .targets dan .props file |
Secara otomatis dimasukkan ke dalam proyek. |
buildMultiTargeting | (4.0+) MSBuild .targets dan .props file untuk penargetan lintas kerangka kerja |
Secara otomatis dimasukkan ke dalam proyek. |
buildTransitive | (5.0+) MSBuild .targets dan .props file yang mengalir secara transitif ke proyek apa pun yang mengkonsumsi. Lihat halaman fitur. |
Secara otomatis dimasukkan ke dalam proyek. |
alat | Skrip dan program Powershell yang dapat diakses dari Package Manager Console | Folder tools ditambahkan ke PATH variabel lingkungan hanya untuk Konsol Manajer Paket (Khususnya, bukan sebagaimana PATH diatur untuk MSBuild saat membangun proyek). |
Karena struktur folder Anda dapat berisi sejumlah rakitan untuk sejumlah kerangka kerja target, metode ini diperlukan saat membuat paket yang mendukung beberapa kerangka kerja.
Bagaimanapun, setelah Anda memiliki struktur folder yang diinginkan, jalankan perintah berikut di folder tersebut .nuspec
untuk membuat file:
nuget spec
Sekali lagi, yang dihasilkan .nuspec
tidak berisi referensi eksplisit ke file dalam struktur folder. NuGet secara otomatis menyertakan semua file saat paket dibuat. Namun, Anda masih perlu mengedit nilai tempat penampung di bagian lain dari manifes.
Dari DLL rakitan
Dalam kasus sederhana membuat paket dari rakitan, Anda dapat membuat .nuspec
file dari metadata di rakitan menggunakan perintah berikut:
nuget spec <assembly-name>.dll
Menggunakan formulir ini menggantikan beberapa tempat penampung dalam manifes dengan nilai tertentu dari perakitan. Misalnya, <id>
properti diatur ke nama rakitan, dan <version>
diatur ke versi rakitan. Properti lain dalam manifes, bagaimanapun, tidak memiliki nilai yang cocok dalam perakitan dan dengan demikian masih berisi tempat penampung.
Dari proyek Visual Studio
.nuspec
Membuat dari .csproj
file atau .vbproj
nyaman karena paket lain yang telah diinstal ke dalam proyek tersebut secara otomatis dirujuk sebagai dependensi. Cukup gunakan perintah berikut di folder yang sama dengan file proyek:
# Use in a folder containing a project file <project-name>.csproj or <project-name>.vbproj
nuget spec
File yang <project-name>.nuspec
dihasilkan berisi token yang diganti pada waktu pengemasan dengan nilai dari proyek, termasuk referensi ke paket lain yang telah diinstal.
Jika Anda memiliki dependensi paket untuk disertakan dalam .nuspec, sebagai gantinya gunakan nuget pack
, dan dapatkan file .nuspec dari dalam file .nupkg yang dihasilkan. Misalnya, gunakan perintah berikut.
# Use in a folder containing a project file <project-name>.csproj or <project-name>.vbproj
nuget pack myproject.csproj
Token dibatasi oleh $
simbol di kedua sisi properti proyek. Misalnya, <id>
nilai dalam manifes yang dihasilkan dengan cara ini biasanya muncul sebagai berikut:
<id>$id$</id>
Token ini diganti dengan AssemblyName
nilai dari file proyek pada waktu pengemasan. Untuk pemetaan nilai proyek ke .nuspec
token yang tepat, lihat referensi Token Pengganti.
Token meringankan Anda dari kebutuhan untuk memperbarui nilai penting seperti nomor versi di .nuspec
saat Anda memperbarui proyek. (Anda selalu dapat mengganti token dengan nilai harfiah, jika diinginkan).
Perhatikan bahwa ada beberapa opsi pengemasan tambahan yang tersedia saat bekerja dari proyek Visual Studio, seperti yang dijelaskan dalam Menjalankan paket nuget untuk menghasilkan file .nupkg nanti.
Paket tingkat solusi
NuGet 2.x saja. Tidak tersedia di NuGet 3.0+.
NuGet 2.x mendukung gagasan paket tingkat solusi yang menginstal alat atau perintah tambahan untuk Konsol tools
Manajer Paket (konten folder), tetapi tidak menambahkan referensi, konten, atau kustomisasi build ke proyek apa pun dalam solusi. Paket tersebut tidak berisi file dalam folder langsung lib
, , atau build
, dan tidak ada dependensinya yang memiliki file di folder , , content
atau build
masing-masinglib
content
.
NuGet melacak paket tingkat solusi yang packages.config
diinstal dalam file di .nuget
folder, bukan file proyek packages.config
.
File baru dengan nilai default
Perintah berikut membuat manifes default dengan tempat penampung, yang memastikan Anda memulai dengan struktur file yang tepat:
nuget spec [<package-name>]
Jika Anda menghilangkan <nama> paket, file yang dihasilkan adalah Package.nuspec
. Jika Anda memberikan nama seperti Contoso.Utility.UsefulStuff
, filenya adalah Contoso.Utility.UsefulStuff.nuspec
.
Yang dihasilkan .nuspec
berisi tempat penampung untuk nilai seperti projectUrl
. Pastikan untuk mengedit file sebelum menggunakannya untuk membuat file akhir .nupkg
.
Pilih pengidentifikasi paket unik dan atur nomor versi
Pengidentifikasi paket (<id>
elemen) dan nomor versi (<version>
elemen) adalah dua nilai terpenting dalam manifes karena secara unik mengidentifikasi kode yang tepat yang terkandung dalam paket.
Praktik terbaik untuk pengidentifikasi paket:
- Keunikan: Pengidentifikasi harus unik di seluruh nuget.org atau galeri apa pun yang menghosting paket. Sebelum memutuskan pengidentifikasi, cari galeri yang berlaku untuk memeriksa apakah nama sudah digunakan. Untuk menghindari konflik, pola yang baik adalah menggunakan nama perusahaan Anda sebagai bagian pertama dari pengidentifikasi, seperti
Contoso.
. - Nama seperti namespace layanan: Ikuti pola yang mirip dengan namespace di .NET, menggunakan notasi titik alih-alih tanda hubung. Misalnya, gunakan
Contoso.Utility.UsefulStuff
daripadaContoso-Utility-UsefulStuff
atauContoso_Utility_UsefulStuff
. Konsumen juga merasa berguna ketika pengidentifikasi paket cocok dengan namespace yang digunakan dalam kode. - Paket Sampel: Jika Anda menghasilkan paket kode sampel yang menunjukkan cara menggunakan paket lain, lampirkan
.Sample
sebagai akhiran ke pengidentifikasi, seperti dalamContoso.Utility.UsefulStuff.Sample
. (Paket sampel tentu saja akan memiliki dependensi pada paket lain.) Saat membuat paket sampel, gunakan metode direktori kerja berbasis konvensi yang dijelaskan sebelumnya.content
Di folder , atur kode sampel dalam folder yang disebut\Samples\<identifier>
sebagai di\Samples\Contoso.Utility.UsefulStuff.Sample
.
Praktik terbaik untuk versi paket:
- Secara umum, atur versi paket agar sesuai dengan pustaka, meskipun ini tidak diperlukan secara ketat. Ini adalah masalah sederhana ketika Anda membatasi paket ke satu rakitan, seperti yang dijelaskan sebelumnya dalam Memutuskan rakitan mana yang akan dikemas. Secara keseluruhan, ingatlah bahwa NuGet sendiri menangani versi paket saat menyelesaikan dependensi, bukan versi rakitan.
- Saat menggunakan skema versi non-standar, pastikan untuk mempertimbangkan aturan penerapan versi NuGet seperti yang dijelaskan dalam Penerapan versi Paket.
Serangkaian posting blog singkat berikut ini juga berguna untuk memahami penerapan versi:
Menambahkan readme dan file lainnya
Untuk secara langsung menentukan file yang akan disertakan dalam paket, gunakan simpul <files>
dalam .nuspec
file, yang mengikuti <metadata>
tag:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- ... -->
</metadata>
<files>
<!-- Add a readme -->
<file src="readme.txt" target="" />
<!-- Add files from an arbitrary folder that's not necessarily in the project -->
<file src="..\..\SomeRoot\**\*.*" target="" />
</files>
</package>
Tip
Saat menggunakan pendekatan direktori kerja berbasis konvensi, Anda dapat menempatkan readme.txt di akar paket dan konten lainnya di content
folder. Tidak ada <file>
elemen yang diperlukan dalam manifes.
Saat Anda menyertakan file bernama readme.txt
di akar paket, Visual Studio menampilkan konten file tersebut sebagai teks biasa segera setelah menginstal paket secara langsung. (File readme tidak ditampilkan untuk paket yang diinstal sebagai dependensi). Misalnya, berikut adalah bagaimana readme untuk paket HtmlAgilityPack muncul:
Catatan
Jika Anda menyertakan simpul kosong <files>
dalam .nuspec
file, NuGet tidak menyertakan konten lain dalam paket selain apa yang ada di lib
folder.
Menyertakan alat peraga dan target MSBuild dalam paket
Dalam beberapa kasus, Anda mungkin ingin menambahkan target atau properti build kustom dalam proyek yang menggunakan paket Anda, seperti menjalankan alat atau proses kustom selama build. Anda dapat mempelajari selengkapnya tentang alat peraga dan target MSBuild dalam paket NuGet
Buat <package_id>.targets
atau <package_id>.props
(seperti Contoso.Utility.UsefulStuff.targets
) dalam folder build proyek.
Kemudian dalam .nuspec
file, pastikan untuk merujuk ke file-file ini di simpul <files>
:
<?xml version="1.0"?>
<package >
<metadata minClientVersion="2.5">
<!-- ... -->
</metadata>
<files>
<!-- Include everything in \build -->
<file src="build\**" target="build" />
<!-- Other files -->
<!-- ... -->
</files>
</package>
Ketika paket ditambahkan ke proyek, NuGet akan secara otomatis menyertakan alat peraga dan target ini.
Jalankan paket nuget untuk menghasilkan file .nupkg
Saat menggunakan assembly atau direktori kerja berbasis konvensi, buat paket dengan menjalankan nuget pack
dengan file Anda .nuspec
, mengganti <project-name>
dengan nama file spesifik Anda:
nuget pack <project-name>.nuspec
Saat menggunakan proyek Visual Studio, jalankan nuget pack
dengan file proyek Anda, yang secara otomatis memuat file proyek .nuspec
dan mengganti token apa pun di dalamnya menggunakan nilai dalam file proyek:
nuget pack <project-name>.csproj
Catatan
Menggunakan file proyek secara langsung diperlukan untuk penggantian token karena proyek adalah sumber nilai token. Penggantian token tidak terjadi jika Anda menggunakan nuget pack
dengan .nuspec
file.
Dalam semua kasus, nuget pack
kecualikan folder yang dimulai dengan titik, seperti .git
atau .hg
.
NuGet menunjukkan apakah ada kesalahan dalam .nuspec
file yang perlu dikoreksi, seperti lupa mengubah nilai tempat penampung dalam manifes.
Setelah nuget pack
berhasil, Anda memiliki .nupkg
file yang dapat Anda terbitkan ke galeri yang sesuai seperti yang dijelaskan dalam Menerbitkan Paket.
Tip
Cara yang berguna untuk memeriksa paket setelah membuatnya adalah dengan membukanya di alat Penjelajah Paket. Ini memberi Anda tampilan grafis konten paket dan manifesnya. Anda juga dapat mengganti nama file yang dihasilkan .nupkg
menjadi .zip
file dan menjelajahi kontennya secara langsung.
Opsi tambahan
Anda dapat menggunakan berbagai sakelar baris perintah dengan nuget pack
untuk mengecualikan file, mengambil alih nomor versi dalam manifes, dan mengubah folder output, di antara fitur lainnya. Untuk daftar lengkapnya, lihat referensi perintah paket.
Opsi berikut adalah beberapa yang umum dengan proyek Visual Studio:
Proyek yang dirujuk: Jika proyek mereferensikan proyek lain, Anda dapat menambahkan proyek yang dirujuk sebagai bagian dari paket, atau sebagai dependensi, dengan menggunakan
-IncludeReferencedProjects
opsi :nuget pack MyProject.csproj -IncludeReferencedProjects
Proses penyertaan ini rekursif, jadi jika
MyProject.csproj
mereferensikan proyek B dan C, dan proyek tersebut mereferensikan D, E, dan F, maka file dari B, C, D, E, dan F disertakan dalam paket.Jika proyek yang dirujuk menyertakan
.nuspec
file sendiri, Maka NuGet menambahkan proyek yang dirujuk sebagai dependensi sebagai gantinya. Anda perlu mengemas dan menerbitkan proyek tersebut secara terpisah.Konfigurasi build: Secara default, NuGet menggunakan konfigurasi build default yang diatur dalam file proyek, biasanya Debug. Untuk mengemas file dari konfigurasi build yang berbeda, seperti Rilis, gunakan
-properties
opsi dengan konfigurasi:nuget pack MyProject.csproj -properties Configuration=Release
Simbol: untuk menyertakan simbol yang memungkinkan konsumen untuk menelusuri kode paket Anda di debugger, gunakan
-Symbols
opsi :nuget pack MyProject.csproj -symbols
Penginstalan paket pengujian
Sebelum menerbitkan paket, Anda biasanya ingin menguji proses penginstalan paket ke dalam proyek. Pengujian memastikan bahwa semua file yang diperlukan berakhir di tempat yang benar dalam proyek.
Anda dapat menguji penginstalan secara manual di Visual Studio atau di baris perintah menggunakan langkah-langkah penginstalan paket normal.
Untuk pengujian otomatis, proses dasarnya adalah sebagai berikut:
.nupkg
Salin file ke folder lokal.- Tambahkan folder ke sumber paket Anda menggunakan
nuget sources add -name <name> -source <path>
perintah (lihat sumber nuget). Perhatikan bahwa Anda hanya perlu mengatur sumber lokal ini sekali pada komputer tertentu. - Instal paket dari sumber tersebut menggunakan
nuget install <packageID> -source <name>
di mana<name>
cocok dengan nama sumber Anda seperti yang diberikan kepadanuget sources
. Menentukan sumber memastikan bahwa paket diinstal dari sumber tersebut saja. - Periksa sistem file Anda untuk memeriksa apakah file terinstal dengan benar.
Langkah berikutnya
Setelah membuat paket, yang merupakan .nupkg
file, Anda dapat menerbitkannya ke galeri pilihan Anda seperti yang dijelaskan di Menerbitkan Paket.
Anda mungkin juga ingin memperluas kemampuan paket Anda atau mendukung skenario lain seperti yang dijelaskan dalam topik berikut:
- Penerapan versi paket
- Mendukung beberapa kerangka kerja target
- Transformasi file sumber dan konfigurasi
- Pelokalan
- Versi pra-rilis
- Atur jenis paket
- Membuat paket dengan rakitan interop COM
Terakhir, ada jenis paket tambahan yang perlu diperhatikan: