Для тех, кому в будущем интересно, правильный ответ - использовать локальный канал . Моя проблема заключалась в том, что я кэшировал пакеты nuget, которые разрешались во время dotnet restore
.
Следующая команда перед восстановлением решила мои проблемы:
dotnet nuget locals all --clear
dotnet restore
По сути, вам нужно иметь в своем решении конфигурацию nuget
(NuGet.config), которая настраивает локальный каталог пакетов:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="LocalDev" value="./my-project/artifacts" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
Где каталог artifacts / содержит все пакеты .nupkg
, которые вы хотите использовать во время восстановления. Очевидно, что также важно убедиться, что эти пакеты собраны / скомпилированы перед тем, как вы dotnet restore
в своем основном решении:
dotnet pack /p:Version=5.22.12 --configuration Release --force --output "%~dp0artifacts";