[release/7.0] Set AssemblyName.ProcessorArchitecture for compatibility.#81101
[release/7.0] Set AssemblyName.ProcessorArchitecture for compatibility.#81101carlossanlop merged 5 commits intorelease/7.0from
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.CoreCLRare 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
ProcessorArchitectureis 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.