Как установить локальный пакет NuGet.nupkg?

У меня есть некоторые .nupkg файлы из книги С#. Как их установить?

Can't see my packages

Ответ 1

Инструменты меню → Функции → Диспетчер пакетов

Enter image description here

Укажите имя и папку. Нажмите "ОК". Отбросьте файлы пакета NuGet в этой папке.

Перейдите в свой проект, щелкните правой кнопкой мыши и выберите "Управление пакетами NuGet" и выберите новый источник пакета.

Enter image description here

Вот документация.

Ответ 2

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

Install-Package SomePackage -Source C:\PathToThePackageDir\

Ответ 3

Для файлов .nupkg, которые мне нравится использовать:

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

Ответ 4

  • Добавьте файлы в папку LocalPackages рядом с вашим решением (ее не нужно вызывать, но скорректируйте xml на следующем шаге)
  • Создайте файл 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>
    
  • Если решение открыто в Visual Studio, закройте его, а затем снова откройте его.

Теперь ваши пакеты должны появляться в браузере или устанавливаться с помощью пакета Install-Package

Ответ 5

Если у вас есть .nupkg файл и вам нужен только DLL файл, вам нужно изменить расширение на .zip и найти каталог lib.

Ответ 6

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

Вы больше не можете просто использовать Install-Package, чтобы указать на локальный файл. (Вероятно, потому что элемент PackageReference не поддерживает пути к файлам, он позволяет указывать только идентификатор пакета.)

Сначала вам нужно рассказать VS о местоположении вашего пакета, а затем добавить его в проект. Большинство людей делают это в диспетчере пакетов NuGet и добавляют локальную папку в качестве источника (Инструменты >> Параметры >> Диспетчер пакетов NuGet >> Источники пакетов). Но это означает, что ваше местоположение зависимостей не выполняется (до контроля версий) с остальной частью вашей кодовой базы.

Локальные пакеты NuGet с использованием относительного пути

Это добавит источник пакета, который применяется только к определенному решению, и вы можете использовать относительные пути.

Что вам нужно сделать, так это создать файл nuget.config в том же каталоге, что и ваш .sln файл. Настройте файл с необходимыми источниками (-ами) пакета. Когда вы затем откроете решение в VS2017, будут доступны любые файлы.nupkg из этих исходных папок. (Вы увидите источник, указанный в диспетчере пакетов, и вы найдете пакеты на вкладке "Обзор", когда вы управляете пакетами для проекта.)

Вот пример nuget.config чтобы вы начали:

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

Предыстория

Моим вариантом использования этой функции является то, что у меня есть несколько экземпляров одного репозитория кода на моей машине. Там есть общая библиотека в кодовой базе, которая была опубликована/развернута как файл.nupkg. Такой подход позволяет различным зависимым решениям на протяжении всей нашей кодовой базы использовать пакет в одном экземпляре репо. Кроме того, кто-то со свежей установкой VS2017 может просто проверять код везде, где захочет, а зависимые решения будут успешно восстановлены и построены.