Как я могу установить файл.nupkg пакета NuGet локально?

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

Не могу увидеть мои пакеты

10 ответов

Решение

Меню ИнструментыПараметрыДиспетчер пакетов

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

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

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

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

Install-Package SomePackage -Source C:\PathToThePackageDir\

Для файлов.nupkg я люблю использовать:

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

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

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

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

Локальные пакеты 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 может просто извлекать код в любом месте, и зависимые решения будут успешно восстановлены и собраны.

  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

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

Просто для обновления есть небольшие изменения для пользователей Visual Studio 2015.

Чтобы использовать или установить пакет вручную, выберите Сервис -> Параметры -> Диспетчер пакетов NuGet -> Источники пакетов.

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

Чтобы выбрать добавленный пакет, щелкните правой кнопкой мыши свое решение и выберите " Управление пакетами Nuget ".

Выпадающий список находится справа и выберите "Обзор", чтобы просмотреть пакеты, указанные в источнике папки. Если в этом источнике папки нет пакета nuget, он будет пустым:

В 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, Второй переключатель отключит все другие источники, что хорошо, например, для автономных сценариев.

Недавно хочу установить squirrel.windows, Я старался Install-Package squirrel.windows -Version 2.0.1из https://www.nuget.org/packages/squirrel.windows/, но это не удалось с некоторыми ошибками. Я скачал squirrel.windows.2.0.1.nupkg и сохраните это в D:\Downloads\, то я могу установить его успешно через Install-Package squirrel.windows -verbose -Source D:\Downloads\ -Scope CurrentUser -SkipDependencies в PowerShell.

  1. упакуйте свою библиотеку одним из трех вариантов:
  • Visual Studio (csproj> Свойства> Пакет> Отметьте «Создать пакет NuGet при сборке». Затем создайте решение)
  • dotnet CLI (в командной строке в папке проекта:, затем dotnet pack команды)
  • NuGet CLI (в командной строке в папке проекта: dotnet build, тогда nuget pack команда)
  1. добавить сгенерированный пакет (в папке проекта bin> Debug (or Release)> *.nupkg файл) в офлайн-канал (расположение по умолчанию в VS2019: C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\) с использованием nuget add команда
  2. В VS: Управление пакетами NuGet> Вверху справа: изменить источник пакета на Microsoft Visual Studio Online Packages.

Подробную инструкцию можно найти здесь или на yt

Другие вопросы по тегам