Build the shim assemblies as part of libs.sfx (#89005)
authorViktor Hofer <viktor.hofer@microsoft.com>
Tue, 18 Jul 2023 15:24:35 +0000 (17:24 +0200)
committerGitHub <noreply@github.com>
Tue, 18 Jul 2023 15:24:35 +0000 (17:24 +0200)
* Build the shim assemblies as part of libs.sfx

The shims build was intentionally kept out of the libs.sfx subset as
some shims reference out-of-band assemblies that also need to be built.

Since that change was made, the shim assemblies now don't reference all out-of-band
assemblies by default anymore and instead use fine grained dependencies.
Because of that, the number of out-of-band projects referenced and built
as part of the shims build is much smaller (~10 projects).

This fixes issues with ouf-of-band source generators not being able to
target the live targeting pack. These source generators need the shims
(more precisely the netstandard.dll shims) as some of the referenced
Microsoft.CodeAnalysis packages don't provide a .NETCoreApp assembly.

* Add fake assemblies for out-of-band type forward destinations

* Fix issues with nested classes and wrong type destinations

* Disable binplacing

* Make stubs private

* Disable symbols for stubs

* Add build protection to validate API compatibility of shims

51 files changed:
src/libraries/Directory.Build.targets
src/libraries/System.Windows.Extensions/ref/System.Windows.Extensions.csproj
src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj
src/libraries/apicompat/ApiCompat.proj
src/libraries/frameworklist.targets [deleted file]
src/libraries/oob.proj
src/libraries/sfx-ref.proj
src/libraries/sfx-src.proj
src/libraries/sfx.proj
src/libraries/shims.proj [deleted file]
src/libraries/shims/Directory.Build.targets [deleted file]
src/libraries/shims/System.Configuration/src/System.Configuration.csproj
src/libraries/shims/System.Core/src/System.Core.csproj
src/libraries/shims/System.Data/Directory.Build.props
src/libraries/shims/System.Data/ref/System.Data.csproj
src/libraries/shims/System.Data/src/System.Data.csproj
src/libraries/shims/System.Drawing/src/System.Drawing.csproj
src/libraries/shims/System.Net/src/System.Net.csproj
src/libraries/shims/System.Runtime.Serialization/src/System.Runtime.Serialization.csproj
src/libraries/shims/System.Security/src/System.Security.csproj
src/libraries/shims/System.ServiceModel.Web/src/System.ServiceModel.Web.csproj
src/libraries/shims/System.ServiceProcess/src/System.ServiceProcess.csproj
src/libraries/shims/System.Transactions/src/System.Transactions.csproj
src/libraries/shims/System/ref/System.csproj
src/libraries/shims/System/src/System.csproj
src/libraries/shims/WindowsBase/src/WindowsBase.csproj
src/libraries/shims/mscorlib/ref/mscorlib.csproj
src/libraries/shims/mscorlib/src/mscorlib.csproj
src/libraries/shims/stubs/Directory.Build.props [new file with mode: 0644]
src/libraries/shims/stubs/Directory.Build.targets [new file with mode: 0644]
src/libraries/shims/stubs/Microsoft.Win32.SystemEvents.csproj [new file with mode: 0644]
src/libraries/shims/stubs/README.md [new file with mode: 0644]
src/libraries/shims/stubs/System.CodeDom.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Configuration.ConfigurationManager.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Data.Odbc.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Data.OleDb.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Data.SqlClient.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Diagnostics.EventLog.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Diagnostics.PerformanceCounter.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Drawing.Common.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.IO.Packaging.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.IO.Ports.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Runtime.Serialization.Schema.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Security.Cryptography.Pkcs.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Security.Cryptography.ProtectedData.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Security.Cryptography.Xml.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Security.Permissions.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.ServiceModel.Syndication.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.ServiceProcess.ServiceController.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Threading.AccessControl.csproj [new file with mode: 0644]
src/libraries/shims/stubs/System.Windows.Extensions.csproj [new file with mode: 0644]

index 805e947..cb64475 100644 (file)
   <Import Project="$(RepositoryEngineeringDir)targetingpacks.targets" />
 
   <PropertyGroup>
-      <!-- Libraries non test projects shouldn't reference compat shims. -->
+      <!-- Libraries ref and source projects which don't bring in dependencies from outside the repository shouldn't reference compat shims. -->
     <SkipTargetingPackShimReferences Condition="'$(UseLocalTargetingRuntimePack)' == 'true' and
                                                 '$(IsTestProject)' != 'true' and
-                                                '$(IsTestSupportProject)' != 'true'">true</SkipTargetingPackShimReferences>
+                                                '$(IsTestSupportProject)' != 'true' and
+                                                '$(IsGeneratorProject)' != 'true'">true</SkipTargetingPackShimReferences>
   </PropertyGroup>
 
   <Import Project="$(RepositoryEngineeringDir)codeOptimization.targets" />
index ea2db0c..1bfbbdc 100644 (file)
@@ -1,6 +1,8 @@
 <Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
     <TargetFrameworks>$(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum)</TargetFrameworks>
+    <SkipValidateReferenceAssemblyProjectReferences>true</SkipValidateReferenceAssemblyProjectReferences>
   </PropertyGroup>
 
   <ItemGroup>
@@ -9,7 +11,8 @@
   </ItemGroup>
 
   <ItemGroup>
-    <!-- Avoid a PackageReference to System.Drawing.Common this reference is only needed for TypeForwards -->
-    <PackageReference Include="System.Drawing.Common" Version="$(SystemDrawingCommonVersion)" PrivateAssets="All" />
+    <!-- Avoid a product dependency to System.Drawing.Common, this reference is only needed for TypeForwards -->
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Drawing.Common.csproj" PrivateAssets="all" />
   </ItemGroup>
+
 </Project>
\ No newline at end of file
index 952695b..e55f185 100644 (file)
@@ -1,4 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
     <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppPrevious)-windows;$(NetCoreAppPrevious);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)</TargetFrameworks>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
@@ -93,7 +94,8 @@ System.Security.Cryptography.X509Certificates.X509SelectionFlag</PackageDescript
   </ItemGroup>
 
   <ItemGroup>
-    <!-- Avoid a PackageReference to System.Drawing.Common this reference is only needed for TypeForwards -->
-    <PackageReference Include="System.Drawing.Common" Version="$(SystemDrawingCommonVersion)" PrivateAssets="All" />
+    <!-- Avoid a product dependency to System.Drawing.Common, this reference is only needed for TypeForwards -->
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Drawing.Common.csproj" PrivateAssets="all" />
   </ItemGroup>
+
 </Project>
index 8d799d9..06c48f5 100644 (file)
@@ -33,7 +33,6 @@
   <!-- For API comparison, ApiCompat needs the inbox assemblies (including shims) and to resolve type forwards, the out-of-band assemblies. -->
   <ItemGroup>
     <ProjectReference Include="..\sfx-src.proj" OutputItemType="SharedFrameworkAssembly" />
-    <ProjectReference Include="..\shims.proj" OutputItemType="SharedFrameworkAssembly" />
     <ProjectReference Include="..\oob-src.proj" OutputItemType="OOBAssembly" />
   </ItemGroup>
 
     <PackageDownload Include="NETStandard.Library.Ref" Version="[$(NETStandardLibraryRefVersion)]" />
     <PackageDownload Include="NETStandard.Library" Version="[$(NetStandardLibraryVersion)]" />
     <PackageReference Include="Microsoft.DotNet.ApiCompat.Task" Version="$(MicrosoftDotNetApiCompatTaskVersion)" IsImplicitlyDefined="true" />
+
+    <!-- Restore and reference assemblies not built in runtime anymore, required for resolving type forward on both comparison sides. -->
+    <ApiCompatTypeForwardDestinationPackage Include="System.Data.SqlClient" PackageVersion="$(SystemDataSqlClientVersion)" TargetFramework="netcoreapp2.1" />
+    <ApiCompatTypeForwardDestinationPackage Include="System.Drawing.Common" PackageVersion="$(SystemDrawingCommonVersion)" TargetFramework="net7.0" />
+
+    <!-- Restore and reference assemblies required for resolving type forwards on the baseline (left) side. -->
+    <ApiCompatLeftTypeForwardDestinationPackage Include="@(ApiCompatTypeForwardDestinationPackage)"  />
+    <ApiCompatLeftTypeForwardDestinationPackage
+      Include="
+        Microsoft.Win32.SystemEvents;
+        System.CodeDom;
+        System.Configuration.ConfigurationManager;
+        System.Data.Odbc;
+        System.Data.OleDb;
+        System.Diagnostics.EventLog;
+        System.Diagnostics.PerformanceCounter;
+        System.IO.Packaging;
+        System.IO.Ports;
+        System.Runtime.Serialization.Schema;
+        System.Security.Cryptography.Pkcs;
+        System.Security.Cryptography.ProtectedData;
+        System.Security.Cryptography.Xml;
+        System.Security.Permissions;
+        System.ServiceModel.Syndication;
+        System.ServiceProcess.ServiceController;
+        System.Threading.AccessControl;
+        System.Windows.Extensions"
+      PackageVersion="$(ApiCompatNetCoreAppBaselineVersion)"
+      TargetFramework="$(ApiCompatNetCoreAppBaselineTFM)" />
+    <PackageDownload Include="@(ApiCompatLeftTypeForwardDestinationPackage)" Version="[%(PackageVersion)]" />
   </ItemGroup>
 
   <Target Name="RunApiCompat"
           DependsOnTargets="FindReferenceAssembliesForReferences;CollectApiCompatInputs"
           AfterTargets="Build"
-          Inputs="@(ReferencePathWithRefAssemblies);$(ApiCompatNetStandard20BaselineFile);$(ApiCompatNetStandard21BaselineFile);$(ApiCompatNetCoreAppLatestStableBaselineFile);@(ApiCompatExcludeAttributesFile)"
+          Inputs="$(MSBuildThisFileFullPath);@(ReferencePathWithRefAssemblies);$(ApiCompatNetStandard20BaselineFile);$(ApiCompatNetStandard21BaselineFile);$(ApiCompatNetCoreAppLatestStableBaselineFile);@(ApiCompatExcludeAttributesFile)"
           Outputs="$(IntermediateOutputPath)$(TargetArchitecture)-marker.txt">
     <Message Text="ApiCompat -> Comparing $(NetCoreAppCurrent) reference assemblies against .NETStandard 2.x and .NETCoreApp $(ApiCompatNetCoreAppBaselineVersion)..." Importance="high"  />
 
     <ItemGroup>
+      <ApiCompatNetCoreAppLatestStableAssemblyReference Include="@(ApiCompatLeftTypeForwardDestinationPackage->'$(NuGetPackageRoot)$([System.String]::new('%(ApiCompatLeftTypeForwardDestinationPackage.Identity)').ToLowerInvariant())\%(ApiCompatLeftTypeForwardDestinationPackage.PackageVersion)\lib\%(ApiCompatLeftTypeForwardDestinationPackage.TargetFramework)\%(ApiCompatLeftTypeForwardDestinationPackage.Identity).dll')" />
+
       <ApiCompatRightAssembly Include="@(ReferencePathWithRefAssemblies->WithMetadataValue('IsPrivateAssembly', 'false')->WithMetadataValue('OutputItemType', 'SharedFrameworkAssembly'))" />
-      <ApiCompatRightAssemblyReference Include="@(ReferencePathWithRefAssemblies->WithMetadataValue('IsPrivateAssembly', 'false')->WithMetadataValue('OutputItemType', 'OOBAssembly'), ',')" />
+      <ApiCompatRightAssemblyReferenceFromPackage Include="@(ApiCompatTypeForwardDestinationPackage->'$(NuGetPackageRoot)$([System.String]::new('%(ApiCompatTypeForwardDestinationPackage.Identity)').ToLowerInvariant())\%(ApiCompatTypeForwardDestinationPackage.PackageVersion)\lib\%(ApiCompatTypeForwardDestinationPackage.TargetFramework)\%(ApiCompatTypeForwardDestinationPackage.Identity).dll')" />
+      <ApiCompatRightAssemblyReference Include="@(ReferencePathWithRefAssemblies->WithMetadataValue('IsPrivateAssembly', 'false')->WithMetadataValue('OutputItemType', 'OOBAssembly'));
+                                                @(ApiCompatRightAssemblyReferenceFromPackage)" />
     </ItemGroup>
 
     <!-- ApiCompat: NetCoreAppCurrent <-> .NETCoreApp ApiCompatNetCoreAppBaselineVersion -->
       ExcludeAttributesFiles="@(ApiCompatExcludeAttributesFile)"
       LeftAssembliesTransformationPattern="@(ApiCompatNetCoreAppLatestStableLeftAssembliesTransformationPattern)"
       RightAssembliesTransformationPattern="@(ApiCompatNetCoreAppCurrentRightAssembliesTransformationPattern)"
-      RightAssembliesReferences="@(ApiCompatRightAssemblyReference)" />
+      LeftAssembliesReferences="@(ApiCompatNetCoreAppLatestStableAssemblyReference, ',')"
+      RightAssembliesReferences="@(ApiCompatRightAssemblyReference, ',')" />
 
     <!-- ApiCompat: NetCoreAppCurrent <-> netstandard2.1 -->
     <Microsoft.DotNet.ApiCompat.Task.ValidateAssembliesTask
       ExcludeAttributesFiles="@(ApiCompatExcludeAttributesFile)"
       LeftAssembliesTransformationPattern="@(ApiCompatNetStandard21LeftAssembliesTransformationPattern)"
       RightAssembliesTransformationPattern="@(ApiCompatNetCoreAppCurrentRightAssembliesTransformationPattern)"
-      RightAssembliesReferences="@(ApiCompatRightAssemblyReference)" />
+      RightAssembliesReferences="@(ApiCompatRightAssemblyReference, ',')" />
 
     <!-- ApiCompat: NetCoreAppCurrent <-> netstandard2.0 -->
     <Microsoft.DotNet.ApiCompat.Task.ValidateAssembliesTask
       ExcludeAttributesFiles="@(ApiCompatExcludeAttributesFile)"
       LeftAssembliesTransformationPattern="@(ApiCompatNetStandard20LeftAssembliesTransformationPattern)"
       RightAssembliesTransformationPattern="@(ApiCompatNetCoreAppCurrentRightAssembliesTransformationPattern)"
