Проблема

nuget restore 

не скачивает пакеты с PreRelease-версиями. Nuget опирается на packages.config, который постепенно заменяется на PackageReference (Visual Studio 2017 версии 15.7 и более поздние https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference).
Вот немного про миграцию в сторону PackageReference: https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference
Вот тут: https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-restore сказано, что “ .NET не использует файл packages.config. Вместо этого он использует элементы <PackageReference> для пакетов NuGet.” nuget предполагает, что prerelease пакеты не используются при сборке Release. А чтобы можно было собрать Release с prerelease пакетами нужно либо иметь их в локальном кеше, либо - явно указывать в cproj файлике с помощью конструкции:

<ItemGroup>
  <PackageReference Include="Gems.ServiceBus.Emitting" Version="3.7.12-DC-0-more-tracing-dev.2" />
</ItemGroup>

То есть, чтобы nuget restore корректно обработал prerelease-пакеты, нужно в cproj заменить:

  <ItemGroup>
    <Reference Include="Contour, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\..\packages\Contour.3.0.0-pr8\lib\netstandard2.0\Contour.dll</HintPath>
    </Reference>
    <Reference Include="Gems.ServiceBus.Emitting, Version=3.7.11.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\..\packages\Gems.ServiceBus.Emitting.3.7.11.0\lib\netstandard2.0\Gems.ServiceBus.Emitting.dll</HintPath>
    </Reference>
  </ItemGroup>

на

  <ItemGroup>
    <PackageReference Include="Contour" Version="3.0.0-pr8" />
    <PackageReference Include="Gems.ServiceBus.Emitting" Version="3.7.12-DC-0-more-tracing-dev.2" />
  </ItemGroup>

https://github.com/NuGet/Home/issues/6196
https://github.com/NuGet/Home/issues/2944

При этом, nuget ведет себя довольно странно. Он отказывается находить данный пакет:

nuget search -PreRelease Gems.ServiceBus.Emitting

Но при этом - нормально устанавливает:

nuget install -Version 3.7.12-DC-0-more-tracing-dev.2 -PreRelease Gems.ServiceBus.Emitting -OutputDirectory ./packages/
Enter your comment. Wiki syntax is allowed:
 
  • ms_windows_ms_sql/package_config_prerelease_nuget_packages.txt
  • Last modified: 2021/12/08 11:32
  • by admin