dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.41k stars 4.76k forks source link

[release/9.0-staging] ILC: Allow OOB reference to upgrade framework assembly #110058

Open github-actions[bot] opened 11 hours ago

github-actions[bot] commented 11 hours ago

Backport of #109988 to release/9.0-staging

/cc @sbomer

Customer Impact

Regression

The inability to upgrade framework assemblies via OOB reference in ILC is not a regression, but changes in the particular OOB package the customer tried made this look like a regression when they upgraded to the latest version of this package.

Testing

Tested locally in a few different configurations:

No automated tests were added because we don't have a good place for this kind of integration test (see discussion in https://github.com/dotnet/runtime/pull/109988).

Risk

Low. The impact is limited to native AOT scenarios, and is targeted specifically at the scenario where a PackageReference introduces a conflict with a framework assembly. The new error only shows up in scenarios that were already broken, but turns an unpredictable failure mode (failure during ILC with an unhelpful error message about some implementation details) into a predictable one.

dotnet-policy-service[bot] commented 11 hours ago

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas See info in area-owners.md if you want to be subscribed.