Skip to content

Commit c0cca33

Browse files
authored
Check in shim typeforwards and remove the dependency on the underlying targeting packs (#79147)
* Make .NET Framework and .NET Standard facade changes trackable Fixes #65997 GenFacade is a tool that inspects a contract assembly's public API surface safe area, compares it with a passed in assembly closure and emits a C# source file with type forwards in it so that the satisfied API can be forwarded from the contract to the "implementation". GenFacades is used to construct the .NETFramework and the .NETStandard shim assemblies which live under src/libraries/shims/. The generated source file isn't checked into the tree, it's placed into the project's intermediate output path. IMO it would help if we check these files into the tree so that any changes that impact shims - intentional or unintentional - are trackable. As an example, I just recently refactored how the shims are structured under src/libraries/shims and unintentionally removed a type forward from an assembly. I only noticed this regression by pure luck later. The priority of this issue just rose because source build plans to remove their .NET Framework reference assembly packages during the .NET 8 release. That means that we can't automatically generate the type forwards during source-build. I will work on removing the dependency and check the type forwards in instead. * Make shim projects declare the dependencies explicitly Also remove the System.Xml special runtime project which isn't necessary anymore as the compiler now allows type forwards to Obsolete types with error=true. * System.Core build fix * Remove unused file * Revert "Remove unused file" This reverts commit 2f5d410. * Add README and fix GenFacades zero version logic
1 parent 39c02d9 commit c0cca33

File tree

89 files changed

+6950
-286
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+6950
-286
lines changed

src/libraries/System.Private.Xml/src/System/Xml/IApplicationResourceStreamResolver.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77

88
namespace System.Xml
99
{
10-
// we must specify the error flag as false so that we can typeforward this type without hitting a compile error.
11-
[Obsolete("This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.")]
10+
[Obsolete("This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.", true)]
1211
[EditorBrowsable(EditorBrowsableState.Never)]
1312
public interface IApplicationResourceStreamResolver
1413
{

src/libraries/System.Xml.ReaderWriter/src/CompatibilitySuppressions.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/libraries/shims.proj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
<TargetFramework>$(NetCoreAppCurrent)-$(TargetOS)</TargetFramework>
55
</PropertyGroup>
66

7-
<!-- Reference the source project shims which themselves then reference their corresponding ref project, if it exists. -->
7+
<!-- Reference the source project shims which themselves then reference their corresponding ref project, if such exist. -->
88
<ItemGroup>
9-
<ProjectReference Include="shims\src\*.csproj" />
9+
<ProjectReference Include="shims\*\src\*.csproj" />
1010
</ItemGroup>
1111

1212
<ItemGroup Condition="'$(RefOnly)' == 'true'">
13-
<ReferenceShimProject Include="shims\ref\*.csproj" />
13+
<ReferenceShimProject Include="shims\*\ref\*.csproj" />
1414
<ProjectReference Include="@(ReferenceShimProject)" />
1515
<!-- Omit projects which depend on source projects to be built. -->
16-
<ProjectReference Remove="@(ReferenceShimProject->'shims\src\%(Filename)%(Extension)')" />
16+
<ProjectReference Remove="@(ReferenceShimProject->'shims\%(Filename)\src\%(Filename)%(Extension)')" />
1717
</ItemGroup>
1818

1919
</Project>

src/libraries/shims/Directory.Build.props

Lines changed: 21 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,59 +4,39 @@
44

55
<PropertyGroup>
66
<TargetFramework>$(NetCoreAppCurrent)-$(TargetOS)</TargetFramework>
7-
<Nullable>disable</Nullable>
7+
<EnableDefaultItems>true</EnableDefaultItems>
88
<!-- By default make shims compile against reference assemblies. -->
99
<CompileUsingReferenceAssemblies>true</CompileUsingReferenceAssemblies>
10-
<IsPartialFacadeAssembly>true</IsPartialFacadeAssembly>
11-
<GenFacadesIgnoreMissingTypes>true</GenFacadesIgnoreMissingTypes>
12-
<!-- ensure the desktop compat shims reference the lowest possible version of dependencies
13-
since those do not all ship as part of the framework and we don't want to force apps
14-
to reference the latest packages.
15-
netstandard.dll doesn't need to do this since it has no dangling dependencies -->
16-
<GenFacadesForceZeroVersionSeeds Condition="'$(MSBuildProjectName)' != 'netstandard'">true</GenFacadesForceZeroVersionSeeds>
10+
<!-- Ensure the .NET Framework shims reference the lowest possible version of dependencies since
11+
those do not all ship as part of the framework and we don't want to force apps to reference the
12+
latest packages. netstandard.dll doesn't need to do this since it has no dangling dependencies. -->
13+
<GenFacadesForceZeroVersionSeeds Condition="$(NetFxReference.Contains('$(MSBuildProjectName);'))">true</GenFacadesForceZeroVersionSeeds>
1714
<!-- Opt out of some features which are on by default. -->
1815
<EnableLibraryImportGenerator>false</EnableLibraryImportGenerator>
1916
<ApiCompatValidateAssemblies>false</ApiCompatValidateAssemblies>
2017
<ILLinkTrimAssembly>false</ILLinkTrimAssembly>
2118
<AddOSPlatformAttributes>false</AddOSPlatformAttributes>
19+
<!-- Allow shim ref projects to reference source projects which is required for referencing shared
20+
framework dependencies. -->
21+
<SkipValidateReferenceAssemblyProjectReferences Condition="'$(IsReferenceAssemblyProject)' == 'true'">true</SkipValidateReferenceAssemblyProjectReferences>
2222
</PropertyGroup>
2323

24-
<ItemGroup Condition="'$(MSBuildProjectName)' == 'System.Runtime' or
25-
'$(MSBuildProjectName)' == 'mscorlib' or
26-
'$(MSBuildProjectName)' == 'netstandard'">
27-
<!-- Omit System.Void since C# doesn't permit the use of the `System.Void`
28-
typename and instead requires callers to use the `void` keyword. -->
29-
<GenFacadesOmitType Include="System.Void" />
30-
<Compile Include="$(MSBuildThisFileDirectory)System.Void.cs" />
31-
</ItemGroup>
32-
33-
<ItemGroup>
34-
<!-- Include any forwards needed by both ref and src projects. -->
35-
<Compile Include="$(MSBuildThisFileDirectory)$(MSBuildProjectName).forwards.cs"
36-
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildProjectName).forwards.cs')" />
37-
</ItemGroup>
38-
39-
<ItemGroup>
40-
<ProjectReference Include="$(MSBuildThisFileDirectory)..\sfx-src.proj" Condition="'$(RefOnly)' != 'true'" />
41-
<ProjectReference Include="$(MSBuildThisFileDirectory)..\sfx-ref.proj" Condition="'$(RefOnly)' == 'true'" />
42-
</ItemGroup>
24+
<PropertyGroup Condition="'$(IsSourceProject)' == 'true'">
25+
<ContractProject>$(MSBuildProjectDirectory)\..\ref\$(MSBuildProjectName).csproj</ContractProject>
26+
<IsRuntimeAndReferenceAssembly Condition="!Exists('$(ContractProject)')">true</IsRuntimeAndReferenceAssembly>
27+
</PropertyGroup>
4328

44-
<ItemGroup Condition="'$(MSBuildProjectName)' != 'netstandard'">
45-
<!-- .NET Framework shims compile against OOBs and the netstandard shim. -->
46-
<ProjectReference Include="$(MSBuildThisFileDirectory)src\netstandard.csproj" />
47-
<ProjectReference Include="$(MSBuildThisFileDirectory)..\oob-src.proj" Condition="'$(RefOnly)' != 'true'" />
48-
<ProjectReference Include="$(MSBuildThisFileDirectory)..\oob-ref.proj" Condition="'$(RefOnly)' == 'true'" />
29+
<ItemGroup Condition="'$(IsSourceProject)' == 'true'">
30+
<!-- If an extra reference source project exists, use its source. -->
31+
<Compile Include="$(MSBuildProjectDirectory)\..\ref\$(MSBuildProjectName).cs"
32+
Condition="'$(IsRuntimeAndReferenceAssembly)' != 'true'" />
4933
</ItemGroup>
5034

51-
<ItemGroup>
52-
<!-- System.Data.SqlClient is not live built anymore, reference it manually to avoid tfm nuget selection fallback errors
53-
when the TargetOS i.e. is MacCatalyst. Set Private false so that it doesn't flow down to consuming projects. -->
54-
<PackageDownload Include="System.Data.SqlClient" Version="[$(SystemDataSqlClientVersion)]" />
55-
<Reference Include="$([MSBuild]::NormalizePath('$(NuGetPackageRoot)', 'system.data.sqlclient', '$(SystemDataSqlClientVersion)', 'ref', 'netcoreapp2.1', 'System.Data.SqlClient.dll'))" Private="false" />
56-
57-
<!-- Use PackageDownload to not bring in System.Drawing.Common's dependencies (Microsoft.Win32.SystemEvents). -->
58-
<PackageDownload Include="System.Drawing.Common" Version="[$(SystemDrawingCommonVersion)]" />
59-
<Reference Include="$([MSBuild]::NormalizePath('$(NuGetPackageRoot)', 'system.drawing.common', '$(SystemDrawingCommonVersion)', 'lib', 'net7.0', 'System.Drawing.Common.dll'))" Private="false" />
35+
<ItemGroup Condition="'$(GenFacadesForceZeroVersionSeeds)' == 'true'">
36+
<PackageReference Include="Microsoft.DotNet.GenFacades"
37+
Version="$(MicrosoftDotNetGenFacadesVersion)"
38+
PrivateAssets="all"
39+
IsImplicitlyDefined="true" />
6040
</ItemGroup>
6141

6242
</Project>
Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,9 @@
11
<Project>
2-
<Import Project="..\Directory.Build.targets" />
32

4-
<PropertyGroup>
5-
<!-- Tell GenFacades which msbuild item maps to the reference assembly to use. -->
6-
<GenFacadesReferenceAssemblyItemName>GenFacadesReferenceAssembly</GenFacadesReferenceAssemblyItemName>
7-
</PropertyGroup>
3+
<Import Project="..\Directory.Build.targets" />
84

9-
<!-- Tell GenFacades to use reference assemblies instead of the implementation assemblies (for most of the shims). -->
10-
<PropertyGroup Condition="'$(CompileUsingReferenceAssemblies)' != 'false'">
5+
<PropertyGroup Condition="'$(CompileUsingReferenceAssemblies)' == 'true'">
116
<TrimOutPrivateAssembliesFromReferencePath>true</TrimOutPrivateAssembliesFromReferencePath>
12-
<GeneratePartialFacadeSourceDependsOn>$(GeneratePartialFacadeSourceDependsOn);FindReferenceAssembliesForReferences</GeneratePartialFacadeSourceDependsOn>
13-
<GenFacadesReferencePathItemName>ReferencePathWithRefAssemblies</GenFacadesReferencePathItemName>
147
</PropertyGroup>
158

16-
<ItemGroup Condition="'$(MSBuildProjectName)' != 'netstandard'">
17-
<PackageDownload Include="Microsoft.NETFramework.ReferenceAssemblies.net48"
18-
Version="[$(MicrosoftNETFrameworkReferenceAssembliesLatestPackageVersion)]" />
19-
<GenFacadesReferenceAssembly Include="$([MSBuild]::NormalizePath('$(NuGetPackageRoot)', 'microsoft.netframework.referenceassemblies.net48', '$(MicrosoftNETFrameworkReferenceAssembliesLatestPackageVersion)', 'build', '.NETFramework', 'v4.8', '$(MSBuildProjectName).dll'))" />
20-
</ItemGroup>
219
</Project>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.AppWinStyle))]
5+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CallType))]
6+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Collection))]
7+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.ComClassAttribute))]
8+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompareMethod))]
9+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.BooleanType))]
10+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.ByteType))]
11+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.CharArrayType))]
12+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.CharType))]
13+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.Conversions))]
14+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.DateType))]
15+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.DecimalType))]
16+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.DesignerGeneratedAttribute))]
17+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.DoubleType))]
18+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.IncompleteInitialization))]
19+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.IntegerType))]
20+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.LateBinding))]
21+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.LikeOperator))]
22+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.LongType))]
23+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.NewLateBinding))]
24+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.ObjectFlowControl))]
25+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.ObjectType))]
26+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.Operators))]
27+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.OptionCompareAttribute))]
28+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.OptionTextAttribute))]
29+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.ProjectData))]
30+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.ShortType))]
31+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.SingleType))]
32+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute))]
33+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag))]
34+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.StringType))]
35+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.Utils))]
36+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.CompilerServices.Versioned))]
37+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Constants))]
38+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.ControlChars))]
39+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Conversion))]
40+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.DateAndTime))]
41+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.DateFormat))]
42+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.DateInterval))]
43+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.DueDate))]
44+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.ErrObject))]
45+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileAttribute))]
46+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.DeleteDirectoryOption))]
47+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.FieldType))]
48+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.FileSystem))]
49+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.MalformedLineException))]
50+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.RecycleOption))]
51+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.SearchOption))]
52+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.SpecialDirectories))]
53+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.TextFieldParser))]
54+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.UICancelOption))]
55+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileIO.UIOption))]
56+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FileSystem))]
57+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Financial))]
58+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FirstDayOfWeek))]
59+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.FirstWeekOfYear))]
60+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.HideModuleNameAttribute))]
61+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Information))]
62+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Interaction))]
63+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.MsgBoxResult))]
64+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.MsgBoxStyle))]
65+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.MyGroupCollectionAttribute))]
66+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.OpenAccess))]
67+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.OpenMode))]
68+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.OpenShare))]
69+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.SpcInfo))]
70+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.Strings))]
71+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.TabInfo))]
72+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.TriState))]
73+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.VariantType))]
74+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.VBFixedArrayAttribute))]
75+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.VBFixedStringAttribute))]
76+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.VBMath))]
77+
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Microsoft.VisualBasic.VbStrConv))]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<AssemblyVersion>10.0.0.0</AssemblyVersion>
5+
<StrongNameKeyId>Microsoft</StrongNameKeyId>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<ProjectReference Include="$(LibrariesProjectRoot)Microsoft.VisualBasic.Core\src\Microsoft.VisualBasic.Core.vbproj" />
10+
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
11+
</ItemGroup>
12+
13+
</Project>

src/libraries/shims/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# .NETCoreApp shared framework facade assemblies ("shims")
2+
3+
The projects under this directory are pure facade assemblies (also called shims) and don't contain any source code aside from `System.Runtime.CompilerServices.TypeForwardedTo` assembly attributes.
4+
5+
Currently, the following types of facades are checked-in:
6+
- .NET Framework facade assemblies (i.e. mscorlib.dll) which enable loading .NET Framework compiled assemblies into a .NETCoreApp environment.
7+
- .NET Standard facade assembly (netstandard.dll) which enables loading .NET Standard compiled assemblies into a .NETCoreApp environment.
8+
9+
Some facade folders contain reference source projects ("ref") in addition to source projects ("src"). Those might exist because of the source project referencing internal types. If only a source project exists, the compiled assembly will be included in both the targeting and the runtime pack.

0 commit comments

Comments
 (0)