NU1109:偵測到套件降級:PackageB 從 2.0.0 降級到集中定義的 1.0.0。 將集中管理的套件版本更新為較高版本。
'Project' -> 'PackageA' 1.0.0 -> 'PackageB' (>= 2.0.0)
'Project' -> 'PackageB' (>= 1.0.0)
問題
項目設定為使用 NuGet Central 套件管理 ,並將可轉移的套件相依性釘選到比相依性套件指定的版本還低的版本。 解決套件時,NuGet 會遵守 直接相依性-wins 規則,而釘選的套件版本會覆寫相依性套件所指定的版本,這會導致在運行時間造成問題的套件版本較低。
<PropertyGroup>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="PackageA" Version="1.0.0" />
<PackageVersion Include="PackageB" Version="1.0.0" />
</ItemGroup>
解決方法
-
PackageVersionPackageB將更新為較高版本的套件。
<ItemGroup>
<PackageVersion Include="PackageB" Version="2.0.0" />
</ItemGroup>
- 停用中央套件管理可轉移釘選,以允許使用相依性套件指定的套件版本。
<PropertyGroup>
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>