-      RightAssembliesReferences="@(ApiCompatRightAssemblyReference)" />
+      RightAssembliesReferences="@(ApiCompatRightAssemblyReference, ',')" />
 
     <!-- Create a marker file which serves as the target's output to enable incremental builds. -->
     <Touch Files="$(IntermediateOutputPath)$(TargetArchitecture)-marker.txt"
diff --git a/src/libraries/frameworklist.targets b/src/libraries/frameworklist.targets
deleted file mode 100644 (file)
index 9e0719a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<Project Sdk="Microsoft.DotNet.SharedFramework.Sdk">
-
-  <PropertyGroup>
-    <IsPackable>false</IsPackable>
-    <FrameworkListOutputPath>$(MicrosoftNetCoreAppRefPackDataDir)FrameworkList.xml</FrameworkListOutputPath>
-  </PropertyGroup>
-
-  <Target Name="GetGenerateFrameworkListFileInputs">
-    <Error Text="Shared framework assemblies must be built before the framework list can be generated."
-           Condition="'@(SharedFrameworkAssembly)' == '' or '@(SharedFrameworkAnalyzerAssembly)' == ''" />
-
-    <ItemGroup>
-      <SharedFrameworkAssemblyWithReferenceAssembly Include="@(SharedFrameworkAssembly->WithMetadataValue('IsPrivateAssembly', 'false')->HasMetadata('ReferenceAssembly'))" />
-      <SharedFrameworkAssemblyWithoutReferenceAssembly Include="@(SharedFrameworkAssembly->WithMetadataValue('IsPrivateAssembly', 'false'))"
-                                                       Exclude="@(SharedFrameworkAssemblyWithReferenceAssembly)" />
-
-      <FrameworkListInputFile Include="@(SharedFrameworkAssemblyWithReferenceAssembly->Metadata('ReferenceAssembly'));
-                                       @(SharedFrameworkAssemblyWithoutReferenceAssembly)"
-                              TargetPath="ref/$(NetCoreAppCurrent)" />
-      <FrameworkListInputFile Include="@(SharedFrameworkAnalyzerAssembly)"
-                              TargetPath="%(SharedFrameworkAnalyzerAssembly.GeneratorProjectBaseTargetPath)" />
-    </ItemGroup>
-  </Target>
-
-  <UsingTask TaskName="CreateFrameworkListFile" AssemblyFile="$(DotNetSharedFrameworkTaskFile)"/>
-  <Target Name="GenerateFrameworkListFile"
-          DependsOnTargets="GetGenerateFrameworkListFileInputs"
-          AfterTargets="Build"
-          Inputs="@(FrameworkListInputFile)"
-          Outputs="$(FrameworkListOutputPath)">
-    <ItemGroup>
-      <FrameworkListRootAttribute Include="Name" Value="$(NetCoreAppCurrentBrandName)" />
-      <FrameworkListRootAttribute Include="TargetFrameworkIdentifier" Value="$(NetCoreAppCurrentIdentifier)" />
-      <FrameworkListRootAttribute Include="TargetFrameworkVersion" Value="$(NetCoreAppCurrentVersion)" />
-      <FrameworkListRootAttribute Include="FrameworkName" Value="$(MicrosoftNetCoreAppFrameworkName)" />
-    </ItemGroup>
-
-    <CreateFrameworkListFile Files="@(FrameworkListInputFile)"
-                             TargetFile="$(FrameworkListOutputPath)"
-                             TargetFilePrefixes="ref/;runtimes/;analyzers/"
-                             RootAttributes="@(FrameworkListRootAttribute)" />
-  </Target>
-
-</Project>
index 40bacbe..3f7031e 100644 (file)
@@ -7,10 +7,8 @@
   </PropertyGroup>
 
   <ItemGroup Condition="'$(BuildTargetFramework)' == '$(NetCoreAppCurrent)' or '$(BuildTargetFramework)' == ''">
-    <ProjectReference Include="sfx-gen.proj" OutputItemType="SharedFrameworkAnalyzerAssembly" />
     <ProjectReference Include="sfx-src.proj" OutputItemType="SharedFrameworkAssembly" />
     <ProjectReference Include="oob-src.proj" OutputItemType="OOBAssembly" />
-    <ProjectReference Include="shims.proj" OutputItemType="SharedFrameworkAssembly" />
 
     <ProjectReference Include="apicompat\ApiCompat.proj"
                       Condition="'$(DotNetBuildFromSource)' != 'true' and '$(ApiCompatValidateAssemblies)' != 'false'" />
   <!-- Support building reference projects only. -->
   <ItemGroup Condition="'$(RefOnly)' == 'true'">
     <ProjectReference Remove="@(ProjectReference)" />
-    <ProjectReference Include="sfx-gen.proj" OutputItemType="SharedFrameworkAnalyzerAssembly" />
     <ProjectReference Include="sfx-ref.proj" OutputItemType="SharedFrameworkAssembly" />
     <ProjectReference Include="oob-ref.proj" />
-    <ProjectReference Include="shims.proj" OutputItemType="SharedFrameworkAssembly" />
   </ItemGroup>
 
   <ImportGroup Condition="'$(BuildTargetFramework)' == '$(NetCoreAppCurrent)' or '$(BuildTargetFramework)' == ''">
-    <!-- Re-generate the targeting pack's framework list to include shims. -->
-    <Import Project="frameworklist.targets" />
     <!-- Import the illink file which contains some of the logic required to illink the out-of-band assemblies. -->
     <Import Project="$(RepositoryEngineeringDir)illink.targets" />
   </ImportGroup>
index 7d6da7a..984b1fe 100644 (file)
                                System.Private.CoreLib\ref\System.Private.CoreLib.csproj" />
   </ItemGroup>
 
+  <ItemGroup Condition="'$(RefOnly)' == 'true'">
+    <ProjectReference Include="shims\*\src\*.csproj" />
+    <ReferenceShimProject Include="shims\*\ref\*.csproj" />
+    <ProjectReference Include="@(ReferenceShimProject)" />
+    <!-- Omit projects which depend on source projects to be built. -->
+    <ProjectReference Remove="@(ReferenceShimProject->'shims\%(Filename)\src\%(Filename)%(Extension)')" />
+  </ItemGroup>
+
 </Project>
index 8e7679d..934f31e 100644 (file)
@@ -15,7 +15,8 @@
                           Exclude="@(NetCoreAppLibrary->'%(Identity)\src\%(Identity).csproj');
                                    Microsoft.VisualBasic.Core\src\Microsoft.VisualBasic.Core.vbproj" />
     <ProjectReference Include="@(AnyProject);
-                               $(CoreLibProject)"
+                               $(CoreLibProject);
+                               shims\*\src\*.csproj"
                       Exclude="@(NonNetCoreAppProject)" />
   </ItemGroup>
 
index d4f4c5b..d3c0ed4 100644 (file)
@@ -1,8 +1,12 @@
 <Project Sdk="Microsoft.Build.NoTargets">
 
+  <Sdk Name="Microsoft.DotNet.SharedFramework.Sdk" />
+
   <PropertyGroup>
     <TargetFramework>$(NetCoreAppCurrent)-$(TargetOS)</TargetFramework>
     <BuildInParallel>false</BuildInParallel>
+    <IsPackable>false</IsPackable>
+    <FrameworkListOutputPath>$(MicrosoftNetCoreAppRefPackDataDir)FrameworkList.xml</FrameworkListOutputPath>
   </PropertyGroup>
 
   <ItemGroup>
     <ProjectReference Include="sfx-ref.proj">
       <OutputItemType Condition="'$(RefOnly)' == 'true'">SharedFrameworkAssembly</OutputItemType>
     </ProjectReference>
+     <!-- The RefOnly condition exists to support building the reference source projects only. -->
+    <ProjectReference Include="sfx-src.proj" OutputItemType="SharedFrameworkAssembly" Condition="'$(RefOnly)' != 'true'" />
     <ProjectReference Include="sfx-gen.proj" OutputItemType="SharedFrameworkAnalyzerAssembly" />
   </ItemGroup>
 
-  <!-- Support building only the reference assemblies. -->
-  <ItemGroup Condition="'$(RefOnly)' != 'true'">
-    <ProjectReference Include="sfx-src.proj" OutputItemType="SharedFrameworkAssembly" />
-  </ItemGroup>
+  <Target Name="GetGenerateFrameworkListFileInputs">
+    <Error Text="Shared framework assemblies must be built before the framework list can be generated."
+           Condition="'@(SharedFrameworkAssembly)' == '' or '@(SharedFrameworkAnalyzerAssembly)' == ''" />
+
+    <ItemGroup>
+      <SharedFrameworkAssemblyWithReferenceAssembly Include="@(SharedFrameworkAssembly->WithMetadataValue('IsPrivateAssembly', 'false')->HasMetadata('ReferenceAssembly'))" />
+      <SharedFrameworkAssemblyWithoutReferenceAssembly Include="@(SharedFrameworkAssembly->WithMetadataValue('IsPrivateAssembly', 'false'))"
+                                                       Exclude="@(SharedFrameworkAssemblyWithReferenceAssembly)" />
+
+      <FrameworkListInputFile Include="@(SharedFrameworkAssemblyWithReferenceAssembly->Metadata('ReferenceAssembly'));
+                                       @(SharedFrameworkAssemblyWithoutReferenceAssembly)"
+                              TargetPath="ref/$(NetCoreAppCurrent)" />
+      <FrameworkListInputFile Include="@(SharedFrameworkAnalyzerAssembly)"
+                              TargetPath="%(SharedFrameworkAnalyzerAssembly.GeneratorProjectBaseTargetPath)" />
+    </ItemGroup>
+  </Target>
 
   <!-- Generate the targeting pack's framework list so that out-of-band projects can leverage it. -->
-  <Import Project="frameworklist.targets" />
+  <UsingTask TaskName="CreateFrameworkListFile" AssemblyFile="$(DotNetSharedFrameworkTaskFile)"/>
+  <Target Name="GenerateFrameworkListFile"
+          DependsOnTargets="GetGenerateFrameworkListFileInputs"
+          AfterTargets="Build"
+          Inputs="@(FrameworkListInputFile)"
+          Outputs="$(FrameworkListOutputPath)">
+    <ItemGroup>
+      <FrameworkListRootAttribute Include="Name" Value="$(NetCoreAppCurrentBrandName)" />
+      <FrameworkListRootAttribute Include="TargetFrameworkIdentifier" Value="$(NetCoreAppCurrentIdentifier)" />
+      <FrameworkListRootAttribute Include="TargetFrameworkVersion" Value="$(NetCoreAppCurrentVersion)" />
+      <FrameworkListRootAttribute Include="FrameworkName" Value="$(MicrosoftNetCoreAppFrameworkName)" />
+    </ItemGroup>
+
+    <CreateFrameworkListFile Files="@(FrameworkListInputFile)"
+                             TargetFile="$(FrameworkListOutputPath)"
+                             TargetFilePrefixes="ref/;runtimes/;analyzers/"
+                             RootAttributes="@(FrameworkListRootAttribute)" />
+  </Target>
 
   <!-- Copy the intellisense file to the targeting pack directory. -->
   <Target Name="CopyDocumentationFiles"
diff --git a/src/libraries/shims.proj b/src/libraries/shims.proj
deleted file mode 100644 (file)
index c632573..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<Project Sdk="Microsoft.Build.Traversal">
-
-  <PropertyGroup>
-    <TargetFramework>$(NetCoreAppCurrent)-$(TargetOS)</TargetFramework>
-  </PropertyGroup>
-
-  <!-- Reference the source project shims which themselves then reference their corresponding ref project, if such exist. -->
-  <ItemGroup>
-    <ProjectReference Include="shims\*\src\*.csproj" />
-  </ItemGroup>
-
-  <ItemGroup Condition="'$(RefOnly)' == 'true'">
-    <ReferenceShimProject Include="shims\*\ref\*.csproj" />
-    <ProjectReference Include="@(ReferenceShimProject)" />
-    <!-- Omit projects which depend on source projects to be built. -->
-    <ProjectReference Remove="@(ReferenceShimProject->'shims\%(Filename)\src\%(Filename)%(Extension)')" />
-  </ItemGroup>
-
-</Project>
diff --git a/src/libraries/shims/Directory.Build.targets b/src/libraries/shims/Directory.Build.targets
deleted file mode 100644 (file)
index c04623e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<Project>
-
-  <Import Project="..\Directory.Build.targets" />
-
-</Project>
index 1115b52..e9274e9 100644 (file)
@@ -6,9 +6,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Configuration.ConfigurationManager.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 0fe3ba3..5fe9560 100644 (file)
@@ -7,19 +7,19 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\src\System.Collections.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.PerformanceCounter\src\System.Diagnostics.PerformanceCounter.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.IO.MemoryMappedFiles\src\System.IO.MemoryMappedFiles.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Pipes\src\System.IO.Pipes.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Pipes.AccessControl\src\System.IO.Pipes.AccessControl.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Linq\src\System.Linq.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Pipes\src\System.IO.Pipes.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Linq.Expressions\src\System.Linq.Expressions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Linq.Parallel\src\System.Linq.Parallel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Linq.Queryable\src\System.Linq.Queryable.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Linq\src\System.Linq.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\src\System.Runtime.InteropServices.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography\src\System.Security.Cryptography.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\src\System.Threading.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Diagnostics.EventLog.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Diagnostics.PerformanceCounter.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index a051b0f..a1e089c 100644 (file)
@@ -5,16 +5,6 @@
   <PropertyGroup>
     <AssemblyVersion>4.0.0.0</AssemblyVersion>
     <StrongNameKeyId>ECMA</StrongNameKeyId>
-    <SystemDataSqlClientTFM>netcoreapp2.1</SystemDataSqlClientTFM>
-    <!-- Keep in sync with TFM exposed in source-build-reference-packages/src/referencePackages/src/system.data.sqlclient/4.8.5 -->
-    <SystemDataSqlClientTFM Condition="'$(ArcadeBuildFromSource)' == 'true'">net6.0</SystemDataSqlClientTFM>
   </PropertyGroup>
 
-  <ItemGroup>
-    <!-- System.Data.SqlClient is not live built anymore, reference it manually to avoid tfm nuget selection fallback errors
-         when the TargetOS i.e. is MacCatalyst. Set Private false so that it doesn't flow down to consuming projects. -->
-    <PackageDownload Include="System.Data.SqlClient" Version="[$(SystemDataSqlClientVersion)]" />
-    <Reference Include="$([MSBuild]::NormalizePath('$(NuGetPackageRoot)', 'system.data.sqlclient', '$(SystemDataSqlClientVersion)', 'ref', '$(SystemDataSqlClientTFM)', 'System.Data.SqlClient.dll'))" Private="false" />
-  </ItemGroup>
-
 </Project>
