Pertanyaan yang sering diajukan nuGet

Untuk tanya jawab umum yang berkaitan dengan NuGet.org, seperti pertanyaan akun NuGet.org, lihat pertanyaan yang sering diajukan NuGet.org.

Umum

Apa yang diperlukan untuk menjalankan NuGet?

Semua informasi di sekitar UI dan alat baris perintah tersedia di panduan Instal.

Apakah NuGet mendukung Mono?

Alat baris perintah, nuget.exe, membangun dan berjalan di bawah Mono 3.2+ dan dapat membuat paket di Mono.

Meskipun nuget.exe berfungsi sepenuhnya di Windows, ada masalah yang diketahui di Linux dan OS X. Lihat masalah Mono di GitHub.

Klien grafis tersedia sebagai add-in untuk MonoDevelop.

Bagaimana cara menentukan apa yang dikandung paket dan apakah paket tersebut stabil dan berguna untuk aplikasi saya?

Sumber utama untuk mempelajari tentang paket adalah halaman daftarnya di nuget.org (atau umpan privat lainnya). Setiap halaman paket di nuget.org menyertakan deskripsi paket, riwayat versinya, dan statistik penggunaan. Bagian Info pada halaman paket juga berisi tautan ke situs web proyek tempat Anda biasanya menemukan banyak contoh dan dokumentasi lainnya untuk membantu Anda mempelajari cara paket digunakan.

Untuk informasi selengkapnya, lihat Menemukan dan memilih paket.

NuGet di Visual Studio

Bagaimana NuGet didukung dalam produk Visual Studio yang berbeda?

Bagaimana cara memeriksa versi yang tepat dari alat NuGet yang diinstal?

Di Visual Studio, gunakan perintah Bantuan > Tentang Microsoft Visual Studio dan lihat versi yang ditampilkan di samping Pengelola Paket NuGet.

Atau, luncurkan Package Manager Console (Tools > NuGet Package Manager > Package Manager Console) dan masukkan $host untuk melihat informasi tentang NuGet termasuk versi.

Bahasa pemrograman apa yang didukung oleh NuGet?

NuGet umumnya berfungsi untuk bahasa .NET dan dirancang untuk membawa pustaka .NET ke dalam proyek. Karena juga mendukung otomatisasi MSBuild dan Visual Studio di beberapa jenis proyek, ini juga mendukung proyek dan bahasa lain ke berbagai derajat.

Versi terbaru NuGet mendukung C#, Visual Basic, F#, WiX, C++, dan Q#.

Templat proyek apa yang didukung oleh NuGet?

NuGet memiliki dukungan penuh untuk berbagai templat proyek seperti Windows, Web, Cloud, SharePoint, Wix, dan sebagainya.

Bagaimana cara memperbarui paket yang merupakan bagian dari templat Visual Studio?

Buka tab Pembaruan di antarmuka pengguna Manajer Paket dan pilih Perbarui Semua, atau gunakan Update-Package perintah dari Konsol Manajer Paket.

Untuk memperbarui templat itu sendiri, Anda perlu memperbarui repositori templat secara manual. Lihat blog Xavier Decoster tentang subjek ini. Perhatikan bahwa ini dilakukan dengan risiko Anda sendiri, karena pembaruan manual mungkin merusak templat jika versi terbaru dari semua dependensi tidak kompatibel satu sama lain.

Dapatkah saya menggunakan NuGet di luar Visual Studio?

Ya, NuGet bekerja langsung dari baris perintah. Lihat Panduan penginstalan dan referensi CLI.

Baris perintah NuGet

Bagaimana cara mendapatkan alat baris perintah NuGet versi terbaru?

Lihat Panduan penginstalan. Untuk memeriksa versi alat yang diinstal saat ini, gunakan nuget help.

Apa lisensi untuk nuget.exe?

Anda diizinkan untuk mendistribusikan ulang nuget.exe berdasarkan ketentuan lisensi MIT. Anda bertanggung jawab untuk memperbarui dan melayani salinan nuget.exe apa pun yang Anda pilih untuk didistribusikan ulang.

Apakah mungkin untuk memperluas alat baris perintah NuGet?

Ya, Anda dapat menambahkan perintah kustom ke nuget.exe, seperti yang dijelaskan dalam posting Rob Reynold yang tersedia melalui Archive.org.

Konsol Manajer Paket NuGet (Visual Studio di Windows)

Bagaimana cara mendapatkan akses ke objek DTE di konsol Package Manager?

