Принудительная загрузка определенного пакета nuget в локальную папку пакетов
У меня есть решение.NET Core Visual Studio 2017, которое ссылается на Json.Net 12.0.1. Все отлично работает в моей среде разработки. Когда я запускаю восстановление dotnet, Json.Net загружается в Newtonsoft.Json.12.0.1 в папке пакетов решений.
Однако, когда я запускаю восстановление на моем сервере сборки, решение хочет выбрать версию Json.Net из глобального кэша nuget.
Я могу принудительно загрузить все пакеты в локальную папку с пакетами, но в конечном итоге используется другое соглашение об именах (Newtonsoft.Json/12.0.1), и, конечно, все-таки повторно загружается все то, что существует в глобальных переменных. Так что это просто создает много накладных расходов и все еще не работает.
Я полагаю, что мог бы поработать над фокусом в моих файлах.csproj в oder, чтобы обеспечить другой путь подсказки для Json.Net, но это кажется слишком сложным.
Есть ли способ заставить Nuget загрузить Json.net (или любой пакет) в определенную папку в локальных пакетах или иным образом решить эту проблему с помощью инструментов CLI?
Опять же, это.NET Core, поэтому нет ни одного package.config.
Спасибо!
1 ответ
Есть ли способ заставить Nuget загрузить Json.net (или любой пакет) в определенную папку в локальных пакетах или иным образом решить эту проблему с помощью инструментов CLI?
Да, вы можете поместить файл NuGet.Config рядом с решением со следующим содержимым:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages"/>
</config>
</configuration>
Затем перезапустите Visual Studio, снова откройте решение и щелкните правой кнопкой мыши решение, выберите Восстановить пакеты NuGet. Все пакеты хранятся в репозитории проекта.
Мне интересно, могу ли я направить nuget только для загрузки одного пакета в локальную папку пакетов.
Да, вы можете скачать пакет nuget с помощью следующей командной строки:
nuget.exe install YourPackageName -source "https://api.nuget.org/v3/index.json" -OutputDirectory "D:\Test"
Надеюсь это поможет.