Skip to content

New dependency resolver can miss detecting downgrade #14737

@jeffkl

Description

@jeffkl

NuGet Product Used

MSBuild.exe

Product Version

all

Worked before?

No response

Impact

None

Repro Steps & Context

Create the following project files:

ClassLibrary1.csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Azure.Core" />
    <PackageReference Include="System.ClientModel" />
  </ItemGroup>
</Project>

Directory.Packages.props

<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
    <CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
  </PropertyGroup>
  <ItemGroup>
    <PackageVersion Include="Azure.Core" Version="1.50.0" />
    <PackageVersion Include="System.ClientModel" Version="1.0.0" />
  </ItemGroup>
</Project>

To workaround the problem, users have to enable to legacy dependency resolver:

<PropertyGroup>
  <RestoreUseLegacyDependencyResolver>true</RestoreUseLegacyDependencyResolver>
</PropertyGroup>

Verbose Logs

The following error should be logged:


Detected package downgrade: System.ClientModel from 1.8.0 to 1.0.0. Reference the package directly from the project to select a different version.
  ClassLibrary1 -> Azure.Core 1.50.0 -> System.ClientModel (>= 1.8.0)
  ClassLibrary1 -> System.ClientModel (>= 1.0.0)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions