[release/8.0-staging] Special casing System.Guid
for COM VARIANT marshalling
#100734
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #100377 to release/8.0-staging
Customer Impact
VARIANT marshalling in .NET 5+ requires a TLB
for COM records (i.e., ValueType instances). This
means that without a runtime provided TLB, users
must define their own TLB for runtime types or
define their own transfer types.
We address this here by deferring to the NetFX
mscorlib's TLB.
Regression
This support has never been in .NET Core 3.1/.NET 5+. This is helping porting efforts from .NET Framework to .NET 5+.
Risk
Low, this is enabling a narrow feature that was present in .NET Framework.