Bagaimana cara saya menginstal file .nupkg paket NuGet secara lokal?

Jawaban:

465

Alat Menu → PilihanManajer Paket

Masukkan deskripsi gambar di sini

Beri nama dan lokasi folder. Klik OK. Letakkan file paket NuGet Anda di folder itu.

Buka Proyek Anda, klik kanan dan pilih "Kelola Paket NuGet" dan pilih sumber paket baru Anda.

Masukkan deskripsi gambar di sini

Ini dokumentasinya .

Shyju
sumber
22
Sebenarnya, saya sudah melakukan langkah 1 beberapa kali. Tetapi paket saya tidak muncul di langkah 2, ketika saya membuka untuk melihat paket yang diinstal, Pembaruan atau paket terbaru.
Tom
2
Di layar saya, saya hanya memiliki "Semua" di bawah "Paket yang diinstal" bukan "sumber paket resmi NuGet", bukan "newNuget" khusus saya, yang hilang.
Tom
1
Saya menggunakan vs2010. Mencoba mengunduh dan menginstal nuget terbaru dari beranda mereka sekarang. Unduh klik next next ... kemudian error ... M $ seperti yang diharapkan, ada tautan dari masalah yang diketahui, diperiksa, kata signature mismatch maka saya perlu menghapus instalan nuget yang ada dan itu mudah diperbaiki. baiklah, lakukan itu. Ketika saya me-restart komputer dan menginstal ulang, kesalahan yang sama muncul kembali, tanda tangan tidak cocok ... jadi sekarang saya terjebak dengan versi lama hilang, versi baru tidak ingin menginstal.
Tom
2
Masalah diperbaiki. Saya menghapus instalan nuget dari windows -> panel kontrol. Tidak berfungsi seperti itu. Saya perlu memulai VS dan masuk ke Tools-> Extension Manager ... lalu tekan uninstall nuget dari sana. VS yang dimulai kembali Kemudian pergi untuk menginstal nuget lagi, itu berhasil. Sekarang, file nupkg lokal juga muncul (edit: mereka ada di tab Online, bukan tab Terpasang, kesalahan saya pada gambar yang saya posting). Terima kasih atas bantuannya :)
Tom
1
Saya belum memiliki reputasi yang cukup untuk berkomentar - tetapi untuk menjawab Michael dalam komentar jawaban yang diterima tentang VS2015 masih ingin online. Saya memiliki masalah yang sama, tetapi dalam opsi, jika Anda menghapus centang semua sumber online itu berfungsi untuk yang offline. nuget Options pic
Mick m
302

Anda juga bisa menggunakan Package Manager Console dan memanggil Install-Packagecmdlet dengan menentukan path ke direktori yang berisi file paket dalam -Sourceparameter:

Install-Package SomePackage -Source C:\PathToThePackageDir\
Enrico Campidoglio
sumber
2
dapatkah saya melakukan sesuatu seperti itu dengan alat baris perintah juga?
Poul K. Sørensen
5
Iya. The -Sourcepilihan tersedia di nuget.exe juga. Sebagai contoh:nuget install SomePackage -Source C:\PathToThePackageDir
Enrico Campidoglio
16
Anda mungkin perlu menentukan flag -IncludePrerelease juga. Jika tidak, jika versi paket memiliki akhiran dash (mis. "-Beta1"), Install-Package tidak akan menemukannya.
Jeff Sharp
9
Ini adalah jawaban yang jauh lebih langsung daripada yang diterima. Terimakasih atas infonya!
David Peters
2
Tidak bekerja untuk VS 2017, lihat f.ex. dijawab oleh @Granger.
RenniePet
124

Untuk file .nupkg yang ingin saya gunakan:

Install-Package C:\Path\To\Some\File.nupkg
Felix Alcala
sumber
7
Hanya hal yang berhasil. Jika jalur ke direktori berisi spasi, sertakan dalam tanda kutip ganda.
Nikos
4
Setuju. Dan layak disebutkan bahwa hanya jalur absolut yang berfungsi
Sebastian J.
5
Tidak bekerja untuk VS 2017, lihat f.ex. dijawab oleh @Granger.
RenniePet
1
@RenniePet yang bekerja untuk saya di VS2017 (tapi saya sudah meletakkan .nupkgdirektori saya di bawah direktori yang sama setiap paket lain disimpan)
Rafalon
1
Ini tidak berfungsi untuk saya, saya menggunakan VS2013 Versi 12.0.21..5 dan manajer paket Nuget 2.12.0.817 :(
Niraj Trivedi
56

Untuk Visual Studio 2017 dan format .csproj yang baru

Anda tidak bisa lagi menggunakan Instal-Paket untuk menunjuk ke file lokal. (Itu mungkin karena PackageReferenceelemen tidak mendukung jalur file; hanya memungkinkan Anda menentukan ID paket.)

Pertama-tama Anda harus memberi tahu Visual Studio tentang lokasi paket Anda, dan kemudian Anda bisa menambahkannya ke proyek. Apa yang dilakukan kebanyakan orang adalah masuk ke Package Manager NuGet dan menambahkan folder lokal sebagai sumber ( Alat menu → PilihanManajer Paket NuGetSumber Paket ). Tapi itu berarti lokasi ketergantungan Anda tidak berkomitmen (untuk kontrol versi) dengan basis kode Anda yang lain.

Paket NuGet lokal menggunakan jalur relatif

Ini akan menambahkan sumber paket yang hanya berlaku untuk solusi tertentu, dan Anda dapat menggunakan jalur relatif.

Anda perlu membuat nuget.configfile di direktori yang sama dengan .slnfile Anda . Konfigurasikan file dengan sumber paket yang Anda inginkan. Ketika Anda selanjutnya membuka solusi di Visual Studio 2017, file .nupkg dari folder sumber tersebut akan tersedia. (Anda akan melihat sumber yang terdaftar di Package Manager, dan Anda akan menemukan paket-paket pada tab "Browse" ketika Anda mengelola paket untuk suatu proyek.)

Berikut ini contoh nuget.configuntuk membantu Anda memulai:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

Backstory

Kasus penggunaan saya untuk fungsi ini adalah bahwa saya memiliki beberapa contoh repositori kode tunggal pada mesin saya. Ada pustaka bersama di dalam basis kode yang diterbitkan / digunakan sebagai file .nupkg. Pendekatan ini memungkinkan berbagai solusi dependen di seluruh basis kode kami untuk menggunakan paket dalam instance repositori yang sama. Juga, seseorang dengan instalasi baru Visual Studio 2017 dapat checkout kode di mana pun mereka inginkan, dan solusi dependen akan berhasil mengembalikan dan membangun.

Granger
sumber
Saya menggunakan VS 2017 dan belum mengalami masalah ini. Saya baru saja menyampaikan -Sourceargumen Update-Packagedan itu berhasil dengan baik. Mungkin ada hubungannya dengan Install-Packageperintah?
Greg Burghardt
48
  1. Tambahkan file ke folder bernama LocalPackages di sebelah solusi Anda (tidak harus seperti itu, tetapi sesuaikan xml pada langkah berikut yang sesuai)
  2. Buat file bernama NuGet.config di sebelah file solusi Anda dengan konten berikut

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="LocalPackages" value="./LocalPackages" />
        </packageSources>
        <activePackageSource>
          <!-- this tells that all of them are active -->
          <add key="All" value="(Aggregate source)" />
        </activePackageSource>
     </configuration>
  3. Jika solusi terbuka di Visual Studio, tutup, lalu buka kembali.

Sekarang paket Anda akan muncul di browser, atau dapat diinstal menggunakan Instal-Paket

Samuel Jack
sumber
Jawaban yang fantastis, solusi tepat yang saya cari. Terima kasih!
Jonathan
1
Ini mungkin saja karena saya memiliki paket dengan nama yang sama dengan yang ada di repositori Nuget, tetapi saya perlu menggunakan Package Manager Console dan memilih sumber paket sebagai LocalPackages sebelum menjalankan Install-Package.
Lukas
42

Jika Anda memiliki file .nupkg dan hanya perlu file .dll yang harus Anda lakukan adalah mengubah ekstensi menjadi .zip dan menemukan direktori lib.

Marlon Cristian
sumber
3
jika Anda memperlakukannya sebagai file zip, maka file yang memiliki ruang dalam nama file akan diekstraksi dengan% (menggantikan spasi). Untuk menghindari instalasi ini menggunakan NuGet.
Rahatur
2
Sebenarnya, Anda bahkan tidak perlu mengganti nama ekstensi. Cukup klik kanan file, lalu pilih Buka dengan, dan temukan aplikasi yang dapat membuka file .zip, dan file .nupkg dapat dibuka, lalu Anda dapat mengekstrak file dll yang diperlukan ke folder yang Anda tuju.
jyao
1
Solusi terbaik yang saya butuhkan
Leo Nguyen
8

Hanya untuk memberikan pembaruan, ada perubahan kecil untuk pengguna Visual Studio 2015.

Untuk menggunakan atau menginstal paket secara manual, pergi ke Alat -> Opsi -> Manajer Paket NuGet -> Sumber Paket

Klik tombol Tambah, pilih Sumber, dan jangan lupa klik " Perbarui " karena akan memperbarui lokasi folder untuk paket Anda, edit Nama yang Anda inginkan dari sumber paket Anda jika Anda mau:

masukkan deskripsi gambar di sini

Untuk memilih paket tambahan Anda, klik kanan solusi Anda dan pilih " Kelola Paket Nuget "

Daftar drop-down ada di kanan dan pilih Browse untuk meramban paket yang Anda tentukan pada sumber folder Anda. Jika tidak ada paket nuget pada sumber folder itu, ini akan kosong:

masukkan deskripsi gambar di sini

Willy David Jr
sumber
6

Di Linux, dengan NuGet CLI, perintahnya serupa. Untuk menginstal my.nupkg, jalankan

nuget add -Source some/directory my.nupkg

Kemudian jalankan dotnet restoredari direktori itu

dotnet restore --source some/directory Project.sln

atau tambahkan direktori itu sebagai sumber NuGet

nuget sources Add -Name MySource -Source some/directory

dan kemudian katakan msbuilduntuk menggunakan direktori itu dengan /p:RestoreAdditionalSources=MySourceatau /p:RestoreSources=MySource. Switch kedua akan menonaktifkan semua sumber lain, yang bagus untuk skenario offline, misalnya.

pengguna7610
sumber
1
Di mac (saya mengasumsikan Linux juga), Anda tidak dapat mengandalkan nuget sourcesjika Anda menggunakan dotnet restore(atau VS Mac ) karena bug ini . Saya harus menambahkan sumber lokal ke ~/.nuget/NuGet/NuGet.Configmanual (lihat masalah GH ini ).
gabe