Objek tingkat atas dalam model objek otomatisasi Visual Studio disebut objek DTE (Lingkungan Alat Pengembangan). Konsol menyediakan ini melalui variabel bernama $DTE. Untuk informasi selengkapnya, lihat Gambaran Umum Model Otomatisasi dalam dokumentasi Ekstensibilitas Visual Studio.

Saya mencoba untuk mentransmisikan variabel $DTE ke jenis DTE2, tetapi saya mendapatkan kesalahan: Tidak dapat mengonversi nilai "EnvDTE.DTEClass" jenis "EnvDTE.DTEClass" untuk mengetik "EnvDTE80.DTE2". Apa yang salah?

Ini adalah masalah yang diketahui tentang bagaimana PowerShell berinteraksi dengan objek COM. Cobalah langkah-langkah berikut:

`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`

Get-Interface adalah fungsi pembantu yang ditambahkan oleh host NuGet PowerShell.

Membuat dan menerbitkan paket

Bagaimana cara mencantumkan paket saya dalam umpan?

Saya memiliki beberapa versi pustaka saya yang menargetkan versi .NET Framework yang berbeda. Bagaimana cara membuat satu paket yang mendukung ini?

Bagaimana cara menyiapkan repositori atau umpan saya sendiri?

Lihat Gambaran umum paket Hosting.

Bagaimana cara mengunggah paket ke umpan NuGet saya secara massal?

Lihat Menerbitkan paket NuGet secara massal (jeffhandly.com).

Bekerja dengan paket

Apakah mungkin untuk menginstal paket NuGet tanpa konektivitas Internet?

Bagaimana cara menginstal paket di lokasi yang berbeda dari folder paket default?

Atur repositoryPath pengaturan dalam Nuget.Config menggunakan nuget config -set repositoryPath=<path>.

Bagaimana cara menghindari penambahan folder paket NuGet ke kontrol sumber?

Atur masuk disableSourceControlIntegrationNuget.Config ke true. Kunci ini berfungsi di tingkat solusi dan karenanya perlu ditambahkan ke $(Solutiondir)\.nuget\Nuget.Config file. Mengaktifkan pemulihan paket dari Visual Studio membuat file ini secara otomatis.

Bagaimana cara menonaktifkan pemulihan paket?

Mengapa saya mendapatkan "Tidak dapat mengatasi kesalahan dependensi" saat menginstal paket lokal dengan dependensi jarak jauh?

Anda perlu memilih Semua sumber saat menginstal paket lokal ke dalam proyek. Ini mengagregasi semua umpan alih-alih hanya menggunakan satu. Alasan kesalahan ini muncul adalah bahwa pengguna repositori lokal sering ingin menghindari pemasangan paket jarak jauh secara tidak sengaja karena polisi perusahaan.

Saya memiliki beberapa proyek di folder yang sama, bagaimana cara menggunakan file packages.config terpisah untuk setiap proyek?

Di sebagian besar proyek tempat proyek terpisah tinggal di folder terpisah, ini bukan masalah karena NuGet mengidentifikasi packages.config file di setiap proyek. Dengan NuGet 3.3+ dan beberapa proyek di folder yang sama, Anda dapat menyisipkan nama proyek ke dalam packages.config nama file menggunakan pola packages.{project-name}.config, dan NuGet menggunakan file tersebut.

Ini bukan masalah saat menggunakan PackageReference, karena setiap file proyek berisi daftar dependensinya sendiri.

Saya tidak melihat nuget.org dalam daftar repositori saya, bagaimana cara mendapatkannya kembali?

  • Tambahkan https://api.nuget.org/v3/index.json ke daftar sumber Anda, atau
  • Hapus %appdata%\.nuget\NuGet.Config (Windows) atau ~/.nuget/NuGet/NuGet.Config (Mac/Linux) dan biarkan NuGet membuatnya kembali.

Saya bermigrasi ke PackageReference, mengapa build saya gagal 'Proyek ini mereferensikan paket NuGet yang hilang di komputer ini.'?

Dalam proyek packages.config, ketika paket dengan build alat peraga atau target diinstal, NuGet akan menambahkan EnsureNuGetPackageBuildImports target untuk memverifikasi bahwa paket konten msbuild telah diimpor sebelum membangun. target Jika telah dimodifikasi secara manual, NuGet mungkin tidak dapat mendeteksi bahwa nuget perlu dihapus saat bermigrasi.

Jika proyek Anda dan PackageReference Anda masih memiliki target ini dalam file proyek, seharusnya aman untuk dihapus.