Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ms_windows_ms_sql:package_config_prerelease_nuget_packages [2021/12/08 08:58] adminms_windows_ms_sql:package_config_prerelease_nuget_packages [2021/12/08 11:32] (current) admin
Line 3: Line 3:
 не скачивает пакеты с PreRelease-версиями. не скачивает пакеты с 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). \\ **Nuget** опирается на **packages.config**, который постепенно заменяется на **PackageReference** (Visual Studio 2017 версии 15.7 и более поздние https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference). \\
-nuget предполагает, что prerelease пакеты не используются при сборке Release. А чтобы можно было собрать Release с prerelease пакетами нужно либо иметь их в локальном кеше, либо - явно указывать в cproj файлике с помощью конструкции: +Вот немного про миграцию в сторону **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>   <ItemGroup>
     <PackageReference Include="Gems.ServiceBus.Emitting" Version="3.7.12-DC-0-more-tracing-dev.2" />     <PackageReference Include="Gems.ServiceBus.Emitting" Version="3.7.12-DC-0-more-tracing-dev.2" />
   </ItemGroup>   </ItemGroup>
 +То есть, чтобы **nuget restore** корректно обработал prerelease-пакеты, нужно в **cproj** заменить:
 +<code>
 +  <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>
 +</code>
 +на
 +<code>
 +  <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>
 +</code>
 https://github.com/NuGet/Home/issues/6196 \\ https://github.com/NuGet/Home/issues/6196 \\
 https://github.com/NuGet/Home/issues/2944 \\ 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/
  • ms_windows_ms_sql/package_config_prerelease_nuget_packages.txt
  • Last modified: 2021/12/08 11:32
  • by admin