Description
During .NET modernization, customers frequently encounter transitive dependency conflicts that block upgrades:
-
NU1109 Downgrade Errors - NuGet restore fails when a transitive dependency requires a lower version than what's already resolved. Build fails with no clear guidance on which packages are in conflict.
-
Runtime Binding Failures - Projects build successfully but fail at runtime with FileLoadException or TypeLoadException due to major version mismatches in transitive dependencies.
-
Diamond Dependencies - Multiple packages depend on the same transitive package with different version requirements, leading to unexpected behavior.
Customer Impact: These issues are time-consuming to diagnose because:
-
Conflicts involve indirect dependencies not visible in project files
-
project.assets.json is complex and difficult to parse manually
-
Root cause identification requires understanding the full dependency graph
More info here: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2745164/
Description
During .NET modernization, customers frequently encounter transitive dependency conflicts that block upgrades:
NU1109 Downgrade Errors - NuGet restore fails when a transitive dependency requires a lower version than what's already resolved. Build fails with no clear guidance on which packages are in conflict.
Runtime Binding Failures - Projects build successfully but fail at runtime with FileLoadException or TypeLoadException due to major version mismatches in transitive dependencies.
Diamond Dependencies - Multiple packages depend on the same transitive package with different version requirements, leading to unexpected behavior.
Customer Impact: These issues are time-consuming to diagnose because:
Conflicts involve indirect dependencies not visible in project files
project.assets.json is complex and difficult to parse manually
Root cause identification requires understanding the full dependency graph
More info here: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2745164/