Принудительная загрузка определенного пакета nuget в локальную папку пакетов - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть решение .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, поэтому нет никаких пакетов .config.

Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2019

Есть ли способ заставить 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"

Надеюсь, это поможет.

...