index f826056..039168e 100644 (file)
@@ -2,10 +2,11 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.Data.Common\ref\System.Data.Common.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Data.Odbc\ref\System.Data.Odbc.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Data.OleDb\ref\System.Data.OleDb.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\ref\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\ref\System.Security.Permissions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Data.Odbc.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Data.OleDb.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Data.SqlClient.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
\ No newline at end of file
index dac2634..24614f5 100644 (file)
@@ -7,10 +7,11 @@
   <ItemGroup>
     <ProjectReference Include="$(CoreLibProject)" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Data.Common\src\System.Data.Common.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Data.Odbc\src\System.Data.Odbc.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Data.OleDb\src\System.Data.OleDb.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Data.Odbc.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Data.OleDb.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Data.SqlClient.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 31d9400..d880083 100644 (file)
@@ -7,16 +7,11 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.TypeConverter\src\System.ComponentModel.TypeConverter.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Drawing.Primitives\src\System.Drawing.Primitives.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <!-- Use PackageDownload to not bring in System.Drawing.Common's dependencies (Microsoft.Win32.SystemEvents). -->
-    <PackageDownload Include="System.Drawing.Common" Version="[$(SystemDrawingCommonVersion)]" />
-    <Reference Include="$([MSBuild]::NormalizePath('$(NuGetPackageRoot)', 'system.drawing.common', '$(SystemDrawingCommonVersion)', 'lib', 'net7.0', 'System.Drawing.Common.dll'))" Private="false" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Configuration.ConfigurationManager.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Drawing.Common.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index b8aa8ec..49010ce 100644 (file)
@@ -13,7 +13,7 @@
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebClient\src\System.Net.WebClient.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebHeaderCollection\src\System.Net.WebHeaderCollection.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 730bc66..3225572 100644 (file)
@@ -6,11 +6,11 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Serialization.Json\src\System.Runtime.Serialization.Json.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Serialization.Primitives\src\System.Runtime.Serialization.Primitives.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Serialization.Schema\src\System.Runtime.Serialization.Schema.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Serialization.Xml\src\System.Runtime.Serialization.Xml.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Runtime.Serialization.Schema.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 1236849..d42370e 100644 (file)
@@ -7,10 +7,11 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography.Pkcs\src\System.Security.Cryptography.Pkcs.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography.ProtectedData\src\System.Security.Cryptography.ProtectedData.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography.Xml\src\System.Security.Cryptography.Xml.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Cryptography.Pkcs.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Cryptography.ProtectedData.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Cryptography.Xml.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Windows.Extensions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 9d6657a..882640d 100644 (file)
@@ -6,9 +6,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Serialization.Json\src\System.Runtime.Serialization.Json.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.ServiceModel.Syndication\src\System.ServiceModel.Syndication.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.ServiceModel.Syndication.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index d0d6ae5..8945138 100644 (file)
@@ -7,8 +7,8 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.ServiceProcess.ServiceController\src\System.ServiceProcess.ServiceController.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.ServiceProcess.ServiceController.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 22f9ef0..367db27 100644 (file)
@@ -7,8 +7,8 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Transactions.Local\src\System.Transactions.Local.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index c8d1ae3..0e2d555 100644 (file)
@@ -2,27 +2,21 @@
 
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)Microsoft.Win32.Primitives\ref\Microsoft.Win32.Primitives.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)Microsoft.Win32.SystemEvents\ref\Microsoft.Win32.SystemEvents.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.CodeDom\ref\System.CodeDom.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\ref\System.Collections.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Concurrent\ref\System.Collections.Concurrent.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.NonGeneric\ref\System.Collections.NonGeneric.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Specialized\ref\System.Collections.Specialized.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel\ref\System.ComponentModel.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\ref\System.Collections.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.EventBasedAsync\ref\System.ComponentModel.EventBasedAsync.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.Primitives\ref\System.ComponentModel.Primitives.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.TypeConverter\ref\System.ComponentModel.TypeConverter.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Configuration.ConfigurationManager\ref\System.Configuration.ConfigurationManager.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.EventLog\ref\System.Diagnostics.EventLog.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel\ref\System.ComponentModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.FileVersionInfo\ref\System.Diagnostics.FileVersionInfo.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.PerformanceCounter\ref\System.Diagnostics.PerformanceCounter.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.StackTrace\ref\System.Diagnostics.StackTrace.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.TextWriterTraceListener\ref\System.Diagnostics.TextWriterTraceListener.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.TraceSource\ref\System.Diagnostics.TraceSource.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Compression\ref\System.IO.Compression.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.IO.FileSystem.Watcher\ref\System.IO.FileSystem.Watcher.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Ports\ref\System.IO.Ports.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.HttpListener\ref\System.Net.HttpListener.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.Mail\ref\System.Net.Mail.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.NameResolution\ref\System.Net.NameResolution.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebClient\ref\System.Net.WebClient.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebHeaderCollection\ref\System.Net.WebHeaderCollection.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebProxy\ref\System.Net.WebProxy.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebSockets\ref\System.Net.WebSockets.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebSockets.Client\ref\System.Net.WebSockets.Client.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebSockets\ref\System.Net.WebSockets.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ObjectModel\ref\System.ObjectModel.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\ref\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\ref\System.Runtime.InteropServices.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\ref\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography\ref\System.Security.Cryptography.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\ref\System.Security.Permissions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Text.RegularExpressions\ref\System.Text.RegularExpressions.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\ref\System.Threading.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.AccessControl\ref\System.Threading.AccessControl.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.Thread\ref\System.Threading.Thread.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Windows.Extensions\ref\System.Windows.Extensions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\ref\System.Threading.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\Microsoft.Win32.SystemEvents.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.CodeDom.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Configuration.ConfigurationManager.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Diagnostics.EventLog.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Diagnostics.PerformanceCounter.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.IO.Ports.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Threading.AccessControl.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Windows.Extensions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
\ No newline at end of file
index 14ebdbd..f744ee9 100644 (file)
@@ -7,27 +7,21 @@
   <ItemGroup>
     <ProjectReference Include="$(CoreLibProject)" />
     <ProjectReference Include="$(LibrariesProjectRoot)Microsoft.Win32.Primitives\src\Microsoft.Win32.Primitives.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)Microsoft.Win32.SystemEvents\src\Microsoft.Win32.SystemEvents.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.CodeDom\src\System.CodeDom.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\src\System.Collections.csproj" SkipUseReferenceAssembly="true" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Concurrent\src\System.Collections.Concurrent.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Specialized\src\System.Collections.Specialized.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel\src\System.ComponentModel.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\src\System.Collections.csproj" SkipUseReferenceAssembly="true" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.EventBasedAsync\src\System.ComponentModel.EventBasedAsync.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.Primitives\src\System.ComponentModel.Primitives.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel.TypeConverter\src\System.ComponentModel.TypeConverter.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.EventLog\src\System.Diagnostics.EventLog.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel\src\System.ComponentModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.FileVersionInfo\src\System.Diagnostics.FileVersionInfo.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.PerformanceCounter\src\System.Diagnostics.PerformanceCounter.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.Process\src\System.Diagnostics.Process.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.StackTrace\src\System.Diagnostics.StackTrace.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.TextWriterTraceListener\src\System.Diagnostics.TextWriterTraceListener.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.TraceSource\src\System.Diagnostics.TraceSource.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Compression\src\System.IO.Compression.csproj" SkipUseReferenceAssembly="true" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.IO.FileSystem.Watcher\src\System.IO.FileSystem.Watcher.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Ports\src\System.IO.Ports.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.HttpListener\src\System.Net.HttpListener.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.Mail\src\System.Net.Mail.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.NameResolution\src\System.Net.NameResolution.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebClient\src\System.Net.WebClient.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebHeaderCollection\src\System.Net.WebHeaderCollection.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebProxy\src\System.Net.WebProxy.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebSockets\src\System.Net.WebSockets.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebSockets.Client\src\System.Net.WebSockets.Client.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Net.WebSockets\src\System.Net.WebSockets.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ObjectModel\src\System.ObjectModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Private.Uri\src\System.Private.Uri.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\src\System.Runtime.InteropServices.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography\src\System.Security.Cryptography.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Text.RegularExpressions\src\System.Text.RegularExpressions.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\src\System.Threading.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.Thread\src\System.Threading.Thread.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.AccessControl\src\System.Threading.AccessControl.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Windows.Extensions\src\System.Windows.Extensions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\src\System.Threading.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\Microsoft.Win32.SystemEvents.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.CodeDom.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Configuration.ConfigurationManager.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Diagnostics.EventLog.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Diagnostics.PerformanceCounter.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.IO.Ports.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Threading.AccessControl.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Windows.Extensions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
\ No newline at end of file
index 4bc1821..fafb956 100644 (file)
@@ -6,10 +6,10 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="$(LibrariesProjectRoot)System.IO.Packaging\src\System.IO.Packaging.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ObjectModel\src\System.ObjectModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.IO.Packaging.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index 9369286..52c0664 100644 (file)
@@ -5,7 +5,6 @@
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Concurrent\ref\System.Collections.Concurrent.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.NonGeneric\ref\System.Collections.NonGeneric.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\ref\System.Collections.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\ref\System.Collections.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel\ref\System.ComponentModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Console\ref\System.Console.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.Contracts\ref\System.Diagnostics.Contracts.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.AccessControl\ref\System.Security.AccessControl.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Claims\ref\System.Security.Claims.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography\ref\System.Security.Cryptography.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\ref\System.Security.Permissions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Principal.Windows\ref\System.Security.Principal.Windows.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Text.Encoding.Extensions\ref\System.Text.Encoding.Extensions.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.AccessControl\ref\System.Threading.AccessControl.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.Overlapped\ref\System.Threading.Overlapped.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.Tasks.Parallel\ref\System.Threading.Tasks.Parallel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.ThreadPool\ref\System.Threading.ThreadPool.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.Thread\ref\System.Threading.Thread.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\ref\System.Threading.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Threading.AccessControl.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
index deba26a..9b5d4f7 100644 (file)
@@ -10,7 +10,6 @@
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Concurrent\src\System.Collections.Concurrent.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections.NonGeneric\src\System.Collections.NonGeneric.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\src\System.Collections.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Collections\src\System.Collections.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ComponentModel\src\System.ComponentModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Console\src\System.Console.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.StackTrace\src\System.Diagnostics.StackTrace.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.ObjectModel\src\System.ObjectModel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Reflection.TypeExtensions\src\System.Reflection.TypeExtensions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Resources.Writer\src\System.Resources.Writer.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.CompilerServices.VisualC\src\System.Runtime.CompilerServices.VisualC.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\src\System.Runtime.InteropServices.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.Serialization.Formatters\src\System.Runtime.Serialization.Formatters.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.AccessControl\src\System.Security.AccessControl.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Claims\src\System.Security.Claims.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Cryptography\src\System.Security.Cryptography.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Permissions\src\System.Security.Permissions.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj" />
-    <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.AccessControl\src\System.Threading.AccessControl.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading.Tasks.Parallel\src\System.Threading.Tasks.Parallel.csproj" />
     <ProjectReference Include="$(LibrariesProjectRoot)System.Threading\src\System.Threading.csproj" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Security.Permissions.csproj" PrivateAssets="all" />
+    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Threading.AccessControl.csproj" PrivateAssets="all" />
   </ItemGroup>
 
 </Project>
