Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tidak peduli apa yang dilakukan paket Anda atau kode apa yang dikandungnya, Anda menggunakan salah satu alat antarmuka baris perintah (CLI), baik nuget.exe atau dotnet.exe, untuk mengemas fungsionalitas tersebut ke dalam komponen yang dapat dibagikan dengan dan digunakan oleh pengembang lain. Untuk menginstal alat NuGet CLI, lihat Menginstal alat klien NuGet. Visual Studio tidak secara otomatis menyertakan alat CLI.
Untuk proyek bergaya non-SDK, biasanya .NET proyek Framework, ikuti langkah-langkah yang dijelaskan dalam artikel ini untuk membuat paket. Panduan cepat yang menyediakan panduan langkah demi langkah untuk menggunakan Visual Studio dan CLI
nuget.exe, lihat Quickstart: Create and publish a package using Visual Studio (.NET Framework, Windows).Untuk proyek .NET Core dan .NET Standard yang menggunakan format gaya SDK, dan proyek gaya SDK lainnya, lihat Buat paket NuGet dengan CLI dotnet.
Untuk proyek yang dimigrasikan dari
packages.configkePackageReference, gunakanmsbuild -t:packperintah .
Secara teknis, paket NuGet adalah file ZIP yang telah diganti namanya menjadi ekstensi .nupkg dan kontennya cocok dengan konvensi tertentu. Artikel ini menjelaskan proses terperinci pembuatan paket yang memenuhi konvensi tersebut.
Pengemasan dimulai dengan kode yang dikompilasi (rakitan), simbol, dan file lain yang ingin Anda kirim sebagai paket. Untuk gambaran umum proses pengemasan, lihat Alur kerja pembuatan paket. Proses ini independen dari mengkompilasi atau menghasilkan file yang masuk ke paket. Tetapi Anda dapat mengambil informasi dari file proyek untuk menjaga rakitan dan paket yang dikompilasi tetap sinkron.
Penting
Artikel ini berlaku untuk proyek bergaya non-SDK, biasanya proyek selain proyek .NET Core dan .NET Standard yang menggunakan Visual Studio 2017 dan versi yang lebih baru 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, pertimbangkan kasus-kasus berikut yang melibatkan assembly yang disebut Utilities.dll yang bergantung pada rakitan yang disebut Parser.dll:
Jika Parser.dll berguna sendiri, buat satu paket untuk Utilities.dll dan satu untuk Parser.dll. Melakukannya memungkinkan pengembang untuk menggunakan Parser.dll secara independen dari Utilities.dll.
Jika Parser.dll berisi kode yang hanya digunakan oleh Utilities.dll, tidak masalah untuk menyimpan Parser.dll dalam paket yang sama. Secara umum, jika pustaka Anda terdiri dari beberapa rakitan yang tidak berguna secara independen, tidak masalah untuk menggabungkannya menjadi satu paket.
Jika Utilities.dll juga bergantung pada Utilities.resources.dll, dan Utilities.resources.dll tidak berguna sendiri, letakkan keduanya dalam paket yang sama.
Sumber daya, seperti rakitan Utilities.resources.dll dalam contoh sebelumnya, adalah kasus khusus. Ketika paket diinstal ke dalam proyek, NuGet secara otomatis menambahkan referensi rakitan ke DLL paket, tidak termasuk yang diberi nama .resources.dll, karena diasumsikan sebagai rakitan satelit yang dilokalkan. Untuk informasi selengkapnya tentang versi pustaka yang dilokalkan, lihat Membuat paket NuGet yang dilokalkan. Untuk alasan ini, hindari menggunakan .resources.dll untuk file yang berisi kode paket penting.
Jika pustaka Anda berisi rakitan interop Component Object Model (COM), ikuti panduan tambahan dalam Membuat paket NuGet yang berisi rakitan interop COM.
Peran dan struktur file .nuspec
Ketika Anda mengetahui file apa yang ingin Anda paketkan, langkah selanjutnya adalah membuat manifes paket dalam file XML .nuspec .
Manifesto
- Menjelaskan konten paket dan disertakan dalam paket itu sendiri.
- Mendorong pembuatan paket dan memberi tahu NuGet 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 bagian lainnya. Untuk informasi terperinci, termasuk properti lain yang tidak disebutkan di sini, lihat referensi .nuspec.
Properti berikut diperlukan di dalam manifes:
- ID 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
- Deskripsi paket yang panjang
Properti berikut adalah properti opsional umum:
- Catatan rilis.
- Informasi hak cipta.
- Deskripsi singkat untuk UI Package Manager dalam Visual Studio.
- ID lokal.
- URL proyek.
- Lisensi sebagai pernyataan atau file. Properti
licenseUrltidak digunakan lagi.licenseGunakan elemen metadata nuspec sebagai gantinya. - File README.
- File ikon. Properti
iconUrltidak digunakan lagi.iconGunakan elemen metadata nuspec sebagai gantinya. - Daftar dependensi dan referensi.
- Tag yang membantu pencarian galeri.
Kode berikut adalah file .nuspec khas (tetapi fiktif), dengan komentar yang menjelaskan properti:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<!-- An identifier that must be unique within the hosting gallery -->
<id>Contoso.Utility.UsefulStuff</id>
<!-- A package version number that's used when resolving dependencies -->
<version>1.8.3</version>
<!-- A comma-separated list of package authors that sometimes appears directly on the gallery -->
<authors>Dejana Tesic, Rajeev Dey</authors>
<!-- A project URL that provides a link for the gallery -->
<projectUrl>http://github.com/contoso/UsefulStuff</projectUrl>
<!-- License information that's displayed on the gallery -->
<license type="expression">Apache-2.0</license>
<!-- The location of a read-me file that's displayed in the Visual Studio Package Manager UI -->
<readme>readme.md</readme>
<!-- An icon that's used in the Visual Studio Package Manager UI -->
<icon>icon.png</icon>
<!--
A property that when true, prompts the user to accept the license when
installing the package
-->
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<!-- Detailed information about a particular release -->
<releaseNotes>Bug fixes and performance improvements</releaseNotes>
<!--
A description that can be used in the Package Manager UI. The
nuget.org gallery uses information you add in the portal.
-->
<description>Core utility functions for web applications</description>
<!-- Copyright information -->
<copyright>Copyright ©2026 Contoso Corporation</copyright>
<!-- Tags that appear in the gallery and can be used for tag searches -->
<tags>web utility http json url parsing</tags>
<!-- Dependencies that are automatically installed when the package is installed -->
<dependencies>
<dependency id="Newtonsoft.Json" version="9.0" />
</dependencies>
</metadata>
<!-- A read-me Markdown file that's displayed in the Package Manager UI -->
<files>
<file src="readme.md" target="" />
<file src="icon.png" target="" />
</files>
</package>
Untuk informasi terperinci tentang mendeklarasikan dependensi dan menentukan nomor versi, lihat packages.config dan Penerapan versi paket. Anda juga dapat menggunakan include atribut dan exclude pada dependency elemen untuk menentukan aset dependensi yang ingin Anda sertakan atau kecualikan dalam paket. Untuk informasi selengkapnya, lihat Referensi .nuspec - Elemen dependensi.
Karena manifes disertakan dalam paket yang dibuat darinya, Anda dapat menemukan contoh dengan memeriksa paket yang ada. Sumber yang baik adalah folder paket global di komputer Anda. Untuk menemukan lokasinya, gunakan perintah berikut:
nuget locals -list global-packages
Setelah Anda mengetahui lokasi folder paket global, lakukan langkah-langkah berikut untuk menemukan file manifes:
- Buka folder global-packages.
- Di folder tersebut, buka subfolder untuk paket apa pun, lalu buka subfolder untuk versi paket tersebut.
- Di subfolder versi, buat salinan file .nupkg , dan ubah ekstensi salinan menjadi zip.
- Buka file .zip dan periksa file .nuspec di dalamnya.
Nota
Saat Anda membuat file .nuspec dari proyek Visual Studio, manifes berisi token yang diganti dengan informasi dari proyek saat paket dibuat. Untuk informasi selengkapnya, lihat Buat file .nuspec dari proyek Visual Studio.
Membuat file .nuspec
Membuat manifes lengkap biasanya dimulai dengan file .nuspec dasar 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 .nuspec yang telah dihasilkan berisi tempat penampung yang harus Anda ubah sebelum Anda membuat paket dengan menggunakan perintah nuget pack. Perintah tersebut gagal jika file .nuspec berisi placeholder apa pun.
Dari direktori kerja berbasis konvensi
Karena paket NuGet adalah file ZIP yang telah diganti namanya dengan ekstensi .nupkg , seringkali paling mudah untuk membuat struktur folder yang Anda inginkan pada sistem file lokal Anda dan kemudian membuat file .nuspec langsung dari struktur tersebut. Perintah nuget pack kemudian secara otomatis menambahkan semua file dalam struktur folder tersebut, tetapi mengecualikan folder apa pun yang dimulai dengan titik, sehingga Anda dapat 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 di bagian ini. Sebagai gantinya, Anda dapat mengatur proses pembuatan untuk menghasilkan struktur folder yang tepat yang masuk ke paket. Anda juga 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
Folder sesuai dengan konvensi berikut:
| Folder | Daftar Isi | Tindakan saat penginstalan paket |
|---|---|---|
| (root) | Manifes paket, folder tingkat atas, dan secara opsional, file Markdown baca-saya dan gambar ikon | Folder ini digunakan sebagai titik awal untuk subfolder standar, seperti lib dan build. |
| lib/<tfm> | Assembly (.dll), dokumentasi (.xml), dan file simbol (.pdb) untuk moniker kerangka kerja target (TFM) yang diberikan | Assembly ditambahkan sebagai referensi untuk waktu kompilasi dan runtime. File .xml dan .pdb disalin ke dalam folder proyek. Untuk informasi tentang membuat subfolder khusus target kerangka kerja, lihat Dukung beberapa versi .NET. |
| ref/<tfm> | File rakitan (.dll) dan simbol (.pdb) untuk TFM yang telah ditentukan | Komponen ditambahkan sebagai referensi hanya untuk waktu kompilasi. Tidak ada yang disalin ke folder bin proyek. |
| runtime | Rakitan khusus arsitektur (.dll), simbol (.pdb), dan file sumber daya asli (.pri) | Assambel ditambahkan sebagai referensi hanya selama runtime. File lain disalin ke dalam folder proyek. Harus selalu ada rakitan khusus (TFM) AnyCPU yang sesuai di bawah folder /ref/<tfm> untuk menyediakan rakitan waktu kompilasi yang sesuai. Lihat Dukung beberapa versi .NET. |
| konten | File sembarang | Konten 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. |
| Membangun | (3.x+) Microsoft Build Engine (MSBuild) .targets dan .props file | File-file ini secara otomatis dimasukkan ke dalam proyek. |
| buildMultiTargeting | (4.0+) File MSBuild .targets dan .props untuk penargetan lintas kerangka kerja | File-file ini secara otomatis dimasukkan ke dalam proyek. |
| buildTransitive | (5.0+) File MSBuild .targets dan .props yang ditransmisikan secara transitif ke proyek yang mengonsumsinya | File-file ini secara otomatis dimasukkan ke dalam proyek. Lihat halaman fitur. |
| perangkat | Skrip dan program PowerShell yang dapat diakses dari Konsol Package Manager | Folder tools ditambahkan ke variabel lingkungan PATH hanya untuk Konsol Package Manager. Ini tidak ditambahkan ke PATH nilai yang digunakan MSBuild saat membangun proyek. |
Karena struktur folder Anda dapat berisi rakitan untuk banyak kerangka kerja target, metode ini diperlukan saat Anda membuat paket yang mendukung beberapa kerangka kerja.
Ketika Anda memiliki struktur folder yang diinginkan, jalankan perintah berikut di folder tersebut untuk membuat file .nuspec :
nuget spec
File .nuspec yang dihasilkan tidak berisi referensi eksplisit ke file dalam struktur folder. NuGet secara otomatis menyertakan semua file saat paket dibuat. Namun, Anda masih perlu mengedit nilai placeholder di bagian lain dari manifes.
Dari DLL rakitan
Dalam kasus dasar pembuatan paket dari rakitan, Anda dapat membuat file .nuspec dari metadata di rakitan dengan menggunakan perintah berikut:
nuget spec <assembly-name>.dll
Menggunakan formulir ini mengganti beberapa placeholder dalam manifes dengan nilai spesifik dari assembly. Misalnya, properti <id> diatur menjadi nama assembly, dan <version> diatur menjadi versi assembly. Properti lain dalam manifes, bagaimanapun, tidak memiliki nilai yang cocok di rakitan. Properti tersebut masih berisi placeholder setelah Anda menjalankan perintah.
Dari proyek Visual Studio
Membuat file .nuspec dari file .csproj atau .vbproj nyaman, karena paket lain yang diinstal dalam proyek secara otomatis dirujuk sebagai dependensi. Untuk membuat manifes dari file proyek, gunakan perintah berikut di folder yang berisi file proyek:
# Use in a folder that contains a project file, such as <project-name>.csproj or <project-name>.vbproj.
nuget spec
File project-name.nuspec< yang 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. Kemudian dapatkan file .nuspec dari dalam file .nupkg yang dihasilkan. Misalnya, gunakan perintah berikut:
# Use in a folder that contains a project file, such as <project-name>.csproj or <project-name>.vbproj.
nuget pack myproject.csproj
Token dibatasi oleh simbol $ di kedua sisi atribut proyek. Misalnya, <id> nilai dalam manifes yang dihasilkan dengan cara ini biasanya terlihat seperti baris berikut:
<id>$id$</id>
Token ini diganti dengan nilai AssemblyName dari file proyek saat pengemasan. Untuk pemetaan nilai proyek yang tepat ke token file .nuspec , lihat Token pengganti.
Token meringankan Anda dari kebutuhan untuk memperbarui nilai penting seperti nomor versi dalam file .nuspec saat Anda memperbarui proyek. Tetapi Anda juga dapat mengganti token dengan nilai harfiah.
Beberapa opsi pengemasan tambahan tersedia saat Anda bekerja dari proyek Visual Studio, seperti yang dijelaskan dalam paket nuget Run untuk menghasilkan file .nupkg nanti di artikel ini.
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 Package Manager (folder tools), tetapi tidak menambahkan referensi, konten, atau penyesuaian build ke proyek apa pun dalam solusi. Paket tersebut tidak berisi file di folder lib, konten, atau build langsung, dan tidak ada dependensi yang memiliki file di folder lib, konten, atau build masing-masing.
NuGet melacak paket tingkat solusi yang diinstal dalam file packages.config di folder .nuget , bukan file packages.config proyek.
Dari file baru dengan nilai default
Perintah berikut membuat manifes default dengan placeholder, yang membantu memastikan Anda memulai dengan struktur file yang tepat.
nuget spec [<package-name>]
Jika Anda menghilangkan <package-name>, file yang dihasilkan diberi nama Package.nuspec. Jika Anda memberikan nama seperti Contoso.Utility.UsefulStuff, file diberi nama Contoso.Utility.UsefulStuff.nuspec.
File
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 galeri yang menghosting paket, seperti nuget.org. Sebelum Anda 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 yang mirip namespace: Ikuti pola yang mirip dengan namespace di .NET, menggunakan notasi titik alih-alih tanda hubung. Misalnya, gunakan
Contoso.Utility.UsefulStuffdaripadaContoso-Utility-UsefulStuffatauContoso_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
.Samplesebagai akhiran ke pengidentifikasi, seperti dalamContoso.Utility.UsefulStuff.Sample. Paket sampel jenis ini memiliki dependensi pada paket yang dijelaskan cara penggunaannya. Saat Anda membuat paket sampel, gunakan metode direktori kerja berbasis konvensi yang dijelaskan sebelumnya. Di folder konten , atur kode sampel dalam folder bernama \Samples\<identifier>, seperti dalam \Samples\Contoso.Utility.UsefulStuff.Sample.
Praktik terbaik untuk versi paket
- Secara umum, atur versi paket agar sesuai dengan pustaka. Panduan ini direkomendasikan tetapi tidak benar-benar diperlukan. Praktik ini mudah ketika Anda membatasi paket ke satu rakitan, seperti yang dijelaskan sebelumnya dalam Memutuskan rakitan mana yang akan dipaketkan. Secara umum, ingatlah bahwa NuGet sendiri menangani versi paket saat menyelesaikan dependensi, bukan versi rakitan.
- Saat Anda menggunakan skema versi non-standar, pertimbangkan aturan penerapan versi NuGet seperti yang dijelaskan dalam Penerapan versi paket.
Untuk sumber daya lain yang berguna untuk memahami penerapan versi, lihat serangkaian posting blog singkat berikut:
Menambahkan file read-me dan file lainnya
Untuk secara langsung menentukan file yang akan disertakan dalam paket, gunakan simpul <files> dalam file .nuspec yang mengikuti tag .
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<!-- ... -->
</metadata>
<files>
<!-- Add files from an arbitrary folder that's not necessarily in the project. -->
<file src="..\..\SomeRoot\**\*.*" target="" />
</files>
</package>
Petunjuk / Saran
Saat Anda menggunakan pendekatan direktori kerja berbasis konvensi, Anda dapat menempatkan file readme.md di akar paket dan konten lainnya di folder konten . Tidak ada <file> elemen yang diperlukan dalam manifes.
Untuk menyertakan file read-me dalam paket, gunakan readme elemen metadata untuk menentukan jalur target ke file read-me. Juga gunakan elemen metadata file untuk menentukan jalur sumber dan folder target dari file baca-saya. Untuk informasi selengkapnya, lihat readme .
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<!-- ... -->
<readme>docs\readme.md</readme>
<!-- ... -->
</metadata>
<files>
<!-- Add a read-me file. -->
<file src="..\readme.md" target="docs\" />
</files>
</package>
Visual Studio menampilkan konten file read-me di antarmuka pengguna Package Manager. Misalnya, cuplikan layar berikut menunjukkan file read-me untuk HtmlAgilityPack paket:
Nota
Jika Anda menyertakan simpul kosong <files> dalam file .nuspec , NuGet menyertakan konten folder lib dalam paket tetapi tidak ada konten lain.
Menyertakan alat peraga dan target MSBuild dalam paket
Dalam beberapa kasus, Anda mungkin ingin menambahkan target atau properti build kustom ke proyek yang menggunakan paket Anda, seperti menjalankan alat atau proses kustom selama build. Untuk informasi selengkapnya tentang target dan properti build kustom, lihat MSBuild .props dan .targets dalam paket.
Buat <file package-id.targets> atau <package-id.props>, seperti Contoso.Utility.UsefulStuff.targets, di folder build proyek.
Kemudian dalam file .nuspec , lihat file-file ini di simpul <files> :
<?xml version="1.0"?>
<package >
<metadata minClientVersion="2.5">
<!-- ... -->
</metadata>
<files>
<!-- In the package build folder, include everything that's in the local build folder. -->
<file src="build\**" target="build" />
<!-- Other files -->
<!-- ... -->
</files>
</package>
Ketika paket ditambahkan ke proyek, NuGet secara otomatis menyertakan properti dan target ini.
Jalankan paket nuget untuk menghasilkan file .nupkg
Saat Anda menggunakan rakitan atau direktori kerja berbasis konvensi, buat paket dengan menjalankan nuget pack dengan file .nuspec Anda. Dalam perintah berikut, ganti <project-name> dengan nama proyek Anda:
nuget pack <project-name>.nuspec
Saat Anda menggunakan proyek Visual Studio, jalankan nuget pack dengan file proyek Anda. Perintah ini secara otomatis memuat file .nuspec proyek dan mengganti token apa pun di dalamnya dengan nilai yang sesuai dalam file proyek:
nuget pack <project-name>.csproj
Nota
Untuk penggantian token, Anda harus menggunakan file proyek secara langsung, karena proyek adalah sumber nilai token. Penggantian token tidak berhasil jika Anda menggunakan nuget pack dengan file .nuspec .
Dalam semua kasus, nuget pack mengecualikan folder yang dimulai dengan titik, seperti .git atau .hg.
NuGet menunjukkan apakah ada kesalahan dalam file .nuspec yang perlu dikoreksi, seperti placeholder dalam manifes yang perlu diperbarui.
Setelah nuget pack berhasil, Anda memiliki file .nupkg yang dapat Anda terbitkan ke galeri yang sesuai seperti yang dijelaskan dalam terbitkan paket NuGet.
Petunjuk / Saran
Cara yang berguna untuk memeriksa paket setelah membuatnya adalah dengan membukanya di alat Penjelajah Paket . Alat ini memberi Anda tampilan grafis konten paket dan manifesnya. Anda juga dapat mengganti nama file .nupkg yang dihasilkan menjadi file .zip 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 perintah paket (NuGet CLI).
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
-IncludeReferencedProjectsopsi :nuget pack MyProject.csproj -IncludeReferencedProjectsProses penyertaan ini rekursif. Misalnya, jika MyProject.csproj mereferensikan proyek B dan C, dan proyek tersebut mereferensikan D, E, dan F, file dari B, C, D, E, dan F disertakan dalam paket.
Jika proyek yang dirujuk menyertakan file .nuspec sendiri, 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, sepertiRelease, gunakan-propertiesopsi dengan konfigurasi:nuget pack MyProject.csproj -properties Configuration=ReleaseSimbol: Untuk menyertakan simbol yang memungkinkan konsumen untuk menelusuri kode paket Anda di debugger, gunakan opsi
-Symbolsdan-SymbolPackageFormat. Untuk opsi-SymbolPackageFormat, tentukan formatsnupkg.nuget pack MyProject.csproj -symbols -SymbolPackageFormat snupkg
Penginstalan paket pengujian
Sebelum menerbitkan paket, Anda biasanya ingin menguji proses penginstalan paket ke dalam proyek. Pengujian membantu memastikan bahwa semua file yang diperlukan berakhir di tempat yang benar dalam proyek.
Anda dapat menguji penginstalan secara manual di Visual Studio atau pada baris perintah dengan menggunakan langkah-langkah penginstalan paket standar.
Untuk pengujian otomatis, Anda dapat menggunakan proses dasar berikut:
- Salin file .nupkg ke folder lokal.
- Tambahkan folder ke sumber paket Anda dengan menggunakan
nuget sources add -name <name> -source <path>perintah . Untuk informasi selengkapnya, lihat perintah sumber (NuGet CLI). Anda perlu menyetel sumber lokal ini hanya sekali pada komputer tertentu. - Instal paket dari sumber tersebut dengan menggunakan
nuget install <package-ID> -source <name>. Dalam perintah ini,<name>harus cocok dengan nama sumber yang Anda gunakan dalamnuget sourcesperintah . Menentukan sumber memberi tahu NuGet untuk menginstal paket dari sumber itu saja. - Periksa sistem file Anda untuk memeriksa apakah file terinstal dengan benar.
Konten terkait
Setelah membuat paket, yang merupakan file .nupkg , Anda dapat menerbitkannya ke galeri pilihan Anda. Untuk informasi selengkapnya, lihat Menerbitkan paket NuGet.
Anda juga dapat memperluas kemampuan paket Anda atau mendukung skenario lain. Untuk informasi lebih lanjut, baca artikel berikut:
- Penerapan versi paket
- Dukung beberapa versi .NET
- Mengubah kode sumber dan file konfigurasi
- Membuat paket NuGet yang dilokalkan
- Membangun paket pra-rilis
- Mengatur jenis paket NuGet
- Membuat paket NuGet yang berisi rakitan interop COM
Untuk mengetahui jenis paket lainnya, lihat artikel berikut ini: