Як мені локально встановити файл Nuget .nupkg?


Відповіді:


463

Інструменти меню → ОпціїМенеджер пакунків

Введіть тут опис зображення

Укажіть ім’я та місцезнаходження папки. Натисніть кнопку ОК. Видаліть файли пакунків NuGet у цю папку.

Перейдіть до свого проекту, клацніть правою кнопкою миші та виберіть "Управління пакетами NuGet" та виберіть нове джерело пакету.

Введіть тут опис зображення

Ось документація .


22
Насправді я зробив крок 1 кілька разів. Але мій пакет не відображається на кроці 2, коли я відкриваюсь для перегляду встановлених пакетів, оновлень або останніх пакунків.
Том

2
На моєму екрані у мене є лише "Усі" в розділі "Встановлені пакети", а не "NuGet-офіційне джерело пакетів", не власне "newNuget", вони відсутні.
Том

1
Я використовую vs2010. Спробуйте завантажити та встановити найновіший нут із своєї домашньої сторінки саме зараз. Завантажте клацніть наступне наступне ... потім помилка ... M $, як очікувалося, є посилання відомих проблем, перевірено, що говорить невідповідність підпису, тоді мені потрібно видалити існуючий нут, і це легко виправити. добре, зроби це. Коли я перезавантажую комп'ютер і інсталюю знову, повертається та сама помилка, невідповідність підписів ... тож тепер я застряг із відсутньою старою версією, нову версію не хочеться встановлювати.
Том

2
Виправлена ​​проблема. Я видалив нукет з панелі управління Windows ->. Це не працювало так. Мені потрібно було запустити VS і зайти в інструменти-> Менеджер розширень ..., а потім натиснути звідти видалення нута. Пережив В.С. Потім знову пішов встановлювати nuget, це спрацювало. Тепер також відображаються локальні файли nupkg (редагувати: вони знаходяться на вкладці Інтернет, а не на вкладці «Встановлені», моя помилка на зображенні, який я публікую). Дякую за допомогу :)
Том,

1
У мене ще недостатньо репутації для коментарів - але щоб відповісти Майклу у прийнятих коментарях щодо VS2015, які все ще хочуть вийти в Інтернет. У мене був той самий випуск, але в варіантах, якщо ви зніміть усі інтернет-джерела, він працює для офлайн-джерел. nuget Options pic
Mick m

302

Ви також можете використовувати консоль диспетчера пакунків і викликати Install-Packageкомандлет, вказавши шлях до каталогу, який містить файл пакета в -Sourceпараметрі:

Install-Package SomePackage -Source C:\PathToThePackageDir\

2
Чи можу я зробити щось подібне і з інструментом командного рядка?
Poul K. Sørensen

5
Так. Цей -Sourceваріант також доступний у nuget.exe . Наприклад:nuget install SomePackage -Source C:\PathToThePackageDir
Енріко Кампідоліо

16
Вам може знадобитися також вказати прапор -IncludePrerelease. В іншому випадку, якщо версія пакета має суфікс тире (наприклад, "-beta1"), Install-Package його не знайде.
Джефф Шарп

9
Це набагато більш пряма відповідь, ніж прийнята. Дякую за інформацію!
Девід Пітерс

2
Не працює для VS 2017, див. F.ex. відповідь @Granger.
RenniePet

124

Для файлів .nupkg я люблю використовувати:

Install-Package C:\Path\To\Some\File.nupkg

7
Єдине, що спрацювало. Якщо шлях до каталогу містить пробіли, включіть його у подвійні лапки.
Нікос

4
Погодьтеся. І варто згадати, що працюють лише абсолютні шляхи
Себастьян Дж.

5
Не працює для VS 2017, див. F.ex. відповідь @Granger.
RenniePet

1
@ RenniePet, який працював на мене у VS2017 (але я вже помістив .nupkgпід той самий каталог, всі інші пакети зберігалися)
Рафалон,

1
Це не працює для мене, я використовую VS2013 версії 12.0.21..5 і NuGet менеджер пакетів 2.12.0.817 :(
Niraj Trivedi

56

Для Visual Studio 2017 та його нового формату .csproj

Ви не можете просто використовувати Install-Package для вказівки на локальний файл. (Це, ймовірно, тому, що PackageReferenceелемент не підтримує шляхи до файлу; він дозволяє лише вказати ідентифікатор пакета.)

Спочатку потрібно повідомити Visual Studio про розташування вашого пакету, а потім ви можете додати його до проекту. Більшість людей - це зайти в диспетчер пакунків NuGet і додати локальну папку як джерело (меню ІнструментиПараметриNuGet Package ManagerДжерела пакунків ). Але це означає, що розташування вашої залежності не надається (для контролю версій) з рештою вашої бази даних коду.

Локальні пакети NuGet, використовуючи відносний шлях

Це додасть джерело пакета, яке стосується лише конкретного рішення, і ви можете використовувати відносні шляхи.

Вам потрібно створити nuget.configфайл у тому ж каталозі, що і ваш .slnфайл. Налаштуйте файл із потрібним джерелом пакета. Коли ви наступного разу відкриєте рішення у Visual Studio 2017, будь-які .nupkg файли з цих папок-джерел будуть доступні. (Ви побачите джерела, вказані в Менеджері пакунків, і ви знайдете пакунки на вкладці "Огляд" під час керування пакетами для проекту.)

Ось приклад nuget.configдля початку роботи:

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

Попередня історія

Моє використання цієї функції полягає в тому, що на моїй машині є декілька примірників одного сховища коду. У кодовій базі є спільна бібліотека, яка публікується / розгортається як файл .nupkg. Цей підхід дозволяє різним залежним рішенням у всій нашій кодовій базі використовувати пакет у межах одного екземпляра сховища. Крім того, хтось із свіжою установкою Visual Studio 2017 може просто перевірити код там, де вони захочуть, і залежні рішення успішно відновлять і створитимуть.


Я використовую VS 2017 і не стикався з цією проблемою. Я просто передав цей -Sourceаргумент, Update-Packageі він справно працював. Може щось робити конкретно з Install-Packageкомандою?
Грег

48
  1. Додайте файли до папки під назвою LocalPackages поруч із вашим рішенням (її не потрібно називати, але відповідно налаштуйте xml у наступному кроці)
  2. Створіть файл під назвою NuGet.config поруч із файлом рішення із наступним вмістом

    <?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. Якщо рішення відкрите у Visual Studio, закрийте його та повторно відкрийте.

Тепер ваші пакунки повинні з’являтися у браузері або бути встановленими за допомогою Install-Package


Фантастична відповідь, саме рішення, яке я шукав. Дякую!
Джонатан

1
Це може бути лише тому, що у мене є схожий назви пакету в сховищі Nuget, але мені потрібно було використовувати консоль диспетчера пакунків і вибрати джерело пакета як LocalPackages перед запуском Install-Package.
Лука

42

Якщо у вас є .nupkg файл, і вам просто потрібен файл .dll, все, що вам потрібно зробити, - це змінити розширення на .zip і знайти каталог lib.


3
якщо ви ставитесь до нього як до zip-файлу, тоді файли, що містять простір у імені файлу, будуть вилучені% (замінюючи пробіли). Щоб уникнути цієї установки, використовуйте NuGet.
Рахатур

2
Насправді вам навіть не потрібно перейменовувати розширення. Просто клацніть правою кнопкою миші файл, а потім виберіть «Відкрити за допомогою» та знайдіть програму, яка може відкрити .zip-файл, і файл .nupkg можна відкрити, а потім ви можете витягти потрібний файл dll у вказану папку.
цзяо

1
Найкраще мені потрібне рішення
Лео Нгуен

8

Щоб оновити оновлення, для користувачів Visual Studio 2015 є незначні зміни.

Щоб використовувати або встановлювати пакет вручну, перейдіть до Інструменти -> Параметри -> Менеджер пакунків NuGet -> Джерела пакунків

Натисніть кнопку Додати, виберіть Джерело, і не забудьте натиснути " Оновити ", оскільки воно оновить розташування папки для ваших пакетів, відредагуйте бажане ім'я джерела вашого пакета, якщо хочете:

введіть тут опис зображення

Щоб вибрати доданий пакет, клацніть правою кнопкою миші рішення та виберіть " Керувати Nuget пакетами "

Випадаючий список знаходиться праворуч і виберіть Огляд, щоб переглянути ваші пакунки, вказані у джерелі папки. Якщо в цьому джерелі папки немає пакету нута, це буде порожнім:

введіть тут опис зображення


6

У Linux, з NuGet CLI, команди схожі. Щоб встановити my.nupkg, запустіть

nuget add -Source some/directory my.nupkg

Потім запустіть dotnet restoreз цього каталогу

dotnet restore --source some/directory Project.sln

або додати цей каталог як джерело NuGet

nuget sources Add -Name MySource -Source some/directory

а потім скажіть msbuildвикористовувати цей каталог з /p:RestoreAdditionalSources=MySourceабо /p:RestoreSources=MySource. Другий перемикач відключить усі інші джерела, що, наприклад, добре для офлайн-сценаріїв.


1
На mac (я вважаю, що Linux також), ви не можете розраховувати, nuget sourcesякщо ви використовуєте dotnet restore(або VS Mac ) через цю помилку. Мені довелося додати ~/.nuget/NuGet/NuGet.Configвручну локальне джерело (дивіться цю проблему GH ).
gabe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.