diff --git a/src/libraries/shims/stubs/Directory.Build.props b/src/libraries/shims/stubs/Directory.Build.props
new file mode 100644 (file)
index 0000000..60dcac3
--- /dev/null
@@ -0,0 +1,36 @@
+<Project>
+
+  <PropertyGroup>
+    <OutDirName>$(MSBuildProjectName)$([System.IO.Path]::DirectorySeparatorChar)stub</OutDirName>
+  </PropertyGroup>
+
+  <Import Project="..\Directory.Build.props" />
+
+  <PropertyGroup>
+    <TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
+    <!-- Opt out of some features which are on by default. -->
+    <EnableLibraryImportGenerator>false</EnableLibraryImportGenerator>
+    <ApiCompatValidateAssemblies>false</ApiCompatValidateAssemblies>
+    <ILLinkTrimAssembly>false</ILLinkTrimAssembly>
+    <AddOSPlatformAttributes>false</AddOSPlatformAttributes>
+    <GenerateDocumentationFile>false</GenerateDocumentationFile>
+    <HasMatchingContract>false</HasMatchingContract>
+    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
+    <EnableBinPlacing>false</EnableBinPlacing>
+    <DebugType>none</DebugType>
+    <DebugSymbols>false</DebugSymbols>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <AssemblyAttribute Include="System.Runtime.CompilerServices.ReferenceAssemblyAttribute" />
+    <AssemblyAttribute Include="System.Reflection.AssemblyFlags">
+      <_Parameter1>(System.Reflection.AssemblyNameFlags)0x70</_Parameter1>
+      <_Parameter1_IsLiteral>true</_Parameter1_IsLiteral>
+    </AssemblyAttribute>
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime\src\System.Runtime.csproj" PrivateAssets="all" Condition="'$(DisableImplicitFrameworkReferences)' == 'true'" />
+  </ItemGroup>
+
+</Project>
diff --git a/src/libraries/shims/stubs/Directory.Build.targets b/src/libraries/shims/stubs/Directory.Build.targets
new file mode 100644 (file)
index 0000000..227c169
--- /dev/null
@@ -0,0 +1,38 @@
+<Project>
+
+  <Import Project="..\..\Directory.Build.targets" />
+
+  <PropertyGroup>
+    <ForwardedTypesCompilePath>$(IntermediateOutputPath)$(MSBuildProjectName).ForwardedTypes.cs</ForwardedTypesCompilePath>
+  </PropertyGroup>
+
+  <Target Name="CreateCompileSourceForForwardedTypes"
+          BeforeTargets="CoreCompile"
+          Inputs="$(MSBuildProjectFullPath);$(MSBuildThisFileFullPath)"
+          Outputs="$(ForwardedTypesCompilePath)">
+    <Error Text="The 'ForwardedType' item must not be empty." Condition="'@(ForwardedType)' == ''" />
+
+    <ItemGroup>
+      <ForwardedType Namespace="$([System.String]::new('%(Identity)').Substring(0, $([System.String]::new('%(Identity)').LastIndexOf('.'))))" />
+      <ForwardedType TypeName="$([System.String]::new('%(Identity)').Substring($([MSBuild]::Add($([System.String]::new('%(Identity)').LastIndexOf('.')), 1))))" />
+
+      <ForwardedTypeWithoutInnerClass Include="@(ForwardedType->WithMetadataValue('InnerClass', ''))" />
+      <ForwardedTypeWithInnerClass Include="@(ForwardedType)"
+                                   Exclude="@(ForwardedTypeWithoutInnerClass)" />
+
+      <ForwardedTypesLine Include="namespace %(ForwardedTypeWithoutInnerClass.Namespace) { public static class %(ForwardedTypeWithoutInnerClass.TypeName) { } }"
+                          Condition="'@(ForwardedTypeWithoutInnerClass)' != ''" />
+      <ForwardedTypesLine Include="namespace %(ForwardedTypeWithInnerClass.Namespace) { public static class %(ForwardedTypeWithInnerClass.TypeName) { public static class $([System.String]::new('%(ForwardedTypeWithInnerClass.InnerClass)').Replace(';', ' { } public static class ')) { } } }"
+                          Condition="'@(ForwardedTypeWithInnerClass)' != ''" />
+    </ItemGroup>
+
+    <WriteLinesToFile File="$(ForwardedTypesCompilePath)"
+                      Lines="@(ForwardedTypesLine)"
+                      Overwrite="true" />
+
+    <ItemGroup>
+      <Compile Include="$(ForwardedTypesCompilePath)" />
+      <FileWrites Include="$(ForwardedTypesCompilePath)" />
+    </ItemGroup>
+  </Target>
+</Project> 
diff --git a/src/libraries/shims/stubs/Microsoft.Win32.SystemEvents.csproj b/src/libraries/shims/stubs/Microsoft.Win32.SystemEvents.csproj
new file mode 100644 (file)
index 0000000..8ace931
--- /dev/null
@@ -0,0 +1,27 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="Microsoft.Win32.PowerModeChangedEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.PowerModeChangedEventHandler" />
+    <ForwardedType Include="Microsoft.Win32.PowerModes" />
+    <ForwardedType Include="Microsoft.Win32.SessionEndReasons" />
+    <ForwardedType Include="Microsoft.Win32.SessionEndedEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.SessionEndedEventHandler" />
+    <ForwardedType Include="Microsoft.Win32.SessionEndingEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.SessionEndingEventHandler" />
+    <ForwardedType Include="Microsoft.Win32.SessionSwitchEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.SessionSwitchEventHandler" />
+    <ForwardedType Include="Microsoft.Win32.SessionSwitchReason" />
+    <ForwardedType Include="Microsoft.Win32.SystemEvents" />
+    <ForwardedType Include="Microsoft.Win32.TimerElapsedEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.TimerElapsedEventHandler" />
+    <ForwardedType Include="Microsoft.Win32.UserPreferenceCategory" />
+    <ForwardedType Include="Microsoft.Win32.UserPreferenceChangedEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.UserPreferenceChangedEventHandler" />
+    <ForwardedType Include="Microsoft.Win32.UserPreferenceChangingEventArgs" />
+    <ForwardedType Include="Microsoft.Win32.UserPreferenceChangingEventHandler" />
+  </ItemGroup>
+
+</Project>
+
+    
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/README.md b/src/libraries/shims/stubs/README.md
new file mode 100644 (file)
index 0000000..c07aa4d
--- /dev/null
@@ -0,0 +1,3 @@
+# .NETCoreApp type forwarded stub assemblies
+
+The projects under this directory are type forwarded stub assemblies, used by the .NETCoreApp shims (and System.Windows.Extensions) to compile type forwards against types that aren't part of the Microsoft.NETCore.App shared framework.
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.CodeDom.csproj b/src/libraries/shims/stubs/System.CodeDom.csproj
new file mode 100644 (file)
index 0000000..959b750
--- /dev/null
@@ -0,0 +1,111 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="Microsoft.CSharp.CSharpCodeProvider" />
+    <ForwardedType Include="Microsoft.VisualBasic.VBCodeProvider" />
+    <ForwardedType Include="System.CodeDom.CodeArgumentReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeArrayCreateExpression" />
+    <ForwardedType Include="System.CodeDom.CodeArrayIndexerExpression" />
+    <ForwardedType Include="System.CodeDom.CodeAssignStatement" />
+    <ForwardedType Include="System.CodeDom.CodeAttachEventStatement" />
+    <ForwardedType Include="System.CodeDom.CodeAttributeArgument" />
+    <ForwardedType Include="System.CodeDom.CodeAttributeArgumentCollection" />
+    <ForwardedType Include="System.CodeDom.CodeAttributeDeclaration" />
+    <ForwardedType Include="System.CodeDom.CodeAttributeDeclarationCollection" />
+    <ForwardedType Include="System.CodeDom.CodeBaseReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeBinaryOperatorExpression" />
+    <ForwardedType Include="System.CodeDom.CodeBinaryOperatorType" />
+    <ForwardedType Include="System.CodeDom.CodeCastExpression" />
+    <ForwardedType Include="System.CodeDom.CodeCatchClause" />
+    <ForwardedType Include="System.CodeDom.CodeCatchClauseCollection" />
+    <ForwardedType Include="System.CodeDom.CodeChecksumPragma" />
+    <ForwardedType Include="System.CodeDom.CodeComment" />
+    <ForwardedType Include="System.CodeDom.CodeCommentStatement" />
+    <ForwardedType Include="System.CodeDom.CodeCommentStatementCollection" />
+    <ForwardedType Include="System.CodeDom.CodeCompileUnit" />
+    <ForwardedType Include="System.CodeDom.CodeConditionStatement" />
+    <ForwardedType Include="System.CodeDom.CodeConstructor" />
+    <ForwardedType Include="System.CodeDom.CodeDefaultValueExpression" />
+    <ForwardedType Include="System.CodeDom.CodeDelegateCreateExpression" />
+    <ForwardedType Include="System.CodeDom.CodeDelegateInvokeExpression" />
+    <ForwardedType Include="System.CodeDom.CodeDirectionExpression" />
+    <ForwardedType Include="System.CodeDom.CodeDirective" />
+    <ForwardedType Include="System.CodeDom.CodeDirectiveCollection" />
+    <ForwardedType Include="System.CodeDom.CodeEntryPointMethod" />
+    <ForwardedType Include="System.CodeDom.CodeEventReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeExpression" />
+    <ForwardedType Include="System.CodeDom.CodeExpressionCollection" />
+    <ForwardedType Include="System.CodeDom.CodeExpressionStatement" />
+    <ForwardedType Include="System.CodeDom.CodeFieldReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeGotoStatement" />
+    <ForwardedType Include="System.CodeDom.CodeIndexerExpression" />
+    <ForwardedType Include="System.CodeDom.CodeIterationStatement" />
+    <ForwardedType Include="System.CodeDom.CodeLabeledStatement" />
+    <ForwardedType Include="System.CodeDom.CodeLinePragma" />
+    <ForwardedType Include="System.CodeDom.CodeMemberEvent" />
+    <ForwardedType Include="System.CodeDom.CodeMemberField" />
+    <ForwardedType Include="System.CodeDom.CodeMemberMethod" />
+    <ForwardedType Include="System.CodeDom.CodeMemberProperty" />
+    <ForwardedType Include="System.CodeDom.CodeMethodInvokeExpression" />
+    <ForwardedType Include="System.CodeDom.CodeMethodReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeMethodReturnStatement" />
+    <ForwardedType Include="System.CodeDom.CodeNamespace" />
+    <ForwardedType Include="System.CodeDom.CodeNamespaceCollection" />
+    <ForwardedType Include="System.CodeDom.CodeNamespaceImport" />
+    <ForwardedType Include="System.CodeDom.CodeNamespaceImportCollection" />
+    <ForwardedType Include="System.CodeDom.CodeObject" />
+    <ForwardedType Include="System.CodeDom.CodeObjectCreateExpression" />
+    <ForwardedType Include="System.CodeDom.CodeParameterDeclarationExpression" />
+    <ForwardedType Include="System.CodeDom.CodeParameterDeclarationExpressionCollection" />
+    <ForwardedType Include="System.CodeDom.CodePrimitiveExpression" />
+    <ForwardedType Include="System.CodeDom.CodePropertyReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodePropertySetValueReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeRegionDirective" />
+    <ForwardedType Include="System.CodeDom.CodeRegionMode" />
+    <ForwardedType Include="System.CodeDom.CodeRemoveEventStatement" />
+    <ForwardedType Include="System.CodeDom.CodeSnippetCompileUnit" />
+    <ForwardedType Include="System.CodeDom.CodeSnippetExpression" />
+    <ForwardedType Include="System.CodeDom.CodeSnippetStatement" />
+    <ForwardedType Include="System.CodeDom.CodeSnippetTypeMember" />
+    <ForwardedType Include="System.CodeDom.CodeStatement" />
+    <ForwardedType Include="System.CodeDom.CodeStatementCollection" />
+    <ForwardedType Include="System.CodeDom.CodeThisReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeThrowExceptionStatement" />
+    <ForwardedType Include="System.CodeDom.CodeTryCatchFinallyStatement" />
+    <ForwardedType Include="System.CodeDom.CodeTypeConstructor" />
+    <ForwardedType Include="System.CodeDom.CodeTypeDeclaration" />
+    <ForwardedType Include="System.CodeDom.CodeTypeDeclarationCollection" />
+    <ForwardedType Include="System.CodeDom.CodeTypeDelegate" />
+    <ForwardedType Include="System.CodeDom.CodeTypeMember" />
+    <ForwardedType Include="System.CodeDom.CodeTypeMemberCollection" />
+    <ForwardedType Include="System.CodeDom.CodeTypeOfExpression" />
+    <ForwardedType Include="System.CodeDom.CodeTypeParameter" />
+    <ForwardedType Include="System.CodeDom.CodeTypeParameterCollection" />
+    <ForwardedType Include="System.CodeDom.CodeTypeReference" />
+    <ForwardedType Include="System.CodeDom.CodeTypeReferenceCollection" />
+    <ForwardedType Include="System.CodeDom.CodeTypeReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.CodeTypeReferenceOptions" />
+    <ForwardedType Include="System.CodeDom.CodeVariableDeclarationStatement" />
+    <ForwardedType Include="System.CodeDom.CodeVariableReferenceExpression" />
+    <ForwardedType Include="System.CodeDom.Compiler.CodeCompiler" />
+    <ForwardedType Include="System.CodeDom.Compiler.CodeDomProvider" />
+    <ForwardedType Include="System.CodeDom.Compiler.CodeGenerator" />
+    <ForwardedType Include="System.CodeDom.Compiler.CodeGeneratorOptions" />
+    <ForwardedType Include="System.CodeDom.Compiler.CodeParser" />
+    <ForwardedType Include="System.CodeDom.Compiler.CompilerError" />
+    <ForwardedType Include="System.CodeDom.Compiler.CompilerErrorCollection" />
+    <ForwardedType Include="System.CodeDom.Compiler.CompilerInfo" />
+    <ForwardedType Include="System.CodeDom.Compiler.CompilerParameters" />
+    <ForwardedType Include="System.CodeDom.Compiler.CompilerResults" />
+    <ForwardedType Include="System.CodeDom.Compiler.Executor" />
+    <ForwardedType Include="System.CodeDom.Compiler.GeneratorSupport" />
+    <ForwardedType Include="System.CodeDom.Compiler.ICodeCompiler" />
+    <ForwardedType Include="System.CodeDom.Compiler.ICodeGenerator" />
+    <ForwardedType Include="System.CodeDom.Compiler.ICodeParser" />
+    <ForwardedType Include="System.CodeDom.Compiler.LanguageOptions" />
+    <ForwardedType Include="System.CodeDom.Compiler.TempFileCollection" />
+    <ForwardedType Include="System.CodeDom.FieldDirection" />
+    <ForwardedType Include="System.CodeDom.MemberAttributes" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Configuration.ConfigurationManager.csproj b/src/libraries/shims/stubs/System.Configuration.ConfigurationManager.csproj
new file mode 100644 (file)
index 0000000..9f16e23
--- /dev/null
@@ -0,0 +1,169 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Configuration.AppSettingsReader" />
+    <ForwardedType Include="System.Configuration.AppSettingsSection" />
+    <ForwardedType Include="System.Configuration.ApplicationScopedSettingAttribute" />
+    <ForwardedType Include="System.Configuration.ApplicationSettingsBase" />
+    <ForwardedType Include="System.Configuration.ApplicationSettingsGroup" />
+    <ForwardedType Include="System.Configuration.CallbackValidator" />
+    <ForwardedType Include="System.Configuration.CallbackValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.ClientSettingsSection" />
+    <ForwardedType Include="System.Configuration.CommaDelimitedStringCollection" />
+    <ForwardedType Include="System.Configuration.CommaDelimitedStringCollectionConverter" />
+    <ForwardedType Include="System.Configuration.ConfigXmlDocument" />
+    <ForwardedType Include="System.Configuration.Configuration" />
+    <ForwardedType Include="System.Configuration.ConfigurationAllowDefinition" />
+    <ForwardedType Include="System.Configuration.ConfigurationAllowExeDefinition" />
+    <ForwardedType Include="System.Configuration.ConfigurationCollectionAttribute" />
+    <ForwardedType Include="System.Configuration.ConfigurationConverterBase" />
+    <ForwardedType Include="System.Configuration.ConfigurationElement" />
+    <ForwardedType Include="System.Configuration.ConfigurationElementCollection" />
+    <ForwardedType Include="System.Configuration.ConfigurationElementCollectionType" />
+    <ForwardedType Include="System.Configuration.ConfigurationElementProperty" />
+    <ForwardedType Include="System.Configuration.ConfigurationErrorsException" />
+    <ForwardedType Include="System.Configuration.ConfigurationException" />
+    <ForwardedType Include="System.Configuration.ConfigurationFileMap" />
+    <ForwardedType Include="System.Configuration.ConfigurationLocation" />
+    <ForwardedType Include="System.Configuration.ConfigurationLocationCollection" />
+    <ForwardedType Include="System.Configuration.ConfigurationLockCollection" />
+    <ForwardedType Include="System.Configuration.ConfigurationManager" />
+    <ForwardedType Include="System.Configuration.ConfigurationProperty" />
+    <ForwardedType Include="System.Configuration.ConfigurationPropertyAttribute" />
+    <ForwardedType Include="System.Configuration.ConfigurationPropertyCollection" />
+    <ForwardedType Include="System.Configuration.ConfigurationPropertyOptions" />
+    <ForwardedType Include="System.Configuration.ConfigurationSaveMode" />
+    <ForwardedType Include="System.Configuration.ConfigurationSection" />
+    <ForwardedType Include="System.Configuration.ConfigurationSectionCollection" />
+    <ForwardedType Include="System.Configuration.ConfigurationSectionGroup" />
+    <ForwardedType Include="System.Configuration.ConfigurationSectionGroupCollection" />
+    <ForwardedType Include="System.Configuration.ConfigurationSettings" />
+    <ForwardedType Include="System.Configuration.ConfigurationUserLevel" />
+    <ForwardedType Include="System.Configuration.ConfigurationValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.ConfigurationValidatorBase" />
+    <ForwardedType Include="System.Configuration.ConnectionStringSettings" />
+    <ForwardedType Include="System.Configuration.ConnectionStringSettingsCollection" />
+    <ForwardedType Include="System.Configuration.ConnectionStringsSection" />
+    <ForwardedType Include="System.Configuration.ContextInformation" />
+    <ForwardedType Include="System.Configuration.DefaultSection" />
+    <ForwardedType Include="System.Configuration.DefaultSettingValueAttribute" />
+    <ForwardedType Include="System.Configuration.DefaultValidator" />
+    <ForwardedType Include="System.Configuration.DictionarySectionHandler" />
+    <ForwardedType Include="System.Configuration.DpapiProtectedConfigurationProvider" />
+    <ForwardedType Include="System.Configuration.ElementInformation" />
+    <ForwardedType Include="System.Configuration.ExeConfigurationFileMap" />
+    <ForwardedType Include="System.Configuration.ExeContext" />
+    <ForwardedType Include="System.Configuration.GenericEnumConverter" />
+    <ForwardedType Include="System.Configuration.IApplicationSettingsProvider" />
+    <ForwardedType Include="System.Configuration.IConfigurationSectionHandler" />
+    <ForwardedType Include="System.Configuration.IConfigurationSystem" />
+    <ForwardedType Include="System.Configuration.IPersistComponentSettings" />
+    <ForwardedType Include="System.Configuration.ISettingsProviderService" />
+    <ForwardedType Include="System.Configuration.IdnElement" />
+    <ForwardedType Include="System.Configuration.IgnoreSection" />
+    <ForwardedType Include="System.Configuration.IgnoreSectionHandler" />
+    <ForwardedType Include="System.Configuration.InfiniteIntConverter" />
+    <ForwardedType Include="System.Configuration.InfiniteTimeSpanConverter" />
+    <ForwardedType Include="System.Configuration.IntegerValidator" />
+    <ForwardedType Include="System.Configuration.IntegerValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.Internal.DelegatingConfigHost" />
+    <ForwardedType Include="System.Configuration.Internal.IConfigErrorInfo" />
+    <ForwardedType Include="System.Configuration.Internal.IConfigSystem" />
+    <ForwardedType Include="System.Configuration.Internal.IConfigurationManagerHelper" />
+    <ForwardedType Include="System.Configuration.Internal.IConfigurationManagerInternal" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigClientHost" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigConfigurationFactory" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigHost" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigRecord" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigRoot" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigSettingsFactory" />
+    <ForwardedType Include="System.Configuration.Internal.IInternalConfigSystem" />
+    <ForwardedType Include="System.Configuration.Internal.InternalConfigEventArgs" />
+    <ForwardedType Include="System.Configuration.Internal.InternalConfigEventHandler" />
+    <ForwardedType Include="System.Configuration.Internal.StreamChangeCallback" />
+    <ForwardedType Include="System.Configuration.IriParsingElement" />
+    <ForwardedType Include="System.Configuration.KeyValueConfigurationCollection" />
+    <ForwardedType Include="System.Configuration.KeyValueConfigurationElement" />
+    <ForwardedType Include="System.Configuration.LocalFileSettingsProvider" />
+    <ForwardedType Include="System.Configuration.LongValidator" />
+    <ForwardedType Include="System.Configuration.LongValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.NameValueConfigurationCollection" />
+    <ForwardedType Include="System.Configuration.NameValueConfigurationElement" />
+    <ForwardedType Include="System.Configuration.NameValueFileSectionHandler" />
+    <ForwardedType Include="System.Configuration.NameValueSectionHandler" />
+    <ForwardedType Include="System.Configuration.NoSettingsVersionUpgradeAttribute" />
+    <ForwardedType Include="System.Configuration.OverrideMode" />
+    <ForwardedType Include="System.Configuration.PositiveTimeSpanValidator" />
+    <ForwardedType Include="System.Configuration.PositiveTimeSpanValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.PropertyInformation" />
+    <ForwardedType Include="System.Configuration.PropertyInformationCollection" />
+    <ForwardedType Include="System.Configuration.PropertyValueOrigin" />
+    <ForwardedType Include="System.Configuration.ProtectedConfiguration" />
+    <ForwardedType Include="System.Configuration.ProtectedConfigurationProvider" />
+    <ForwardedType Include="System.Configuration.ProtectedConfigurationProviderCollection" />
+    <ForwardedType Include="System.Configuration.ProtectedConfigurationSection" />
+    <ForwardedType Include="System.Configuration.ProtectedProviderSettings" />
+    <ForwardedType Include="System.Configuration.Provider.ProviderBase" />
+    <ForwardedType Include="System.Configuration.Provider.ProviderCollection" />
+    <ForwardedType Include="System.Configuration.Provider.ProviderException" />
+    <ForwardedType Include="System.Configuration.ProviderSettings" />
+    <ForwardedType Include="System.Configuration.ProviderSettingsCollection" />
+    <ForwardedType Include="System.Configuration.RegexStringValidator" />
+    <ForwardedType Include="System.Configuration.RegexStringValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.RsaProtectedConfigurationProvider" />
+    <ForwardedType Include="System.Configuration.SchemeSettingElement" />
+    <ForwardedType Include="System.Configuration.SchemeSettingElementCollection" />
+    <ForwardedType Include="System.Configuration.SectionInformation" />
+    <ForwardedType Include="System.Configuration.SettingAttribute" />
+    <ForwardedType Include="System.Configuration.SettingChangingEventArgs" />
+    <ForwardedType Include="System.Configuration.SettingChangingEventHandler" />
+    <ForwardedType Include="System.Configuration.SettingElement" />
+    <ForwardedType Include="System.Configuration.SettingElementCollection" />
+    <ForwardedType Include="System.Configuration.SettingValueElement" />
+    <ForwardedType Include="System.Configuration.SettingsAttributeDictionary" />
+    <ForwardedType Include="System.Configuration.SettingsBase" />
+    <ForwardedType Include="System.Configuration.SettingsContext" />
+    <ForwardedType Include="System.Configuration.SettingsDescriptionAttribute" />
+    <ForwardedType Include="System.Configuration.SettingsGroupDescriptionAttribute" />
+    <ForwardedType Include="System.Configuration.SettingsGroupNameAttribute" />
+    <ForwardedType Include="System.Configuration.SettingsLoadedEventArgs" />
+    <ForwardedType Include="System.Configuration.SettingsLoadedEventHandler" />
+    <ForwardedType Include="System.Configuration.SettingsManageability" />
+    <ForwardedType Include="System.Configuration.SettingsManageabilityAttribute" />
+    <ForwardedType Include="System.Configuration.SettingsProperty" />
+    <ForwardedType Include="System.Configuration.SettingsPropertyCollection" />
+    <ForwardedType Include="System.Configuration.SettingsPropertyIsReadOnlyException" />
+    <ForwardedType Include="System.Configuration.SettingsPropertyNotFoundException" />
+    <ForwardedType Include="System.Configuration.SettingsPropertyValue" />
+    <ForwardedType Include="System.Configuration.SettingsPropertyValueCollection" />
+    <ForwardedType Include="System.Configuration.SettingsPropertyWrongTypeException" />
+    <ForwardedType Include="System.Configuration.SettingsProvider" />
+    <ForwardedType Include="System.Configuration.SettingsProviderAttribute" />
+    <ForwardedType Include="System.Configuration.SettingsProviderCollection" />
+    <ForwardedType Include="System.Configuration.SettingsSavingEventHandler" />
+    <ForwardedType Include="System.Configuration.SettingsSerializeAs" />
+    <ForwardedType Include="System.Configuration.SettingsSerializeAsAttribute" />
+    <ForwardedType Include="System.Configuration.SingleTagSectionHandler" />
+    <ForwardedType Include="System.Configuration.SpecialSetting" />
+    <ForwardedType Include="System.Configuration.SpecialSettingAttribute" />
+    <ForwardedType Include="System.Configuration.StringValidator" />
+    <ForwardedType Include="System.Configuration.StringValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.SubclassTypeValidator" />
+    <ForwardedType Include="System.Configuration.SubclassTypeValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.TimeSpanMinutesConverter" />
+    <ForwardedType Include="System.Configuration.TimeSpanMinutesOrInfiniteConverter" />
+    <ForwardedType Include="System.Configuration.TimeSpanSecondsConverter" />
+    <ForwardedType Include="System.Configuration.TimeSpanSecondsOrInfiniteConverter" />
+    <ForwardedType Include="System.Configuration.TimeSpanValidator" />
+    <ForwardedType Include="System.Configuration.TimeSpanValidatorAttribute" />
+    <ForwardedType Include="System.Configuration.TypeNameConverter" />
+    <ForwardedType Include="System.Configuration.UriSection" />
+    <ForwardedType Include="System.Configuration.UserScopedSettingAttribute" />
+    <ForwardedType Include="System.Configuration.UserSettingsGroup" />
+    <ForwardedType Include="System.Configuration.ValidatorCallback" />
+    <ForwardedType Include="System.Configuration.WhiteSpaceTrimStringConverter" />
+    <ForwardedType Include="System.Drawing.Configuration.SystemDrawingSection" />
+    <ForwardedType Include="System.UriIdnScope" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Data.Odbc.csproj b/src/libraries/shims/stubs/System.Data.Odbc.csproj
new file mode 100644 (file)
index 0000000..61a1a0a
--- /dev/null
@@ -0,0 +1,31 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Data.Odbc.ODBC32"
+                   InnerClass="SQL_HANDLE;SQLRETURN;SQL_CONVERT;SQL_CVT;STMT;SQL_MAX;SQL_IS;SQL_HC;SQL_NB;SQL_CA_SS;SQL_SOPT_SS;SQL_TRANSACTION;SQL_PARAM;SQL_API;SQL_DESC;SQL_COLUMN;SQL_GROUP_BY;SQL_SQL92_RELATIONAL_JOIN_OPERATORS;SQL_OJ_CAPABILITIES;SQL_UPDATABLE;SQL_IDENTIFIER_CASE;SQL_INDEX;SQL_STATISTICS_RESERVED;SQL_SPECIALCOLS;SQL_SCOPE;SQL_NULLABILITY;SQL_SEARCHABLE;SQL_UNNAMED;HANDLER;SQL_STATISTICSTYPE;SQL_PROCEDURETYPE;SQL_C;SQL_TYPE;SQL_ATTR;SQL_INFO;SQL_DRIVER;SQL_PRIMARYKEYS;SQL_STATISTICS;SQL_SPECIALCOLUMNSET;RETCODE" />
+    <ForwardedType Include="System.Data.Odbc.OdbcCommand" />
+    <ForwardedType Include="System.Data.Odbc.OdbcCommandBuilder" />
+    <ForwardedType Include="System.Data.Odbc.OdbcConnection" />
+    <ForwardedType Include="System.Data.Odbc.OdbcConnectionStringBuilder" />
+    <ForwardedType Include="System.Data.Odbc.OdbcDataAdapter" />
+    <ForwardedType Include="System.Data.Odbc.OdbcDataReader"
+                   InnerClass="QualifiedTableName" />
+    <ForwardedType Include="System.Data.Odbc.OdbcError" />
+    <ForwardedType Include="System.Data.Odbc.OdbcErrorCollection" />
+    <ForwardedType Include="System.Data.Odbc.OdbcException" />
+    <ForwardedType Include="System.Data.Odbc.OdbcFactory" />
+    <ForwardedType Include="System.Data.Odbc.OdbcInfoMessageEventArgs" />
+    <ForwardedType Include="System.Data.Odbc.OdbcInfoMessageEventHandler" />
+    <ForwardedType Include="System.Data.Odbc.OdbcMetaDataCollectionNames" />
+    <ForwardedType Include="System.Data.Odbc.OdbcMetaDataColumnNames" />
+    <ForwardedType Include="System.Data.Odbc.OdbcParameter" />
+    <ForwardedType Include="System.Data.Odbc.OdbcParameterCollection" />
+    <ForwardedType Include="System.Data.Odbc.OdbcRowUpdatedEventArgs" />
+    <ForwardedType Include="System.Data.Odbc.OdbcRowUpdatedEventHandler" />
+    <ForwardedType Include="System.Data.Odbc.OdbcRowUpdatingEventArgs" />
+    <ForwardedType Include="System.Data.Odbc.OdbcRowUpdatingEventHandler" />
+    <ForwardedType Include="System.Data.Odbc.OdbcTransaction" />
+    <ForwardedType Include="System.Data.Odbc.OdbcType" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Data.OleDb.csproj b/src/libraries/shims/stubs/System.Data.OleDb.csproj
new file mode 100644 (file)
index 0000000..c296fe8
--- /dev/null
@@ -0,0 +1,34 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Data.OleDb.OleDbCommand" />
+    <ForwardedType Include="System.Data.OleDb.OleDbCommandBuilder" />
+    <ForwardedType Include="System.Data.OleDb.OleDbConnection" />
+    <ForwardedType Include="System.Data.OleDb.OleDbConnectionStringBuilder"
+                   InnerClass="OleDbServiceValues;OleDbServicesConverter;OleDbConnectionStringBuilderConverter" />
+    <ForwardedType Include="System.Data.OleDb.OleDbDataAdapter" />
+    <ForwardedType Include="System.Data.OleDb.OleDbDataReader" />
+    <ForwardedType Include="System.Data.OleDb.OleDbEnumerator" />
+    <ForwardedType Include="System.Data.OleDb.OleDbError" />
+    <ForwardedType Include="System.Data.OleDb.OleDbErrorCollection" />
+    <ForwardedType Include="System.Data.OleDb.OleDbException"
+                   InnerClass="ErrorCodeConverter" />
+    <ForwardedType Include="System.Data.OleDb.OleDbFactory" />
+    <ForwardedType Include="System.Data.OleDb.OleDbInfoMessageEventArgs" />
+    <ForwardedType Include="System.Data.OleDb.OleDbInfoMessageEventHandler" />
+    <ForwardedType Include="System.Data.OleDb.OleDbLiteral" />
+    <ForwardedType Include="System.Data.OleDb.OleDbMetaDataCollectionNames" />
+    <ForwardedType Include="System.Data.OleDb.OleDbMetaDataColumnNames" />
+    <ForwardedType Include="System.Data.OleDb.OleDbParameter"
+                   InnerClass="OleDbParameterConverter" />
+    <ForwardedType Include="System.Data.OleDb.OleDbParameterCollection" />
+    <ForwardedType Include="System.Data.OleDb.OleDbRowUpdatedEventArgs" />
+    <ForwardedType Include="System.Data.OleDb.OleDbRowUpdatedEventHandler" />
+    <ForwardedType Include="System.Data.OleDb.OleDbRowUpdatingEventArgs" />
+    <ForwardedType Include="System.Data.OleDb.OleDbRowUpdatingEventHandler" />
+    <ForwardedType Include="System.Data.OleDb.OleDbSchemaGuid" />
+    <ForwardedType Include="System.Data.OleDb.OleDbTransaction" />
+    <ForwardedType Include="System.Data.OleDb.OleDbType" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Data.SqlClient.csproj b/src/libraries/shims/stubs/System.Data.SqlClient.csproj
new file mode 100644 (file)
index 0000000..81c4e4e
--- /dev/null
@@ -0,0 +1,62 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="Microsoft.SqlServer.Server.DataAccessKind" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.Format" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.IBinarySerialize" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.InvalidUdtException" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlDataRecord" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlFacetAttribute" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlFunctionAttribute" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlMetaData" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlMethodAttribute" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute" />
+    <ForwardedType Include="Microsoft.SqlServer.Server.SystemDataAccessKind" />
+    <ForwardedType Include="System.Data.OperationAbortedException" />
+    <ForwardedType Include="System.Data.Sql.SqlNotificationRequest" />
+    <ForwardedType Include="System.Data.SqlClient.ApplicationIntent" />
+    <ForwardedType Include="System.Data.SqlClient.OnChangeEventHandler" />
+    <ForwardedType Include="System.Data.SqlClient.PoolBlockingPeriod" />
+    <ForwardedType Include="System.Data.SqlClient.SortOrder" />
+    <ForwardedType Include="System.Data.SqlClient.SqlBulkCopy" />
+    <ForwardedType Include="System.Data.SqlClient.SqlBulkCopyColumnMapping" />
+    <ForwardedType Include="System.Data.SqlClient.SqlBulkCopyColumnMappingCollection" />
+    <ForwardedType Include="System.Data.SqlClient.SqlBulkCopyOptions" />
+    <ForwardedType Include="System.Data.SqlClient.SqlClientFactory" />
+    <ForwardedType Include="System.Data.SqlClient.SqlClientMetaDataCollectionNames" />
+    <ForwardedType Include="System.Data.SqlClient.SqlCommand" />
+    <ForwardedType Include="System.Data.SqlClient.SqlCommandBuilder" />
+    <ForwardedType Include="System.Data.SqlClient.SqlConnection" />
+    <ForwardedType Include="System.Data.SqlClient.SqlConnectionStringBuilder" />
+    <ForwardedType Include="System.Data.SqlClient.SqlCredential" />
+    <ForwardedType Include="System.Data.SqlClient.SqlDataAdapter" />
+    <ForwardedType Include="System.Data.SqlClient.SqlDataReader" />
+    <ForwardedType Include="System.Data.SqlClient.SqlDependency" />
+    <ForwardedType Include="System.Data.SqlClient.SqlError" />
+    <ForwardedType Include="System.Data.SqlClient.SqlErrorCollection" />
+    <ForwardedType Include="System.Data.SqlClient.SqlException" />
+    <ForwardedType Include="System.Data.SqlClient.SqlInfoMessageEventArgs" />
+    <ForwardedType Include="System.Data.SqlClient.SqlInfoMessageEventHandler" />
+    <ForwardedType Include="System.Data.SqlClient.SqlNotificationEventArgs" />
+    <ForwardedType Include="System.Data.SqlClient.SqlNotificationInfo" />
+    <ForwardedType Include="System.Data.SqlClient.SqlNotificationSource" />
+    <ForwardedType Include="System.Data.SqlClient.SqlNotificationType" />
+    <ForwardedType Include="System.Data.SqlClient.SqlParameter"
+                   InnerClass="SqlParameterConverter" />
+    <ForwardedType Include="System.Data.SqlClient.SqlParameterCollection" />
+    <ForwardedType Include="System.Data.SqlClient.SqlRowUpdatedEventArgs" />
+    <ForwardedType Include="System.Data.SqlClient.SqlRowUpdatedEventHandler" />
+    <ForwardedType Include="System.Data.SqlClient.SqlRowUpdatingEventArgs" />
+    <ForwardedType Include="System.Data.SqlClient.SqlRowUpdatingEventHandler" />
+    <ForwardedType Include="System.Data.SqlClient.SqlRowsCopiedEventArgs" />
+    <ForwardedType Include="System.Data.SqlClient.SqlRowsCopiedEventHandler" />
+    <ForwardedType Include="System.Data.SqlClient.SqlTransaction" />
+    <ForwardedType Include="System.Data.SqlTypes.SqlFileStream" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Diagnostics.EventLog.csproj b/src/libraries/shims/stubs/System.Diagnostics.EventLog.csproj
new file mode 100644 (file)
index 0000000..1a27d10
--- /dev/null
@@ -0,0 +1,50 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Diagnostics.EntryWrittenEventArgs" />
+    <ForwardedType Include="System.Diagnostics.EntryWrittenEventHandler" />
+    <ForwardedType Include="System.Diagnostics.EventInstance" />
+    <ForwardedType Include="System.Diagnostics.EventLog" />
+    <ForwardedType Include="System.Diagnostics.EventLogEntry" />
+    <ForwardedType Include="System.Diagnostics.EventLogEntryCollection" />
+    <ForwardedType Include="System.Diagnostics.EventLogEntryType" />
+    <ForwardedType Include="System.Diagnostics.EventLogTraceListener" />
+    <ForwardedType Include="System.Diagnostics.EventSourceCreationData" />
+    <ForwardedType Include="System.Diagnostics.OverflowAction" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventBookmark" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventKeyword" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLevel" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogConfiguration" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogException" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogInformation" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogInvalidDataException" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogIsolation" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogLink" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogMode" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogNotFoundException" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogPropertySelector" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogProviderDisabledException" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogQuery" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogReader" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogReadingException" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogRecord" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogSession" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogStatus" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogType" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventLogWatcher" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventMetadata" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventOpcode" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventProperty" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventRecord" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventRecordWrittenEventArgs" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.EventTask" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.PathType" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.ProviderMetadata" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.SessionAuthentication" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.StandardEventKeywords" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.StandardEventLevel" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.StandardEventOpcode" />
+    <ForwardedType Include="System.Diagnostics.Eventing.Reader.StandardEventTask" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Diagnostics.PerformanceCounter.csproj b/src/libraries/shims/stubs/System.Diagnostics.PerformanceCounter.csproj
new file mode 100644 (file)
index 0000000..0560d8f
--- /dev/null
@@ -0,0 +1,26 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Diagnostics.CounterCreationData" />
+    <ForwardedType Include="System.Diagnostics.CounterCreationDataCollection" />
+    <ForwardedType Include="System.Diagnostics.CounterSample" />
+    <ForwardedType Include="System.Diagnostics.CounterSampleCalculator" />
+    <ForwardedType Include="System.Diagnostics.ICollectData" />
+    <ForwardedType Include="System.Diagnostics.InstanceData" />
+    <ForwardedType Include="System.Diagnostics.InstanceDataCollection" />
+    <ForwardedType Include="System.Diagnostics.InstanceDataCollectionCollection" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounter" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterCategory" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterCategoryType" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterInstanceLifetime" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterManager" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterType" />
+    <ForwardedType Include="System.Diagnostics.PerformanceData.CounterData" />
+    <ForwardedType Include="System.Diagnostics.PerformanceData.CounterSet" />
+    <ForwardedType Include="System.Diagnostics.PerformanceData.CounterSetInstance" />
+    <ForwardedType Include="System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet" />
+    <ForwardedType Include="System.Diagnostics.PerformanceData.CounterSetInstanceType" />
+    <ForwardedType Include="System.Diagnostics.PerformanceData.CounterType" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Drawing.Common.csproj b/src/libraries/shims/stubs/System.Drawing.Common.csproj
new file mode 100644 (file)
index 0000000..fe7ccf5
--- /dev/null
@@ -0,0 +1,161 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <!-- Needed by System.Windows.Extensions package -->
+  <PropertyGroup>
+    <TargetFrameworks>$(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum)</TargetFrameworks>
+    <TargetFramework />
+    <DisableImplicitFrameworkReferences Condition="'$(TargetFramework)' != '$(NetCoreAppCurrent)'">false</DisableImplicitFrameworkReferences>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.Drawing.Bitmap" />
+    <ForwardedType Include="System.Drawing.BitmapSuffixInSameAssemblyAttribute" />
+    <ForwardedType Include="System.Drawing.BitmapSuffixInSatelliteAssemblyAttribute" />
+    <ForwardedType Include="System.Drawing.Brush" />
+    <ForwardedType Include="System.Drawing.Brushes" />
+    <ForwardedType Include="System.Drawing.BufferedGraphics" />
+    <ForwardedType Include="System.Drawing.BufferedGraphicsContext" />
+    <ForwardedType Include="System.Drawing.BufferedGraphicsManager" />
+    <ForwardedType Include="System.Drawing.CharacterRange" />
+    <ForwardedType Include="System.Drawing.ContentAlignment" />
+    <ForwardedType Include="System.Drawing.CopyPixelOperation" />
+    <ForwardedType Include="System.Drawing.Design.CategoryNameCollection" />
+    <ForwardedType Include="System.Drawing.Drawing2D.AdjustableArrowCap" />
+    <ForwardedType Include="System.Drawing.Drawing2D.Blend" />
+    <ForwardedType Include="System.Drawing.Drawing2D.ColorBlend" />
+    <ForwardedType Include="System.Drawing.Drawing2D.CombineMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.CompositingMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.CompositingQuality" />
+    <ForwardedType Include="System.Drawing.Drawing2D.CoordinateSpace" />
+    <ForwardedType Include="System.Drawing.Drawing2D.CustomLineCap" />
+    <ForwardedType Include="System.Drawing.Drawing2D.DashCap" />
+    <ForwardedType Include="System.Drawing.Drawing2D.DashStyle" />
+    <ForwardedType Include="System.Drawing.Drawing2D.FillMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.FlushIntention" />
+    <ForwardedType Include="System.Drawing.Drawing2D.GraphicsContainer" />
+    <ForwardedType Include="System.Drawing.Drawing2D.GraphicsPath" />
+    <ForwardedType Include="System.Drawing.Drawing2D.GraphicsPathIterator" />
+    <ForwardedType Include="System.Drawing.Drawing2D.GraphicsState" />
+    <ForwardedType Include="System.Drawing.Drawing2D.HatchBrush" />
+    <ForwardedType Include="System.Drawing.Drawing2D.HatchStyle" />
+    <ForwardedType Include="System.Drawing.Drawing2D.InterpolationMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.LineCap" />
+    <ForwardedType Include="System.Drawing.Drawing2D.LineJoin" />
+    <ForwardedType Include="System.Drawing.Drawing2D.LinearGradientBrush" />
+    <ForwardedType Include="System.Drawing.Drawing2D.LinearGradientMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.Matrix" />
+    <ForwardedType Include="System.Drawing.Drawing2D.MatrixOrder" />
+    <ForwardedType Include="System.Drawing.Drawing2D.PathData" />
+    <ForwardedType Include="System.Drawing.Drawing2D.PathGradientBrush" />
+    <ForwardedType Include="System.Drawing.Drawing2D.PathPointType" />
+    <ForwardedType Include="System.Drawing.Drawing2D.PenAlignment" />
+    <ForwardedType Include="System.Drawing.Drawing2D.PenType" />
+    <ForwardedType Include="System.Drawing.Drawing2D.PixelOffsetMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.QualityMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.RegionData" />
+    <ForwardedType Include="System.Drawing.Drawing2D.SmoothingMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.WarpMode" />
+    <ForwardedType Include="System.Drawing.Drawing2D.WrapMode" />
+    <ForwardedType Include="System.Drawing.Font" />
+    <ForwardedType Include="System.Drawing.FontConverter"
+                   InnerClass="FontNameConverter;FontUnitConverter" />
+    <ForwardedType Include="System.Drawing.FontFamily" />
+    <ForwardedType Include="System.Drawing.FontStyle" />
+    <ForwardedType Include="System.Drawing.Graphics"
+                   InnerClass="DrawImageAbort;EnumerateMetafileProc" />
+    <ForwardedType Include="System.Drawing.GraphicsUnit" />
+    <ForwardedType Include="System.Drawing.IDeviceContext" />
+    <ForwardedType Include="System.Drawing.Icon" />
+    <ForwardedType Include="System.Drawing.IconConverter" />
+    <ForwardedType Include="System.Drawing.Image"
+                   InnerClass="GetThumbnailImageAbort" />
+    <ForwardedType Include="System.Drawing.ImageAnimator" />
+    <ForwardedType Include="System.Drawing.ImageConverter" />
+    <ForwardedType Include="System.Drawing.ImageFormatConverter" />
+    <ForwardedType Include="System.Drawing.Imaging.BitmapData" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorAdjustType" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorChannelFlag" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorMap" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorMapType" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorMatrix" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorMatrixFlag" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorMode" />
+    <ForwardedType Include="System.Drawing.Imaging.ColorPalette" />
+    <ForwardedType Include="System.Drawing.Imaging.EmfPlusRecordType" />
+    <ForwardedType Include="System.Drawing.Imaging.EmfType" />
+    <ForwardedType Include="System.Drawing.Imaging.Encoder" />
+    <ForwardedType Include="System.Drawing.Imaging.EncoderParameter" />
+    <ForwardedType Include="System.Drawing.Imaging.EncoderParameterValueType" />
+    <ForwardedType Include="System.Drawing.Imaging.EncoderParameters" />
+    <ForwardedType Include="System.Drawing.Imaging.EncoderValue" />
+    <ForwardedType Include="System.Drawing.Imaging.FrameDimension" />
+    <ForwardedType Include="System.Drawing.Imaging.ImageAttributes" />
+    <ForwardedType Include="System.Drawing.Imaging.ImageCodecFlags" />
+    <ForwardedType Include="System.Drawing.Imaging.ImageCodecInfo" />
+    <ForwardedType Include="System.Drawing.Imaging.ImageFlags" />
+    <ForwardedType Include="System.Drawing.Imaging.ImageFormat" />
+    <ForwardedType Include="System.Drawing.Imaging.ImageLockMode" />
+    <ForwardedType Include="System.Drawing.Imaging.MetaHeader" />
+    <ForwardedType Include="System.Drawing.Imaging.Metafile" />
+    <ForwardedType Include="System.Drawing.Imaging.MetafileFrameUnit" />
+    <ForwardedType Include="System.Drawing.Imaging.MetafileHeader" />
+    <ForwardedType Include="System.Drawing.Imaging.MetafileType" />
+    <ForwardedType Include="System.Drawing.Imaging.PaletteFlags" />
+    <ForwardedType Include="System.Drawing.Imaging.PixelFormat" />
+    <ForwardedType Include="System.Drawing.Imaging.PlayRecordCallback" />
+    <ForwardedType Include="System.Drawing.Imaging.PropertyItem" />
+    <ForwardedType Include="System.Drawing.Imaging.WmfPlaceableFileHeader" />
+    <ForwardedType Include="System.Drawing.Pen" />
+    <ForwardedType Include="System.Drawing.Pens" />
+    <ForwardedType Include="System.Drawing.Printing.Duplex" />
+    <ForwardedType Include="System.Drawing.Printing.InvalidPrinterException" />
+    <ForwardedType Include="System.Drawing.Printing.Margins" />
+    <ForwardedType Include="System.Drawing.Printing.MarginsConverter" />
+    <ForwardedType Include="System.Drawing.Printing.PageSettings" />
+    <ForwardedType Include="System.Drawing.Printing.PaperKind" />
+    <ForwardedType Include="System.Drawing.Printing.PaperSize" />
+    <ForwardedType Include="System.Drawing.Printing.PaperSource" />
+    <ForwardedType Include="System.Drawing.Printing.PaperSourceKind" />
+    <ForwardedType Include="System.Drawing.Printing.PreviewPageInfo" />
+    <ForwardedType Include="System.Drawing.Printing.PreviewPrintController" />
+    <ForwardedType Include="System.Drawing.Printing.PrintAction" />
+    <ForwardedType Include="System.Drawing.Printing.PrintController" />
+    <ForwardedType Include="System.Drawing.Printing.PrintDocument" />
+    <ForwardedType Include="System.Drawing.Printing.PrintEventArgs" />
+    <ForwardedType Include="System.Drawing.Printing.PrintEventHandler" />
+    <ForwardedType Include="System.Drawing.Printing.PrintPageEventArgs" />
+    <ForwardedType Include="System.Drawing.Printing.PrintPageEventHandler" />
+    <ForwardedType Include="System.Drawing.Printing.PrintRange" />
+    <ForwardedType Include="System.Drawing.Printing.PrinterResolution" />
+    <ForwardedType Include="System.Drawing.Printing.PrinterResolutionKind" />
+    <ForwardedType Include="System.Drawing.Printing.PrinterSettings"
+                   InnerClass="PaperSizeCollection;PaperSourceCollection;PrinterResolutionCollection;StringCollection" />
+    <ForwardedType Include="System.Drawing.Printing.PrinterUnit" />
+    <ForwardedType Include="System.Drawing.Printing.PrinterUnitConvert" />
+    <ForwardedType Include="System.Drawing.Printing.QueryPageSettingsEventArgs" />
+    <ForwardedType Include="System.Drawing.Printing.QueryPageSettingsEventHandler" />
+    <ForwardedType Include="System.Drawing.Printing.StandardPrintController" />
+    <ForwardedType Include="System.Drawing.Region" />
+    <ForwardedType Include="System.Drawing.RotateFlipType" />
+    <ForwardedType Include="System.Drawing.SolidBrush" />
+    <ForwardedType Include="System.Drawing.StringAlignment" />
+    <ForwardedType Include="System.Drawing.StringDigitSubstitute" />
+    <ForwardedType Include="System.Drawing.StringFormat" />
+    <ForwardedType Include="System.Drawing.StringFormatFlags" />
+    <ForwardedType Include="System.Drawing.StringTrimming" />
+    <ForwardedType Include="System.Drawing.StringUnit" />
+    <ForwardedType Include="System.Drawing.SystemBrushes" />
+    <ForwardedType Include="System.Drawing.SystemFonts" />
+    <ForwardedType Include="System.Drawing.SystemIcons" />
+    <ForwardedType Include="System.Drawing.SystemPens" />
+    <ForwardedType Include="System.Drawing.Text.FontCollection" />
+    <ForwardedType Include="System.Drawing.Text.GenericFontFamilies" />
+    <ForwardedType Include="System.Drawing.Text.HotkeyPrefix" />
+    <ForwardedType Include="System.Drawing.Text.InstalledFontCollection" />
+    <ForwardedType Include="System.Drawing.Text.PrivateFontCollection" />
+    <ForwardedType Include="System.Drawing.Text.TextRenderingHint" />
+    <ForwardedType Include="System.Drawing.TextureBrush" />
+    <ForwardedType Include="System.Drawing.ToolboxBitmapAttribute" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.IO.Packaging.csproj b/src/libraries/shims/stubs/System.IO.Packaging.csproj
new file mode 100644 (file)
index 0000000..fabc418
--- /dev/null
@@ -0,0 +1,25 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.IO.FileFormatException" />
+    <ForwardedType Include="System.IO.Packaging.CompressionOption" />
+    <ForwardedType Include="System.IO.Packaging.EncryptionOption" />
+    <ForwardedType Include="System.IO.Packaging.PackUriHelper" />
+    <ForwardedType Include="System.IO.Packaging.Package" />
+    <ForwardedType Include="System.IO.Packaging.PackagePart" />
+    <ForwardedType Include="System.IO.Packaging.PackagePartCollection" />
+    <ForwardedType Include="System.IO.Packaging.PackageProperties" />
+    <ForwardedType Include="System.IO.Packaging.PackageRelationship" />
+    <ForwardedType Include="System.IO.Packaging.PackageRelationshipCollection" />
+    <ForwardedType Include="System.IO.Packaging.PackageRelationshipSelector" />
+    <ForwardedType Include="System.IO.Packaging.PackageRelationshipSelectorType" />
+    <ForwardedType Include="System.IO.Packaging.TargetMode" />
+    <ForwardedType Include="System.IO.Packaging.ZipPackage" />
+    <ForwardedType Include="System.IO.Packaging.ZipPackagePart" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.IO.Ports.csproj b/src/libraries/shims/stubs/System.IO.Ports.csproj
new file mode 100644 (file)
index 0000000..989dca2
--- /dev/null
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.IO.Ports.Handshake" />
+    <ForwardedType Include="System.IO.Ports.Parity" />
+    <ForwardedType Include="System.IO.Ports.SerialData" />
+    <ForwardedType Include="System.IO.Ports.SerialDataReceivedEventArgs" />
+    <ForwardedType Include="System.IO.Ports.SerialDataReceivedEventHandler" />
+    <ForwardedType Include="System.IO.Ports.SerialError" />
+    <ForwardedType Include="System.IO.Ports.SerialErrorReceivedEventArgs" />
+    <ForwardedType Include="System.IO.Ports.SerialErrorReceivedEventHandler" />
+    <ForwardedType Include="System.IO.Ports.SerialPinChange" />
+    <ForwardedType Include="System.IO.Ports.SerialPinChangedEventArgs" />
+    <ForwardedType Include="System.IO.Ports.SerialPinChangedEventHandler" />
+    <ForwardedType Include="System.IO.Ports.SerialPort" />
+    <ForwardedType Include="System.IO.Ports.StopBits" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Runtime.Serialization.Schema.csproj b/src/libraries/shims/stubs/System.Runtime.Serialization.Schema.csproj
new file mode 100644 (file)
index 0000000..5764aff
--- /dev/null
@@ -0,0 +1,12 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.Runtime.Serialization.ImportOptions" />
+    <ForwardedType Include="System.Runtime.Serialization.XsdDataContractImporter" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Security.Cryptography.Pkcs.csproj b/src/libraries/shims/stubs/System.Security.Cryptography.Pkcs.csproj
new file mode 100644 (file)
index 0000000..b9b5288
--- /dev/null
@@ -0,0 +1,42 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.Security.Cryptography.CryptographicAttributeObject" />
+    <ForwardedType Include="System.Security.Cryptography.CryptographicAttributeObjectCollection" />
+    <ForwardedType Include="System.Security.Cryptography.CryptographicAttributeObjectEnumerator" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.AlgorithmIdentifier" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.CmsRecipient" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.CmsRecipientCollection" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.CmsSigner" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.ContentInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.EnvelopedCms" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.KeyTransRecipientInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.Pkcs9AttributeObject" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.Pkcs9ContentType" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.Pkcs9DocumentName" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.Pkcs9MessageDigest" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.Pkcs9SigningTime" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.PublicKeyInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.RecipientInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.RecipientInfoCollection" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.RecipientInfoType" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SignedCms" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SignerInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SignerInfoCollection" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SignerInfoEnumerator" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SubjectIdentifier" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType" />
+    <ForwardedType Include="System.Security.Cryptography.Pkcs.SubjectIdentifierType" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.X509IssuerSerial" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Security.Cryptography.ProtectedData.csproj b/src/libraries/shims/stubs/System.Security.Cryptography.ProtectedData.csproj
new file mode 100644 (file)
index 0000000..5695261
--- /dev/null
@@ -0,0 +1,12 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.Security.Cryptography.DataProtectionScope" />
+    <ForwardedType Include="System.Security.Cryptography.ProtectedData" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Security.Cryptography.Xml.csproj b/src/libraries/shims/stubs/System.Security.Cryptography.Xml.csproj
new file mode 100644 (file)
index 0000000..f9f8b33
--- /dev/null
@@ -0,0 +1,46 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Security.Cryptography.Xml.CipherData" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.CipherReference" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.DSAKeyValue" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.DataObject" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.DataReference" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptedData" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptedKey" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptedReference" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptedType" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptedXml" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptionMethod" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptionProperty" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.EncryptionPropertyCollection" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.IRelDecryptor" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfoClause" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfoEncryptedKey" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfoName" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfoNode" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfoRetrievalMethod" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyInfoX509Data" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.KeyReference" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.RSAKeyValue" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.Reference" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.ReferenceList" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.Signature" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.SignedInfo" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.SignedXml" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.Transform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.TransformChain" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDecryptionTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigBase64Transform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigC14NTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigC14NWithCommentsTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigEnvelopedSignatureTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigExcC14NTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigExcC14NWithCommentsTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigXPathTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlDsigXsltTransform" />
+    <ForwardedType Include="System.Security.Cryptography.Xml.XmlLicenseTransform" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Security.Permissions.csproj b/src/libraries/shims/stubs/System.Security.Permissions.csproj
new file mode 100644 (file)
index 0000000..4be0f81
--- /dev/null
@@ -0,0 +1,179 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.ApplicationIdentity" />
+    <ForwardedType Include="System.Configuration.ConfigurationPermission" />
+    <ForwardedType Include="System.Configuration.ConfigurationPermissionAttribute" />
+    <ForwardedType Include="System.Data.Common.DBDataPermission" />
+    <ForwardedType Include="System.Data.Common.DBDataPermissionAttribute" />
+    <ForwardedType Include="System.Data.Odbc.OdbcPermission" />
+    <ForwardedType Include="System.Data.Odbc.OdbcPermissionAttribute" />
+    <ForwardedType Include="System.Data.OleDb.OleDbPermission" />
+    <ForwardedType Include="System.Data.OleDb.OleDbPermissionAttribute" />
+    <ForwardedType Include="System.Data.SqlClient.SqlClientPermission" />
+    <ForwardedType Include="System.Data.SqlClient.SqlClientPermissionAttribute" />
+    <ForwardedType Include="System.Diagnostics.EventLogPermission" />
+    <ForwardedType Include="System.Diagnostics.EventLogPermissionAccess" />
+    <ForwardedType Include="System.Diagnostics.EventLogPermissionAttribute" />
+    <ForwardedType Include="System.Diagnostics.EventLogPermissionEntry" />
+    <ForwardedType Include="System.Diagnostics.EventLogPermissionEntryCollection" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterPermission" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterPermissionAccess" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterPermissionAttribute" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterPermissionEntry" />
+    <ForwardedType Include="System.Diagnostics.PerformanceCounterPermissionEntryCollection" />
+    <ForwardedType Include="System.Drawing.Printing.PrintingPermission" />
+    <ForwardedType Include="System.Drawing.Printing.PrintingPermissionAttribute" />
+    <ForwardedType Include="System.Drawing.Printing.PrintingPermissionLevel" />
+    <ForwardedType Include="System.Net.DnsPermission" />
+    <ForwardedType Include="System.Net.DnsPermissionAttribute" />
+    <ForwardedType Include="System.Net.EndpointPermission" />
+    <ForwardedType Include="System.Net.Mail.SmtpAccess" />
+    <ForwardedType Include="System.Net.Mail.SmtpPermission" />
+    <ForwardedType Include="System.Net.Mail.SmtpPermissionAttribute" />
+    <ForwardedType Include="System.Net.NetworkAccess" />
+    <ForwardedType Include="System.Net.NetworkInformation.NetworkInformationAccess" />
+    <ForwardedType Include="System.Net.NetworkInformation.NetworkInformationPermission" />
+    <ForwardedType Include="System.Net.NetworkInformation.NetworkInformationPermissionAttribute" />
+    <ForwardedType Include="System.Net.PeerToPeer.Collaboration.PeerCollaborationPermission" />
+    <ForwardedType Include="System.Net.PeerToPeer.Collaboration.PeerCollaborationPermissionAttribute" />
+    <ForwardedType Include="System.Net.PeerToPeer.PnrpPermission" />
+    <ForwardedType Include="System.Net.PeerToPeer.PnrpPermissionAttribute" />
+    <ForwardedType Include="System.Net.PeerToPeer.PnrpScope" />
+    <ForwardedType Include="System.Net.SocketPermission" />
+    <ForwardedType Include="System.Net.SocketPermissionAttribute" />
+    <ForwardedType Include="System.Net.TransportType" />
+    <ForwardedType Include="System.Net.WebPermission" />
+    <ForwardedType Include="System.Net.WebPermissionAttribute" />
+    <ForwardedType Include="System.Security.CodeAccessPermission" />
+    <ForwardedType Include="System.Security.HostProtectionException" />
+    <ForwardedType Include="System.Security.HostSecurityManager" />
+    <ForwardedType Include="System.Security.HostSecurityManagerOptions" />
+    <ForwardedType Include="System.Security.IEvidenceFactory" />
+    <ForwardedType Include="System.Security.ISecurityPolicyEncodable" />
+    <ForwardedType Include="System.Security.NamedPermissionSet" />
+    <ForwardedType Include="System.Security.Permissions.DataProtectionPermission" />
+    <ForwardedType Include="System.Security.Permissions.DataProtectionPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.DataProtectionPermissionFlags" />
+    <ForwardedType Include="System.Security.Permissions.EnvironmentPermission" />
+    <ForwardedType Include="System.Security.Permissions.EnvironmentPermissionAccess" />
+    <ForwardedType Include="System.Security.Permissions.EnvironmentPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.FileDialogPermission" />
+    <ForwardedType Include="System.Security.Permissions.FileDialogPermissionAccess" />
+    <ForwardedType Include="System.Security.Permissions.FileDialogPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.FileIOPermission" />
+    <ForwardedType Include="System.Security.Permissions.FileIOPermissionAccess" />
+    <ForwardedType Include="System.Security.Permissions.FileIOPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.GacIdentityPermission" />
+    <ForwardedType Include="System.Security.Permissions.GacIdentityPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.HostProtectionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.HostProtectionResource" />
+    <ForwardedType Include="System.Security.Permissions.IUnrestrictedPermission" />
+    <ForwardedType Include="System.Security.Permissions.IsolatedStorageContainment" />
+    <ForwardedType Include="System.Security.Permissions.IsolatedStorageFilePermission" />
+    <ForwardedType Include="System.Security.Permissions.IsolatedStorageFilePermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.IsolatedStoragePermission" />
+    <ForwardedType Include="System.Security.Permissions.IsolatedStoragePermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.KeyContainerPermission" />
+    <ForwardedType Include="System.Security.Permissions.KeyContainerPermissionAccessEntry" />
+    <ForwardedType Include="System.Security.Permissions.KeyContainerPermissionAccessEntryCollection" />
+    <ForwardedType Include="System.Security.Permissions.KeyContainerPermissionAccessEntryEnumerator" />
+    <ForwardedType Include="System.Security.Permissions.KeyContainerPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.KeyContainerPermissionFlags" />
+    <ForwardedType Include="System.Security.Permissions.MediaPermission" />
+    <ForwardedType Include="System.Security.Permissions.MediaPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.MediaPermissionAudio" />
+    <ForwardedType Include="System.Security.Permissions.MediaPermissionImage" />
+    <ForwardedType Include="System.Security.Permissions.MediaPermissionVideo" />
+    <ForwardedType Include="System.Security.Permissions.PermissionSetAttribute" />
+    <ForwardedType Include="System.Security.Permissions.PrincipalPermission" />
+    <ForwardedType Include="System.Security.Permissions.PrincipalPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.PublisherIdentityPermission" />
+    <ForwardedType Include="System.Security.Permissions.PublisherIdentityPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.ReflectionPermission" />
+    <ForwardedType Include="System.Security.Permissions.ReflectionPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.ReflectionPermissionFlag" />
+    <ForwardedType Include="System.Security.Permissions.RegistryPermission" />
+    <ForwardedType Include="System.Security.Permissions.RegistryPermissionAccess" />
+    <ForwardedType Include="System.Security.Permissions.RegistryPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.ResourcePermissionBase" />
+    <ForwardedType Include="System.Security.Permissions.ResourcePermissionBaseEntry" />
+    <ForwardedType Include="System.Security.Permissions.SecurityPermission" />
+    <ForwardedType Include="System.Security.Permissions.SiteIdentityPermission" />
+    <ForwardedType Include="System.Security.Permissions.SiteIdentityPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.StorePermission" />
+    <ForwardedType Include="System.Security.Permissions.StorePermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.StorePermissionFlags" />
+    <ForwardedType Include="System.Security.Permissions.StrongNameIdentityPermission" />
+    <ForwardedType Include="System.Security.Permissions.StrongNameIdentityPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.StrongNamePublicKeyBlob" />
+    <ForwardedType Include="System.Security.Permissions.TypeDescriptorPermission" />
+    <ForwardedType Include="System.Security.Permissions.TypeDescriptorPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.TypeDescriptorPermissionFlags" />
+    <ForwardedType Include="System.Security.Permissions.UIPermission" />
+    <ForwardedType Include="System.Security.Permissions.UIPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.UIPermissionClipboard" />
+    <ForwardedType Include="System.Security.Permissions.UIPermissionWindow" />
+    <ForwardedType Include="System.Security.Permissions.UrlIdentityPermission" />
+    <ForwardedType Include="System.Security.Permissions.UrlIdentityPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.WebBrowserPermission" />
+    <ForwardedType Include="System.Security.Permissions.WebBrowserPermissionAttribute" />
+    <ForwardedType Include="System.Security.Permissions.WebBrowserPermissionLevel" />
+    <ForwardedType Include="System.Security.Permissions.ZoneIdentityPermission" />
+    <ForwardedType Include="System.Security.Permissions.ZoneIdentityPermissionAttribute" />
+    <ForwardedType Include="System.Security.Policy.AllMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.ApplicationDirectory" />
+    <ForwardedType Include="System.Security.Policy.ApplicationDirectoryMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.ApplicationTrust" />
+    <ForwardedType Include="System.Security.Policy.ApplicationTrustCollection" />
+    <ForwardedType Include="System.Security.Policy.ApplicationTrustEnumerator" />
+    <ForwardedType Include="System.Security.Policy.ApplicationVersionMatch" />
+    <ForwardedType Include="System.Security.Policy.CodeConnectAccess" />
+    <ForwardedType Include="System.Security.Policy.CodeGroup" />
+    <ForwardedType Include="System.Security.Policy.FileCodeGroup" />
+    <ForwardedType Include="System.Security.Policy.FirstMatchCodeGroup" />
+    <ForwardedType Include="System.Security.Policy.GacInstalled" />
+    <ForwardedType Include="System.Security.Policy.GacMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.Hash" />
+    <ForwardedType Include="System.Security.Policy.HashMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.IIdentityPermissionFactory" />
+    <ForwardedType Include="System.Security.Policy.IMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.NetCodeGroup" />
+    <ForwardedType Include="System.Security.Policy.PermissionRequestEvidence" />
+    <ForwardedType Include="System.Security.Policy.PolicyException" />
+    <ForwardedType Include="System.Security.Policy.PolicyLevel" />
+    <ForwardedType Include="System.Security.Policy.PolicyStatement" />
+    <ForwardedType Include="System.Security.Policy.PolicyStatementAttribute" />
+    <ForwardedType Include="System.Security.Policy.Publisher" />
+    <ForwardedType Include="System.Security.Policy.PublisherMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.Site" />
+    <ForwardedType Include="System.Security.Policy.SiteMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.StrongName" />
+    <ForwardedType Include="System.Security.Policy.StrongNameMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.TrustManagerContext" />
+    <ForwardedType Include="System.Security.Policy.TrustManagerUIContext" />
+    <ForwardedType Include="System.Security.Policy.UnionCodeGroup" />
+    <ForwardedType Include="System.Security.Policy.Url" />
+    <ForwardedType Include="System.Security.Policy.UrlMembershipCondition" />
+    <ForwardedType Include="System.Security.Policy.Zone" />
+    <ForwardedType Include="System.Security.Policy.ZoneMembershipCondition" />
+    <ForwardedType Include="System.Security.PolicyLevelType" />
+    <ForwardedType Include="System.Security.SecurityContext" />
+    <ForwardedType Include="System.Security.SecurityContextSource" />
+    <ForwardedType Include="System.Security.SecurityManager" />
+    <ForwardedType Include="System.Security.SecurityState" />
+    <ForwardedType Include="System.Security.SecurityZone" />
+    <ForwardedType Include="System.Security.XmlSyntaxException" />
+    <ForwardedType Include="System.ServiceProcess.ServiceControllerPermission" />
+    <ForwardedType Include="System.ServiceProcess.ServiceControllerPermissionAccess" />
+    <ForwardedType Include="System.ServiceProcess.ServiceControllerPermissionAttribute" />
+    <ForwardedType Include="System.ServiceProcess.ServiceControllerPermissionEntry" />
+    <ForwardedType Include="System.ServiceProcess.ServiceControllerPermissionEntryCollection" />
+    <ForwardedType Include="System.Transactions.DistributedTransactionPermission" />
+    <ForwardedType Include="System.Transactions.DistributedTransactionPermissionAttribute" />
+    <ForwardedType Include="System.Web.AspNetHostingPermission" />
+    <ForwardedType Include="System.Web.AspNetHostingPermissionAttribute" />
+    <ForwardedType Include="System.Web.AspNetHostingPermissionLevel" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.ServiceModel.Syndication.csproj b/src/libraries/shims/stubs/System.ServiceModel.Syndication.csproj
new file mode 100644 (file)
index 0000000..f6ac096
--- /dev/null
@@ -0,0 +1,41 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.ServiceModel.Syndication.Atom10FeedFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Atom10FeedFormatter&lt;T&gt;" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Atom10ItemFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Atom10ItemFormatter&lt;T&gt;" />
+    <ForwardedType Include="System.ServiceModel.Syndication.AtomPub10CategoriesDocumentFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter&lt;T&gt;" />
+    <ForwardedType Include="System.ServiceModel.Syndication.CategoriesDocument" />
+    <ForwardedType Include="System.ServiceModel.Syndication.CategoriesDocumentFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.InlineCategoriesDocument" />
+    <ForwardedType Include="System.ServiceModel.Syndication.ReferencedCategoriesDocument" />
+    <ForwardedType Include="System.ServiceModel.Syndication.ResourceCollectionInfo" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Rss20FeedFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Rss20FeedFormatter&lt;T&gt;" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Rss20ItemFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Rss20ItemFormatter&lt;T&gt;" />
+    <ForwardedType Include="System.ServiceModel.Syndication.ServiceDocument" />
+    <ForwardedType Include="System.ServiceModel.Syndication.ServiceDocumentFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationCategory" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationContent" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationElementExtension" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationElementExtensionCollection" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationFeed" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationFeedFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationItem" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationItemFormatter" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationLink" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationPerson" />
+    <ForwardedType Include="System.ServiceModel.Syndication.SyndicationVersions" />
+    <ForwardedType Include="System.ServiceModel.Syndication.TextSyndicationContent" />
+    <ForwardedType Include="System.ServiceModel.Syndication.TextSyndicationContentKind" />
+    <ForwardedType Include="System.ServiceModel.Syndication.UrlSyndicationContent" />
+    <ForwardedType Include="System.ServiceModel.Syndication.Workspace" />
+    <ForwardedType Include="System.ServiceModel.Syndication.XmlSyndicationContent" />
+  </ItemGroup>
+
+</Project>
+
diff --git a/src/libraries/shims/stubs/System.ServiceProcess.ServiceController.csproj b/src/libraries/shims/stubs/System.ServiceProcess.ServiceController.csproj
new file mode 100644 (file)
index 0000000..2fee693
--- /dev/null
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.ServiceProcess.PowerBroadcastStatus" />
+    <ForwardedType Include="System.ServiceProcess.ServiceBase" />
+    <ForwardedType Include="System.ServiceProcess.ServiceController" />
+    <ForwardedType Include="System.ServiceProcess.ServiceControllerStatus" />
+    <ForwardedType Include="System.ServiceProcess.ServiceProcessDescriptionAttribute" />
+    <ForwardedType Include="System.ServiceProcess.ServiceStartMode" />
+    <ForwardedType Include="System.ServiceProcess.ServiceType" />
+    <ForwardedType Include="System.ServiceProcess.SessionChangeDescription" />
+    <ForwardedType Include="System.ServiceProcess.SessionChangeReason" />
+    <ForwardedType Include="System.ServiceProcess.TimeoutException" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Threading.AccessControl.csproj b/src/libraries/shims/stubs/System.Threading.AccessControl.csproj
new file mode 100644 (file)
index 0000000..fd0e9e7
--- /dev/null
@@ -0,0 +1,22 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <StrongNameKeyId>Microsoft</StrongNameKeyId>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ForwardedType Include="System.Security.AccessControl.EventWaitHandleAccessRule" />
+    <ForwardedType Include="System.Security.AccessControl.EventWaitHandleAuditRule" />
+    <ForwardedType Include="System.Security.AccessControl.EventWaitHandleRights" />
+    <ForwardedType Include="System.Security.AccessControl.EventWaitHandleSecurity" />
+    <ForwardedType Include="System.Security.AccessControl.MutexAccessRule" />
+    <ForwardedType Include="System.Security.AccessControl.MutexAuditRule" />
+    <ForwardedType Include="System.Security.AccessControl.MutexRights" />
+    <ForwardedType Include="System.Security.AccessControl.MutexSecurity" />
+    <ForwardedType Include="System.Security.AccessControl.SemaphoreAccessRule" />
+    <ForwardedType Include="System.Security.AccessControl.SemaphoreAuditRule" />
+    <ForwardedType Include="System.Security.AccessControl.SemaphoreRights" />
+    <ForwardedType Include="System.Security.AccessControl.SemaphoreSecurity" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git a/src/libraries/shims/stubs/System.Windows.Extensions.csproj b/src/libraries/shims/stubs/System.Windows.Extensions.csproj
new file mode 100644 (file)
index 0000000..d77532c
--- /dev/null
@@ -0,0 +1,11 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <ItemGroup>
+    <ForwardedType Include="System.Media.SoundPlayer" />
+    <ForwardedType Include="System.Media.SystemSound" />
+    <ForwardedType Include="System.Media.SystemSounds" />
+    <ForwardedType Include="System.Security.Cryptography.X509Certificates.X509Certificate2UI" />
+    <ForwardedType Include="System.Security.Cryptography.X509Certificates.X509SelectionFlag" />
+  </ItemGroup>
+
+</Project>
\ No newline at end of file