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