-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[release/7.0] Set AssemblyName.ProcessorArchitecture for compatibility. #81101
Conversation
Tagging subscribers to this area: @dotnet/area-system-reflection-metadata Issue DetailsBackport of #80581 to release/7.0 /cc @VSadov Customer ImpactTestingRiskIMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.
|
This is touching System.Reflection.Metadata that also ships as independent nuget package. I think you need include packaging authoring change as part of the PR to make sure that we ship a new version of System.Reflection.Metadata package. |
Are there examples how this is done? We probably did this before. |
https://github.com/dotnet/runtime/search?q=library-servicing.md&type=issues shows examples where this was done before |
Do we think this might reintroduce warnings in MSBuild in servicing? While that might be desirable, we should probably call that out as a risk. cc @rainersigwald |
This is a good concern but I think it's ok. This will reactivate the longstanding MSBuild codepath that covers the non- Mitigations:
|
Got it, do you think we should up the risk to "medium" and plan for documentation (release notes) that warn folks about this? |
Added When you commit this breaking change:
Tagging @dotnet/compat for awareness of the breaking change. |
Per tactics we need a relnote. It should ideally link to https://learn.microsoft.com/visualstudio/msbuild/errors/msb3270, which has docs on the error and property. |
Conclusion from tactics was "yes" to my question above. Let's file the breaking change doc for this - warning folks that the fix will bring back the warning. We should tag @rbhanda in that breaking change issue to ensure the details get added to servicing release notes. |
Just to make sure - do I need to do the above or it will be someone who better understands what the msbuild issue is about, or the committer of this change? |
Approved by Tactics for 7.0.4. |
Fixes: #77697
Partial backport of #80581 to release/7.0
Backport of #80878 (test fix)
Includes only metadata reader fixes. The consistency changes to
AssemblyName.CoreCLR
are not ported to reduce risk of incompatibilities in a servicing release.Customer Impact
Moving assembly name parsing to unified managed implementation unintentionally omitted computing
ProcessorArchitecture
.Even though the
ProcessorArchitecture
is a deprecated API, it was a breaking change in some rare scenarios.This change brings back a simplified form of computing
ProcessorArchitecture
."Simplified" here is that we do not handle completely broken/not-loadable assemblies. In those cases we return default value. This should be sufficient to satisfy the scenarios that still use this, otherwise deprecated, API.
Testing
A test was added and is backported together with this change.
Risk
Low. We are reintroducing an implementation of an API instead of always returning a default value.