Просмотр исходного кода

Merge in 'release/3.1' changes

dotnet-bot 6 лет назад
Родитель
Сommit
0780fb8e44
100 измененных файлов с 2491 добавлено и 1362 удалено
  1. 0 1
      .azure/pipelines/ci.yml
  2. 8 3
      Directory.Build.props
  3. 16 12
      Directory.Build.targets
  4. 3 9
      NuGet.config
  5. 0 2
      docs/PreparingPatchUpdates.md
  6. 0 1
      docs/ReferenceResolution.md
  7. 29 1
      eng/Build.props
  8. 1 1
      eng/CodeGen.proj
  9. 3 0
      eng/Dependencies.props
  10. 21 1
      eng/GenAPI.exclusions.txt
  11. 0 28
      eng/PatchConfig.props
  12. 44 45
      eng/ProjectReferences.props
  13. 5 4
      eng/SignCheckExclusionsFile.txt
  14. 4 7
      eng/Versions.props
  15. 1 1
      eng/targets/Packaging.targets
  16. 38 21
      eng/targets/ReferenceAssembly.targets
  17. 168 68
      eng/targets/ResolveReferences.targets
  18. 1 1
      src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
  19. 25 1
      src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
  20. 147 0
      src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.Manual.cs
  21. 7 5
      src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
  22. 0 13
      src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj
  23. 0 64
      src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs
  24. 0 13
      src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj
  25. 0 68
      src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.netcoreapp.cs
  26. 0 11
      src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj
  27. 0 11
      src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs
  28. 0 11
      src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.csproj
  29. 0 10
      src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs
  30. 4 4
      src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
  31. 0 12
      src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.csproj
  32. 0 81
      src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.netstandard2.0.cs
  33. 4 0
      src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj
  34. 4 0
      src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
  35. 0 10
      src/Components/Blazor/Http/ref/Microsoft.AspNetCore.Blazor.HttpClient.csproj
  36. 0 18
      src/Components/Blazor/Http/ref/Microsoft.AspNetCore.Blazor.HttpClient.netstandard2.0.cs
  37. 0 16
      src/Components/Blazor/Server/ref/Microsoft.AspNetCore.Blazor.Server.csproj
  38. 0 22
      src/Components/Blazor/Server/ref/Microsoft.AspNetCore.Blazor.Server.netcoreapp.cs
  39. 4 0
      src/Components/Blazor/Validation/test/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.Tests.csproj
  40. 0 9
      src/Components/Components/ref/Directory.Build.props
  41. 348 0
      src/Components/Components/ref/Microsoft.AspNetCore.Components.Manual.cs
  42. 11 7
      src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
  43. 0 19
      src/Components/Components/ref/Microsoft.AspNetCore.Components.netcoreapp.cs
  44. 0 58
      src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs
  45. 0 19
      src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.cs
  46. 3 3
      src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
  47. 4 0
      src/Components/Ignitor/src/Ignitor.csproj
  48. 2 0
      src/Components/Ignitor/test/Ignitor.Test.csproj
  49. 328 0
      src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.Manual.cs
  50. 11 9
      src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
  51. 5 0
      src/Components/Web.JS/Microsoft.AspNetCore.Components.Web.JS.npmproj
  52. 0 0
      src/Components/Web.JS/dist/Release/blazor.server.js
  53. 10 8
      src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
  54. 2 0
      src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
  55. 2 2
      src/Components/test/testassets/ComponentsApp.App/ComponentsApp.App.csproj
  56. 24 0
      src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs
  57. 2 1
      src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
  58. 0 12
      src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj
  59. 0 12
      src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs
  60. 4 0
      src/DataProtection/AzureKeyVault/test/Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj
  61. 0 12
      src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.csproj
  62. 0 22
      src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs
  63. 4 0
      src/DataProtection/AzureStorage/test/Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj
  64. 341 0
      src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs
  65. 2 1
      src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
  66. 28 0
      src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs
  67. 7 2
      src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
  68. 11 0
      src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.Manual.cs
  69. 385 0
      src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.Manual.cs
  70. 21 17
      src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
  71. 0 11
      src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj
  72. 0 30
      src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs
  73. 4 0
      src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj
  74. 34 0
      src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs
  75. 8 4
      src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
  76. 0 11
      src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj
  77. 0 21
      src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs
  78. 4 0
      src/DataProtection/StackExchangeRedis/test/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj
  79. 4 0
      src/DataProtection/samples/AzureBlob/AzureBlob.csproj
  80. 4 0
      src/DataProtection/samples/AzureKeyVault/AzureKeyVault.csproj
  81. 4 0
      src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj
  82. 4 0
      src/DataProtection/samples/Redis/Redis.csproj
  83. 18 18
      src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
  84. 0 11
      src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.csproj
  85. 0 309
      src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs
  86. 31 11
      src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
  87. 15 1
      src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
  88. 3 3
      src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
  89. 218 0
      src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.Manual.cs
  90. 15 13
      src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
  91. 2 2
      src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
  92. 0 12
      src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.csproj
  93. 0 77
      src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.netcoreapp.cs
  94. 0 11
      src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.csproj
  95. 0 21
      src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs
  96. 13 0
      src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.Manual.cs
  97. 2 1
      src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
  98. 3 3
      src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
  99. 3 3
      src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
  100. 10 0
      src/Http/Headers/ref/Microsoft.Net.Http.Headers.Manual.cs

+ 0 - 1
.azure/pipelines/ci.yml

@@ -636,7 +636,6 @@ stages:
     parameters:
       # See https://github.com/dotnet/arcade/issues/2871
       enableSymbolValidation: false
-      enableSigningValidation: false
       publishInstallersAndChecksums: true
       # This is to enable SDL runs part of Post-Build Validation Stage
       SDLValidationParameters:

+ 8 - 3
Directory.Build.props

@@ -84,8 +84,14 @@
     <RuntimeInstallerBaseName>aspnetcore-runtime</RuntimeInstallerBaseName>
     <TargetingPackInstallerBaseName>aspnetcore-targeting-pack</TargetingPackInstallerBaseName>
 
-    <!-- Used to only produce targeting pack installers/packages once per major.minor. -->
-    <IsTargetingPackBuilding Condition="'$(AspNetCorePatchVersion)' != '0' OR '$(DotNetBuildFromSource)' == 'true'">false</IsTargetingPackBuilding>
+    <!-- Produce targeting pack installers/packages once per major.minor except in extraordinary cases i.e. 3.0.1. -->
+    <!-- We can remove the 3.0.1 line from any branch other than release/3.0 and from here after 3.0.1 is released. -->
+    <IsTargetingPackBuilding Condition=" '$(DotNetBuildFromSource)' == 'true' ">false</IsTargetingPackBuilding>
+    <IsTargetingPackBuilding
+        Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(VersionPrefix)' == '3.0.1' ">true</IsTargetingPackBuilding>
+    <IsTargetingPackBuilding
+        Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(AspNetCorePatchVersion)' != '0' ">false</IsTargetingPackBuilding>
+    <IsTargetingPackBuilding Condition=" '$(IsTargetingPackBuilding)' == '' ">true</IsTargetingPackBuilding>
 
     <!--
       Archives and installers using this prefix are intended for internal-use only.
@@ -171,7 +177,6 @@
 
   <Import Project="eng\Workarounds.props" />
   <Import Project="eng\Dependencies.props" />
-  <Import Project="eng\PatchConfig.props" />
   <Import Project="eng\ProjectReferences.props" />
   <Import Project="eng\SharedFramework.Local.props" />
   <Import Project="eng\SharedFramework.External.props" />

+ 16 - 12
Directory.Build.targets

@@ -9,9 +9,10 @@
     -->
     <IsPackable Condition="'$(IsAspNetCoreApp)' == 'true' AND '$(IsShippingPackage)' != 'true'">false</IsPackable>
 
-    <!-- Only build assemblies in Microsoft.AspNetCore.App in source build -->
+    <!-- Only build Microsoft.AspNetCore.App and ref/ assemblies in source build. -->
     <!-- Analyzer package are needed in source build for WebSDK -->
-    <ExcludeFromSourceBuild Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
+    <ExcludeFromSourceBuild
+        Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsReferenceAssemblyProject)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
   </PropertyGroup>
 
   <PropertyGroup Label="Resx settings">
@@ -58,18 +59,18 @@
 
   <Import Project="eng\Baseline.Designer.props" />
 
-  <PropertyGroup
-      Condition=" '$(IsPackable)' != 'false' AND '$(AspNetCorePatchVersion)' != '0' AND '$(DisableServicingFeatures)' != 'true' ">
-    <IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">$(PackagesInPatch.Contains(' $(PackageId);'))</IsPackageInThisPatch>
-  </PropertyGroup>
-
   <PropertyGroup Condition=" '$(IsPackable)' != 'false' AND '$(IsServicingBuild)' == 'true' ">
+    <IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">true</IsPackageInThisPatch>
     <!-- Used to distinguish between packages building -->
     <IsPackableInNonServicingBuild>true</IsPackableInNonServicingBuild>
-    <!-- Suppress creation of .nupkg for servicing builds. -->
+    <!-- Suppress creation of .nupkg for servicing builds of non-shipping projects. -->
     <IsPackable Condition=" '$(IsPackageInThisPatch)' != 'true' ">false</IsPackable>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <PackageVersionForPackageVersionInfo>$(PackageVersion)</PackageVersionForPackageVersionInfo>
+  </PropertyGroup>
+
   <PropertyGroup Condition=" '$(IsPackageInThisPatch)' != 'true' AND '$(BaselinePackageVersion)' != '' AND '$(IsServicingBuild)' == 'true' ">
     <!-- This keeps assembly and package versions consistent across patches. If a package is not included in a patch, its version should stay at the baseline. -->
     <AssemblyVersion Condition="$(BaselinePackageVersion.Contains('-'))">$(BaselinePackageVersion.Substring(0, $(BaselinePackageVersion.IndexOf('-')))).0</AssemblyVersion>
@@ -83,6 +84,9 @@
     -->
     <Version Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</Version>
     <PackageVersion Condition="'$(NoBuild)' == 'true' AND '$(DesignTimeBuild)' == 'true'">$(BaselinePackageVersion)</PackageVersion>
+
+    <!-- For servicing builds, we want to resolve baseline versions of project packages that aren't building, always -->
+    <PackageVersionForPackageVersionInfo>$(BaselinePackageVersion)</PackageVersionForPackageVersionInfo>
   </PropertyGroup>
 
   <PropertyGroup>
@@ -92,7 +96,8 @@
     <!-- This determines whether a project is available as a <Reference> to other projects in this repo. -->
     <IsProjectReferenceProvider Condition=" '$(IsProjectReferenceProvider)' == '' AND '$(IsImplementationProject)' == 'true' AND '$(PackAsTool)' != 'true' ">true</IsProjectReferenceProvider>
 
-    <HasReferenceAssembly Condition="'$(HasReferenceAssembly)' == '' AND '$(IsProjectReferenceProvider)' == 'true'">true</HasReferenceAssembly>
+    <HasReferenceAssembly
+        Condition=" '$(HasReferenceAssembly)' == '' AND '$(IsProjectReferenceProvider)' == 'true' AND '$(IsAspNetCoreApp)' == 'true' ">true</HasReferenceAssembly>
     <HasReferenceAssembly Condition="'$(HasReferenceAssembly)' == ''">false</HasReferenceAssembly>
 
     <IsPackable Condition="'$(IsPackable)' == '' AND ('$(IsImplementationProject)' == 'true' OR '$(IsAnalyzersProject)' == 'true') ">true</IsPackable>
@@ -105,9 +110,8 @@
     <Compile Include="$(SharedSourceRoot)ReferenceAssemblyInfo.cs" LinkBase="Properties" />
   </ItemGroup>
 
-  <PropertyGroup Condition="'$(Language)' == 'C#'">
+  <PropertyGroup Condition="'$(Language)' == 'C#' AND '$(IsReferenceAssemblyProject)' == 'true'">
     <!-- Reference assemblies should always use Major.Minor.0.0 for assembly versions even during servicing. Only the package version should be updated. -->
-    <!-- Pinning the implementation assemblies at Major.Minor.0.0 as we figure out compiling against ref assemblies. -->
     <AssemblyVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0</AssemblyVersion>
   </PropertyGroup>
 
@@ -161,6 +165,6 @@
   <Import Project="eng\targets\FSharp.Common.targets"  Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
   <Import Project="eng\targets\Wix.Common.targets"  Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
   <Import Project="eng\targets\Npm.Common.targets"  Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
-  <Import Project="eng\targets\ReferenceAssembly.targets" Condition=" '$(HasReferenceAssembly)' == 'true' " />
+  <Import Project="eng\targets\ReferenceAssembly.targets" Condition=" $(HasReferenceAssembly) " />
 
 </Project>

+ 3 - 9
NuGet.config

@@ -8,16 +8,10 @@
     <add key="darc-pub-dotnet-corefx-0f7f38c" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-corefx-0f7f38c4/nuget/v3/index.json" />
     <!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
     <add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
-    <add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
-    <add key="aspnet-blazor" value="https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json" />
-    <add key="aspnet-extensions" value="https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json" />
-    <add key="aspnet-entityframeworkcore" value="https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json" />
-    <add key="aspnet-aspnetcore-tooling" value="https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json" />
+    <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
+    <add key="dotnet3.1" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json" />
+    <add key="dotnet3.1-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json" />
     <add key="grpc-nuget-dev" value="https://grpc.jfrog.io/grpc/api/nuget/v3/grpc-nuget-dev" />
-    <add key="roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
-    <add key="aspnetcore-dev" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
-    <add key="aspnetcore-tools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" />
-    <add key="roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
   </packageSources>
 </configuration>

+ 0 - 2
docs/PreparingPatchUpdates.md

@@ -12,5 +12,3 @@ In order to prepare this repo to build a new servicing update, the following cha
 
 * Update the package baselines. This is used to ensure packages keep a consistent set of dependencies between releases.
   See [eng/tools/BaselineGenerator/](/eng/tools/BaselineGenerator/README.md) for instructions on how to run this tool.
-
-* Update the list of packages in [eng/PatchConfig.props](/eng/PatchConfig.props) to list which packages should be patching in this release.

+ 0 - 1
docs/ReferenceResolution.md

@@ -31,7 +31,6 @@ The requirements that led to this system are:
 
 * [eng/Baseline.xml](/eng/Baseline.xml) - this contains the 'baseline' of the latest servicing release for this branch. It should be modified and used to update the generated file, Baseline.Designer.props.
 * [eng/Dependencies.props](/eng/Dependencies.props) - contains a list of all package references that might be used in the repo.
-* [eng/PatchConfig.props](/eng/PatchConfig.props) - lists which assemblies or packages are patching in the current build.
 * [eng/ProjectReferences.props](/eng/ProjectReferences.props) - lists which assemblies or packages might be available to be referenced as a local project.
 * [eng/Versions.props](/eng/Versions.props) - contains a list of versions which may be updated by automation. This is used by MSBuild to restore and build.
 * [eng/Version.Details.xml](/eng/Version.Details.xml) - used by automation to update dependencies variables in other files.

+ 29 - 1
eng/Build.props

@@ -158,7 +158,35 @@
                           @(ProjectToExclude);
                           $(RepoRoot)**\node_modules\**\*;
                           $(RepoRoot)**\bin\**\*;
-                          $(RepoRoot)**\obj\**\*;" />
+                          $(RepoRoot)**\obj\**\*;"
+                        Condition=" '$(BuildMainlyReferenceProviders)' != 'true' " />
+        <DotNetProjects Include="
+                          $(RepoRoot)src\DefaultBuilder\**\src\*.csproj;
+                          $(RepoRoot)src\Features\JsonPatch\**\src\*.csproj;
+                          $(RepoRoot)src\DataProtection\**\src\*.csproj;
+                          $(RepoRoot)src\Antiforgery\**\src\*.csproj;
+                          $(RepoRoot)src\Hosting\**\src\*.csproj;
+                          $(RepoRoot)src\Http\**\src\*.csproj;
+                          $(RepoRoot)src\Html\**\src\*.csproj;
+                          $(RepoRoot)src\Identity\**\src\*.csproj;
+                          $(RepoRoot)src\Servers\**\src\*.csproj;
+                          $(RepoRoot)src\Security\**\src\*.csproj;
+                          $(RepoRoot)src\SiteExtensions\**\src\*.csproj;
+                          $(RepoRoot)src\Tools\**\src\*.csproj;
+                          $(RepoRoot)src\Middleware\**\src\*.csproj;
+                          $(RepoRoot)src\Razor\**\src\*.csproj;
+                          $(RepoRoot)src\Mvc\**\src\*.csproj;
+                          $(RepoRoot)src\Azure\**\src\*.csproj;
+                          $(RepoRoot)src\SignalR\**\src\*.csproj;
+                          $(RepoRoot)src\Components\**\src\*.csproj;
+                          "
+                        Exclude="
+                          @(ProjectToBuild);
+                          @(ProjectToExclude);
+                          $(RepoRoot)**\node_modules\**\*;
+                          $(RepoRoot)**\bin\**\*;
+                          $(RepoRoot)**\obj\**\*;"
+                        Condition=" '$(BuildMainlyReferenceProviders)' == 'true' " />
 
         <ProjectToBuild Condition=" '$(BuildManaged)' == 'true'" Include="@(DotNetProjects)" Exclude="@(ProjectToExclude)" />
         <ProjectToExclude Condition=" '$(BuildManaged)' != 'true'" Include="@(DotNetProjects)" />

+ 1 - 1
eng/CodeGen.proj

@@ -3,6 +3,7 @@
   <PropertyGroup>
     <BuildManaged>true</BuildManaged>
     <RepoRoot>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', '..'))</RepoRoot>
+    <BuildMainlyReferenceProviders>true</BuildMainlyReferenceProviders>
   </PropertyGroup>
 
   <Import Project="Build.props" />
@@ -15,7 +16,6 @@
              BuildInParallel="true"
              SkipNonexistentTargets="true"
              SkipNonexistentProjects="true" >
-
       <Output TaskParameter="TargetOutputs" ItemName="_ProjectReferenceProvider"/>
     </MSBuild>
 

+ 3 - 0
eng/Dependencies.props

@@ -82,12 +82,14 @@ and are generated based on the last package release.
     <LatestPackageReference Include="Microsoft.Extensions.WebEncoders" Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
     <LatestPackageReference Include="Microsoft.JSInterop" Version="$(MicrosoftJSInteropPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Win32.SystemEvents" Version="$(MicrosoftWin32SystemEventsPackageVersion)" />
     <LatestPackageReference Include="System.Buffers" Version="$(SystemBuffersPackageVersion)" />
     <LatestPackageReference Include="System.CodeDom" Version="$(SystemCodeDomPackageVersion)" />
     <LatestPackageReference Include="System.CommandLine.Experimental" Version="$(SystemCommandlineExperimentalPackageVersion)" />
     <LatestPackageReference Include="System.ComponentModel" Version="$(SystemComponentModelPackageVersion)" />
     <LatestPackageReference Include="System.ComponentModel.Annotations" Version="$(SystemComponentModelAnnotationsPackageVersion)" />
     <LatestPackageReference Include="System.Diagnostics.EventLog" Version="$(SystemDiagnosticsEventLogPackageVersion)" />
+    <LatestPackageReference Include="System.Drawing.Common" Version="$(SystemDrawingCommonPackageVersion)" />
     <LatestPackageReference Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
     <LatestPackageReference Include="System.Net.Http" Version="$(SystemNetHttpPackageVersion)" />
     <LatestPackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataPackageVersion)" />
@@ -99,6 +101,7 @@ and are generated based on the last package release.
     <LatestPackageReference Include="System.Security.Principal.Windows" Version="$(SystemSecurityPrincipalWindowsPackageVersion)" />
     <LatestPackageReference Include="System.Text.Json" Version="$(SystemTextJsonPackageVersion)" />
     <LatestPackageReference Include="System.Threading.Channels" Version="$(SystemThreadingChannelsPackageVersion)" />
+    <LatestPackageReference Include="System.Windows.Extensions" Version="$(SystemWindowsExtensionsPackageVersion)" />
 
     <!-- Runtime packages required for crossgen -->
     <LatestPackageReference Include="microsoft.netcore.app.runtime.win-x64" Version="$(MicrosoftNETCoreAppRuntimeVersion)" />

+ 21 - 1
eng/GenAPI.exclusions.txt

@@ -2,4 +2,24 @@
 T:Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame
 # Manually implemented - https://github.com/dotnet/arcade/issues/2066
 T:Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel
-T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
+# Manually implemented - Need to include internal setter
+P:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.Cache
+P:Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.Conventions
+P:Microsoft.AspNetCore.Routing.Matching.CandidateState.Values
+P:Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.KestrelServerOptions
+# public structs with public fields that GenAPI doesn't handle
+T:Microsoft.AspNetCore.Components.EventCallback
+T:Microsoft.AspNetCore.Components.EventCallback`1
+# Break GenAPI - https://github.com/dotnet/arcade/issues/4488
+T:Microsoft.AspNetCore.Components.Rendering.HtmlRenderer.<CreateInitialRenderAsync>d__17
+T:Microsoft.AspNetCore.Components.Rendering.HtmlRenderer.<RenderComponentAsync>d__8
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.ActionAttributeRouteModel.<>c
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.ActionAttributeRouteModel.<GetAttributeRoutes>d__3
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__181`1
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__183`1
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__184`1
+T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__187
+T:Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0
+T:Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.<TryCreateAsync>d__4
+T:Microsoft.AspNetCore.Mvc.Routing.ConsumesMatcherPolicy.<>c

+ 0 - 28
eng/PatchConfig.props

@@ -1,28 +0,0 @@
-<!--
-
-This file contains a list of the package IDs which are patching in a given release.
-
-CAUTION: due to limitations in MSBuild, the format of the PackagesInPatch property is picky.
-When adding a new package, make sure the new line ends with a semicolon and starts with a space.
-
-Directory.Build.props checks this property using the following condition:
-    <IsPackageInThisPatch>$(PackagesInPatch.Contains(' $(PackageId);'))</IsPackageInThisPatch>
--->
-<Project>
-  <PropertyGroup>
-    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
-  </PropertyGroup>
-
-  <PropertyGroup Condition=" '$(VersionPrefix)' == '3.0.1' ">
-    <PackagesInPatch>
-      Microsoft.Net.Http.Headers;
-      Microsoft.AspNetCore.CookiePolicy;
-      Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
-      @microsoft/signalr;
-      Microsoft.Net.Http.Headers;
-      Microsoft.AspNetCore.Http.Abstractions;
-      Microsoft.AspNetCore.Http.Features;
-      Microsoft.AspNetCore.CookiePolicy;
-    </PackagesInPatch>
-  </PropertyGroup>
-</Project>

+ 44 - 45
eng/ProjectReferences.props

@@ -5,36 +5,72 @@
 -->
 <Project>
   <ItemGroup>
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.JsonPatch" ProjectPath="$(RepoRoot)src\Features\JsonPatch\src\Microsoft.AspNetCore.JsonPatch.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" ProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureStorage" ProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" ProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.TestHost" ProjectPath="$(RepoRoot)src\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.WindowsServices" ProjectPath="$(RepoRoot)src\Hosting\WindowsServices\src\Microsoft.AspNetCore.Hosting.WindowsServices.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Owin" ProjectPath="$(RepoRoot)src\Http\Owin\src\Microsoft.AspNetCore.Owin.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" ProjectPath="$(RepoRoot)src\Identity\ApiAuthorization.IdentityServer\src\Microsoft.AspNetCore.ApiAuthorization.IdentityServer.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Identity\EntityFrameworkCore\src\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.Specification.Tests" ProjectPath="$(RepoRoot)src\Identity\Specification.Tests\src\Microsoft.AspNetCore.Identity.Specification.Tests.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.UI" ProjectPath="$(RepoRoot)src\Identity\UI\src\Microsoft.AspNetCore.Identity.UI.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Certificate" ProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\src\Microsoft.AspNetCore.Authentication.Certificate.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Facebook" ProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Google" ProjectPath="$(RepoRoot)src\Security\Authentication\Google\src\Microsoft.AspNetCore.Authentication.Google.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.JwtBearer" ProjectPath="$(RepoRoot)src\Security\Authentication\JwtBearer\src\Microsoft.AspNetCore.Authentication.JwtBearer.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" ProjectPath="$(RepoRoot)src\Security\Authentication\MicrosoftAccount\src\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Negotiate" ProjectPath="$(RepoRoot)src\Security\Authentication\Negotiate\src\Microsoft.AspNetCore.Authentication.Negotiate.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" ProjectPath="$(RepoRoot)src\Security\Authentication\OpenIdConnect\src\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Twitter" ProjectPath="$(RepoRoot)src\Security\Authentication\Twitter\src\Microsoft.AspNetCore.Authentication.Twitter.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.WsFederation" ProjectPath="$(RepoRoot)src\Security\Authentication\WsFederation\src\Microsoft.AspNetCore.Authentication.WsFederation.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.Web.Xdt.Extensions" ProjectPath="$(RepoRoot)src\SiteExtensions\Microsoft.Web.Xdt.Extensions\src\Microsoft.Web.Xdt.Extensions.csproj"  />
     <ProjectReferenceProvider Include="dotnet-getdocument" ProjectPath="$(RepoRoot)src\Tools\dotnet-getdocument\src\dotnet-getdocument.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Client" ProjectPath="$(RepoRoot)src\Tools\Extensions.ApiDescription.Client\src\Microsoft.Extensions.ApiDescription.Client.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Server" ProjectPath="$(RepoRoot)src\Tools\Extensions.ApiDescription.Server\src\Microsoft.Extensions.ApiDescription.Server.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" ProjectPath="$(RepoRoot)src\Tools\FirstRunCertGenerator\src\Microsoft.AspNetCore.DeveloperCertificates.XPlat.csproj"  />
     <ProjectReferenceProvider Include="GetDocument.Insider" ProjectPath="$(RepoRoot)src\Tools\GetDocumentInsider\src\GetDocumentInsider.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.ConcurrencyLimiter" ProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\src\Microsoft.AspNetCore.ConcurrencyLimiter.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\src\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.HeaderPropagation" ProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\src\Microsoft.AspNetCore.HeaderPropagation.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\HealthChecks.EntityFrameworkCore\src\Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.MiddlewareAnalysis" ProjectPath="$(RepoRoot)src\Middleware\MiddlewareAnalysis\src\Microsoft.AspNetCore.MiddlewareAnalysis.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.NodeServices" ProjectPath="$(RepoRoot)src\Middleware\NodeServices\src\Microsoft.AspNetCore.NodeServices.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices" ProjectPath="$(RepoRoot)src\Middleware\SpaServices\src\Microsoft.AspNetCore.SpaServices.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" ProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\src\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Testing" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureAD.UI\src\Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureADB2C.UI\src\Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" ProjectPath="$(RepoRoot)src\Azure\AzureAppServices.HostingStartup\src\Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServicesIntegration" ProjectPath="$(RepoRoot)src\Azure\AzureAppServicesIntegration\src\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client.Core" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client.Core\src\Microsoft.AspNetCore.SignalR.Client.Core.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client\src\Microsoft.AspNetCore.SignalR.Client.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Http.Connections.Client\src\Microsoft.AspNetCore.Http.Connections.Client.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.MessagePack\src\Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.NewtonsoftJson\src\Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Specification.Tests" ProjectPath="$(RepoRoot)src\SignalR\server\Specification.Tests\src\Microsoft.AspNetCore.SignalR.Specification.Tests.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" ProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\src\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor" ProjectPath="$(RepoRoot)src\Components\Blazor\Blazor\src\Microsoft.AspNetCore.Blazor.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Build" ProjectPath="$(RepoRoot)src\Components\Blazor\Build\src\Microsoft.AspNetCore.Blazor.Build.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.HttpClient" ProjectPath="$(RepoRoot)src\Components\Blazor\Http\src\Microsoft.AspNetCore.Blazor.HttpClient.csproj"  />
+    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Server" ProjectPath="$(RepoRoot)src\Components\Blazor\Server\src\Microsoft.AspNetCore.Blazor.Server.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.DataAnnotations.Validation" ProjectPath="$(RepoRoot)src\Components\Blazor\Validation\src\Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.csproj"  />
     <ProjectReferenceProvider Include="Ignitor" ProjectPath="$(RepoRoot)src\Components\Ignitor\src\Ignitor.csproj"  />
-    <ProjectReferenceProvider Include="BlazorServerApp" ProjectPath="$(RepoRoot)src\Components\Samples\BlazorServerApp\BlazorServerApp.csproj"  />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore" ProjectPath="$(RepoRoot)src\DefaultBuilder\src\Microsoft.AspNetCore.csproj" RefProjectPath="$(RepoRoot)src\DefaultBuilder\ref\Microsoft.AspNetCore.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.JsonPatch" ProjectPath="$(RepoRoot)src\Features\JsonPatch\src\Microsoft.AspNetCore.JsonPatch.csproj" RefProjectPath="$(RepoRoot)src\Features\JsonPatch\ref\Microsoft.AspNetCore.JsonPatch.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.Abstractions" ProjectPath="$(RepoRoot)src\DataProtection\Abstractions\src\Microsoft.AspNetCore.DataProtection.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Abstractions\ref\Microsoft.AspNetCore.DataProtection.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" ProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\ref\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureStorage" ProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\ref\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Cryptography.Internal" ProjectPath="$(RepoRoot)src\DataProtection\Cryptography.Internal\src\Microsoft.AspNetCore.Cryptography.Internal.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Cryptography.Internal\ref\Microsoft.AspNetCore.Cryptography.Internal.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" ProjectPath="$(RepoRoot)src\DataProtection\Cryptography.KeyDerivation\src\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Cryptography.KeyDerivation\ref\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection" ProjectPath="$(RepoRoot)src\DataProtection\DataProtection\src\Microsoft.AspNetCore.DataProtection.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\DataProtection\ref\Microsoft.AspNetCore.DataProtection.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\ref\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.Extensions" ProjectPath="$(RepoRoot)src\DataProtection\Extensions\src\Microsoft.AspNetCore.DataProtection.Extensions.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Extensions\ref\Microsoft.AspNetCore.DataProtection.Extensions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" ProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\ref\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Antiforgery" ProjectPath="$(RepoRoot)src\Antiforgery\src\Microsoft.AspNetCore.Antiforgery.csproj" RefProjectPath="$(RepoRoot)src\Antiforgery\ref\Microsoft.AspNetCore.Antiforgery.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.Abstractions" ProjectPath="$(RepoRoot)src\Hosting\Abstractions\src\Microsoft.AspNetCore.Hosting.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Hosting\Abstractions\ref\Microsoft.AspNetCore.Hosting.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting" ProjectPath="$(RepoRoot)src\Hosting\Hosting\src\Microsoft.AspNetCore.Hosting.csproj" RefProjectPath="$(RepoRoot)src\Hosting\Hosting\ref\Microsoft.AspNetCore.Hosting.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" ProjectPath="$(RepoRoot)src\Hosting\Server.Abstractions\src\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Hosting\Server.Abstractions\ref\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.TestHost" ProjectPath="$(RepoRoot)src\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj" RefProjectPath="$(RepoRoot)src\Hosting\TestHost\ref\Microsoft.AspNetCore.TestHost.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.WindowsServices" ProjectPath="$(RepoRoot)src\Hosting\WindowsServices\src\Microsoft.AspNetCore.Hosting.WindowsServices.csproj" RefProjectPath="$(RepoRoot)src\Hosting\WindowsServices\ref\Microsoft.AspNetCore.Hosting.WindowsServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Abstractions" ProjectPath="$(RepoRoot)src\Http\Authentication.Abstractions\src\Microsoft.AspNetCore.Authentication.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Http\Authentication.Abstractions\ref\Microsoft.AspNetCore.Authentication.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Core" ProjectPath="$(RepoRoot)src\Http\Authentication.Core\src\Microsoft.AspNetCore.Authentication.Core.csproj" RefProjectPath="$(RepoRoot)src\Http\Authentication.Core\ref\Microsoft.AspNetCore.Authentication.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.Net.Http.Headers" ProjectPath="$(RepoRoot)src\Http\Headers\src\Microsoft.Net.Http.Headers.csproj" RefProjectPath="$(RepoRoot)src\Http\Headers\ref\Microsoft.Net.Http.Headers.csproj" />
@@ -43,61 +79,40 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Features" ProjectPath="$(RepoRoot)src\Http\Http.Features\src\Microsoft.AspNetCore.Http.Features.csproj" RefProjectPath="$(RepoRoot)src\Http\Http.Features\ref\Microsoft.AspNetCore.Http.Features.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http" ProjectPath="$(RepoRoot)src\Http\Http\src\Microsoft.AspNetCore.Http.csproj" RefProjectPath="$(RepoRoot)src\Http\Http\ref\Microsoft.AspNetCore.Http.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Metadata" ProjectPath="$(RepoRoot)src\Http\Metadata\src\Microsoft.AspNetCore.Metadata.csproj" RefProjectPath="$(RepoRoot)src\Http\Metadata\ref\Microsoft.AspNetCore.Metadata.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Owin" ProjectPath="$(RepoRoot)src\Http\Owin\src\Microsoft.AspNetCore.Owin.csproj" RefProjectPath="$(RepoRoot)src\Http\Owin\ref\Microsoft.AspNetCore.Owin.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Routing.Abstractions" ProjectPath="$(RepoRoot)src\Http\Routing.Abstractions\src\Microsoft.AspNetCore.Routing.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Http\Routing.Abstractions\ref\Microsoft.AspNetCore.Routing.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Routing" ProjectPath="$(RepoRoot)src\Http\Routing\src\Microsoft.AspNetCore.Routing.csproj" RefProjectPath="$(RepoRoot)src\Http\Routing\ref\Microsoft.AspNetCore.Routing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.WebUtilities" ProjectPath="$(RepoRoot)src\Http\WebUtilities\src\Microsoft.AspNetCore.WebUtilities.csproj" RefProjectPath="$(RepoRoot)src\Http\WebUtilities\ref\Microsoft.AspNetCore.WebUtilities.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Html.Abstractions" ProjectPath="$(RepoRoot)src\Html\Abstractions\src\Microsoft.AspNetCore.Html.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Html\Abstractions\ref\Microsoft.AspNetCore.Html.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity" ProjectPath="$(RepoRoot)src\Identity\Core\src\Microsoft.AspNetCore.Identity.csproj" RefProjectPath="$(RepoRoot)src\Identity\Core\ref\Microsoft.AspNetCore.Identity.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Identity\EntityFrameworkCore\src\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\Identity\EntityFrameworkCore\ref\Microsoft.AspNetCore.Identity.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.Extensions.Identity.Core" ProjectPath="$(RepoRoot)src\Identity\Extensions.Core\src\Microsoft.Extensions.Identity.Core.csproj" RefProjectPath="$(RepoRoot)src\Identity\Extensions.Core\ref\Microsoft.Extensions.Identity.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.Extensions.Identity.Stores" ProjectPath="$(RepoRoot)src\Identity\Extensions.Stores\src\Microsoft.Extensions.Identity.Stores.csproj" RefProjectPath="$(RepoRoot)src\Identity\Extensions.Stores\ref\Microsoft.Extensions.Identity.Stores.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.UI" ProjectPath="$(RepoRoot)src\Identity\UI\src\Microsoft.AspNetCore.Identity.UI.csproj" RefProjectPath="$(RepoRoot)src\Identity\UI\ref\Microsoft.AspNetCore.Identity.UI.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Connections.Abstractions" ProjectPath="$(RepoRoot)src\Servers\Connections.Abstractions\src\Microsoft.AspNetCore.Connections.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Servers\Connections.Abstractions\ref\Microsoft.AspNetCore.Connections.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.HttpSys" ProjectPath="$(RepoRoot)src\Servers\HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj" RefProjectPath="$(RepoRoot)src\Servers\HttpSys\ref\Microsoft.AspNetCore.Server.HttpSys.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IISIntegration" ProjectPath="$(RepoRoot)src\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj" RefProjectPath="$(RepoRoot)src\Servers\IIS\IISIntegration\ref\Microsoft.AspNetCore.Server.IISIntegration.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IIS" ProjectPath="$(RepoRoot)src\Servers\IIS\IIS\src\Microsoft.AspNetCore.Server.IIS.csproj" RefProjectPath="$(RepoRoot)src\Servers\IIS\IIS\ref\Microsoft.AspNetCore.Server.IIS.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Core" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Core\src\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Core\ref\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Kestrel\ref\Microsoft.AspNetCore.Server.Kestrel.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Sockets\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" RefProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Sockets\ref\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Certificate" ProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\src\Microsoft.AspNetCore.Authentication.Certificate.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\ref\Microsoft.AspNetCore.Authentication.Certificate.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Cookies" ProjectPath="$(RepoRoot)src\Security\Authentication\Cookies\src\Microsoft.AspNetCore.Authentication.Cookies.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Cookies\ref\Microsoft.AspNetCore.Authentication.Cookies.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication" ProjectPath="$(RepoRoot)src\Security\Authentication\Core\src\Microsoft.AspNetCore.Authentication.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Core\ref\Microsoft.AspNetCore.Authentication.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Facebook" ProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\ref\Microsoft.AspNetCore.Authentication.Facebook.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Google" ProjectPath="$(RepoRoot)src\Security\Authentication\Google\src\Microsoft.AspNetCore.Authentication.Google.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Google\ref\Microsoft.AspNetCore.Authentication.Google.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.JwtBearer" ProjectPath="$(RepoRoot)src\Security\Authentication\JwtBearer\src\Microsoft.AspNetCore.Authentication.JwtBearer.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\JwtBearer\ref\Microsoft.AspNetCore.Authentication.JwtBearer.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" ProjectPath="$(RepoRoot)src\Security\Authentication\MicrosoftAccount\src\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\MicrosoftAccount\ref\Microsoft.AspNetCore.Authentication.MicrosoftAccount.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Negotiate" ProjectPath="$(RepoRoot)src\Security\Authentication\Negotiate\src\Microsoft.AspNetCore.Authentication.Negotiate.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Negotiate\ref\Microsoft.AspNetCore.Authentication.Negotiate.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.OAuth" ProjectPath="$(RepoRoot)src\Security\Authentication\OAuth\src\Microsoft.AspNetCore.Authentication.OAuth.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\OAuth\ref\Microsoft.AspNetCore.Authentication.OAuth.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" ProjectPath="$(RepoRoot)src\Security\Authentication\OpenIdConnect\src\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\OpenIdConnect\ref\Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Twitter" ProjectPath="$(RepoRoot)src\Security\Authentication\Twitter\src\Microsoft.AspNetCore.Authentication.Twitter.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\Twitter\ref\Microsoft.AspNetCore.Authentication.Twitter.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.WsFederation" ProjectPath="$(RepoRoot)src\Security\Authentication\WsFederation\src\Microsoft.AspNetCore.Authentication.WsFederation.csproj" RefProjectPath="$(RepoRoot)src\Security\Authentication\WsFederation\ref\Microsoft.AspNetCore.Authentication.WsFederation.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authorization" ProjectPath="$(RepoRoot)src\Security\Authorization\Core\src\Microsoft.AspNetCore.Authorization.csproj" RefProjectPath="$(RepoRoot)src\Security\Authorization\Core\ref\Microsoft.AspNetCore.Authorization.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authorization.Policy" ProjectPath="$(RepoRoot)src\Security\Authorization\Policy\src\Microsoft.AspNetCore.Authorization.Policy.csproj" RefProjectPath="$(RepoRoot)src\Security\Authorization\Policy\ref\Microsoft.AspNetCore.Authorization.Policy.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.CookiePolicy" ProjectPath="$(RepoRoot)src\Security\CookiePolicy\src\Microsoft.AspNetCore.CookiePolicy.csproj" RefProjectPath="$(RepoRoot)src\Security\CookiePolicy\ref\Microsoft.AspNetCore.CookiePolicy.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.ConcurrencyLimiter" ProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\src\Microsoft.AspNetCore.ConcurrencyLimiter.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\ref\Microsoft.AspNetCore.ConcurrencyLimiter.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Cors" ProjectPath="$(RepoRoot)src\Middleware\CORS\src\Microsoft.AspNetCore.Cors.csproj" RefProjectPath="$(RepoRoot)src\Middleware\CORS\ref\Microsoft.AspNetCore.Cors.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.Abstractions" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.Abstractions\src\Microsoft.AspNetCore.Diagnostics.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Diagnostics.Abstractions\ref\Microsoft.AspNetCore.Diagnostics.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\src\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\ref\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics\src\Microsoft.AspNetCore.Diagnostics.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Diagnostics\ref\Microsoft.AspNetCore.Diagnostics.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.HeaderPropagation" ProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\src\Microsoft.AspNetCore.HeaderPropagation.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\ref\Microsoft.AspNetCore.HeaderPropagation.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\HealthChecks.EntityFrameworkCore\src\Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HealthChecks.EntityFrameworkCore\ref\Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" ProjectPath="$(RepoRoot)src\Middleware\HealthChecks\src\Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HealthChecks\ref\Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.HostFiltering" ProjectPath="$(RepoRoot)src\Middleware\HostFiltering\src\Microsoft.AspNetCore.HostFiltering.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HostFiltering\ref\Microsoft.AspNetCore.HostFiltering.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.HttpOverrides" ProjectPath="$(RepoRoot)src\Middleware\HttpOverrides\src\Microsoft.AspNetCore.HttpOverrides.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HttpOverrides\ref\Microsoft.AspNetCore.HttpOverrides.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.HttpsPolicy" ProjectPath="$(RepoRoot)src\Middleware\HttpsPolicy\src\Microsoft.AspNetCore.HttpsPolicy.csproj" RefProjectPath="$(RepoRoot)src\Middleware\HttpsPolicy\ref\Microsoft.AspNetCore.HttpsPolicy.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Localization.Routing" ProjectPath="$(RepoRoot)src\Middleware\Localization.Routing\src\Microsoft.AspNetCore.Localization.Routing.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Localization.Routing\ref\Microsoft.AspNetCore.Localization.Routing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Localization" ProjectPath="$(RepoRoot)src\Middleware\Localization\src\Microsoft.AspNetCore.Localization.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Localization\ref\Microsoft.AspNetCore.Localization.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.MiddlewareAnalysis" ProjectPath="$(RepoRoot)src\Middleware\MiddlewareAnalysis\src\Microsoft.AspNetCore.MiddlewareAnalysis.csproj" RefProjectPath="$(RepoRoot)src\Middleware\MiddlewareAnalysis\ref\Microsoft.AspNetCore.MiddlewareAnalysis.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.NodeServices" ProjectPath="$(RepoRoot)src\Middleware\NodeServices\src\Microsoft.AspNetCore.NodeServices.csproj" RefProjectPath="$(RepoRoot)src\Middleware\NodeServices\ref\Microsoft.AspNetCore.NodeServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" ProjectPath="$(RepoRoot)src\Middleware\ResponseCaching.Abstractions\src\Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ResponseCaching.Abstractions\ref\Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCaching" ProjectPath="$(RepoRoot)src\Middleware\ResponseCaching\src\Microsoft.AspNetCore.ResponseCaching.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ResponseCaching\ref\Microsoft.AspNetCore.ResponseCaching.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.ResponseCompression" ProjectPath="$(RepoRoot)src\Middleware\ResponseCompression\src\Microsoft.AspNetCore.ResponseCompression.csproj" RefProjectPath="$(RepoRoot)src\Middleware\ResponseCompression\ref\Microsoft.AspNetCore.ResponseCompression.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Rewrite" ProjectPath="$(RepoRoot)src\Middleware\Rewrite\src\Microsoft.AspNetCore.Rewrite.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Rewrite\ref\Microsoft.AspNetCore.Rewrite.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Session" ProjectPath="$(RepoRoot)src\Middleware\Session\src\Microsoft.AspNetCore.Session.csproj" RefProjectPath="$(RepoRoot)src\Middleware\Session\ref\Microsoft.AspNetCore.Session.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj" RefProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\ref\Microsoft.AspNetCore.SpaServices.Extensions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices" ProjectPath="$(RepoRoot)src\Middleware\SpaServices\src\Microsoft.AspNetCore.SpaServices.csproj" RefProjectPath="$(RepoRoot)src\Middleware\SpaServices\ref\Microsoft.AspNetCore.SpaServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.StaticFiles" ProjectPath="$(RepoRoot)src\Middleware\StaticFiles\src\Microsoft.AspNetCore.StaticFiles.csproj" RefProjectPath="$(RepoRoot)src\Middleware\StaticFiles\ref\Microsoft.AspNetCore.StaticFiles.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.WebSockets" ProjectPath="$(RepoRoot)src\Middleware\WebSockets\src\Microsoft.AspNetCore.WebSockets.csproj" RefProjectPath="$(RepoRoot)src\Middleware\WebSockets\ref\Microsoft.AspNetCore.WebSockets.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Razor.Runtime" ProjectPath="$(RepoRoot)src\Razor\Razor.Runtime\src\Microsoft.AspNetCore.Razor.Runtime.csproj" RefProjectPath="$(RepoRoot)src\Razor\Razor.Runtime\ref\Microsoft.AspNetCore.Razor.Runtime.csproj" />
@@ -110,34 +125,18 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Formatters.Json" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Json\src\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Json\ref\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Xml\src\Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Formatters.Xml\ref\Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Localization" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Localization\src\Microsoft.AspNetCore.Mvc.Localization.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Localization\ref\Microsoft.AspNetCore.Mvc.Localization.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" ProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\ref\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\src\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\ref\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.RazorPages" ProjectPath="$(RepoRoot)src\Mvc\Mvc.RazorPages\src\Microsoft.AspNetCore.Mvc.RazorPages.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.RazorPages\ref\Microsoft.AspNetCore.Mvc.RazorPages.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor\src\Microsoft.AspNetCore.Mvc.Razor.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor\ref\Microsoft.AspNetCore.Mvc.Razor.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.TagHelpers" ProjectPath="$(RepoRoot)src\Mvc\Mvc.TagHelpers\src\Microsoft.AspNetCore.Mvc.TagHelpers.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.TagHelpers\ref\Microsoft.AspNetCore.Mvc.TagHelpers.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Testing" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\ref\Microsoft.AspNetCore.Mvc.Testing.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.ViewFeatures" ProjectPath="$(RepoRoot)src\Mvc\Mvc.ViewFeatures\src\Microsoft.AspNetCore.Mvc.ViewFeatures.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc.ViewFeatures\ref\Microsoft.AspNetCore.Mvc.ViewFeatures.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc" ProjectPath="$(RepoRoot)src\Mvc\Mvc\src\Microsoft.AspNetCore.Mvc.csproj" RefProjectPath="$(RepoRoot)src\Mvc\Mvc\ref\Microsoft.AspNetCore.Mvc.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureAD.UI\src\Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureAD.UI\ref\Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" ProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureADB2C.UI\src\Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAD\Authentication.AzureADB2C.UI\ref\Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" ProjectPath="$(RepoRoot)src\Azure\AzureAppServices.HostingStartup\src\Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAppServices.HostingStartup\ref\Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.AzureAppServicesIntegration" ProjectPath="$(RepoRoot)src\Azure\AzureAppServicesIntegration\src\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj" RefProjectPath="$(RepoRoot)src\Azure\AzureAppServicesIntegration\ref\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client.Core" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client.Core\src\Microsoft.AspNetCore.SignalR.Client.Core.csproj" RefProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client.Core\ref\Microsoft.AspNetCore.SignalR.Client.Core.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client\src\Microsoft.AspNetCore.SignalR.Client.csproj" RefProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Client\ref\Microsoft.AspNetCore.SignalR.Client.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections.Client" ProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Http.Connections.Client\src\Microsoft.AspNetCore.Http.Connections.Client.csproj" RefProjectPath="$(RepoRoot)src\SignalR\clients\csharp\Http.Connections.Client\ref\Microsoft.AspNetCore.Http.Connections.Client.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections.Common" ProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections.Common\src\Microsoft.AspNetCore.Http.Connections.Common.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections.Common\ref\Microsoft.AspNetCore.Http.Connections.Common.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Http.Connections" ProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections\src\Microsoft.AspNetCore.Http.Connections.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Http.Connections\ref\Microsoft.AspNetCore.Http.Connections.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.Json" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.Json\src\Microsoft.AspNetCore.SignalR.Protocols.Json.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Protocols.Json\ref\Microsoft.AspNetCore.SignalR.Protocols.Json.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.MessagePack\src\Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Protocols.MessagePack\ref\Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" ProjectPath="$(RepoRoot)src\SignalR\common\Protocols.NewtonsoftJson\src\Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\Protocols.NewtonsoftJson\ref\Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Common" ProjectPath="$(RepoRoot)src\SignalR\common\SignalR.Common\src\Microsoft.AspNetCore.SignalR.Common.csproj" RefProjectPath="$(RepoRoot)src\SignalR\common\SignalR.Common\ref\Microsoft.AspNetCore.SignalR.Common.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Core" ProjectPath="$(RepoRoot)src\SignalR\server\Core\src\Microsoft.AspNetCore.SignalR.Core.csproj" RefProjectPath="$(RepoRoot)src\SignalR\server\Core\ref\Microsoft.AspNetCore.SignalR.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR" ProjectPath="$(RepoRoot)src\SignalR\server\SignalR\src\Microsoft.AspNetCore.SignalR.csproj" RefProjectPath="$(RepoRoot)src\SignalR\server\SignalR\ref\Microsoft.AspNetCore.SignalR.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" ProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\src\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj" RefProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\ref\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Authorization" ProjectPath="$(RepoRoot)src\Components\Authorization\src\Microsoft.AspNetCore.Components.Authorization.csproj" RefProjectPath="$(RepoRoot)src\Components\Authorization\ref\Microsoft.AspNetCore.Components.Authorization.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor" ProjectPath="$(RepoRoot)src\Components\Blazor\Blazor\src\Microsoft.AspNetCore.Blazor.csproj" RefProjectPath="$(RepoRoot)src\Components\Blazor\Blazor\ref\Microsoft.AspNetCore.Blazor.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.HttpClient" ProjectPath="$(RepoRoot)src\Components\Blazor\Http\src\Microsoft.AspNetCore.Blazor.HttpClient.csproj" RefProjectPath="$(RepoRoot)src\Components\Blazor\Http\ref\Microsoft.AspNetCore.Blazor.HttpClient.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Server" ProjectPath="$(RepoRoot)src\Components\Blazor\Server\src\Microsoft.AspNetCore.Blazor.Server.csproj" RefProjectPath="$(RepoRoot)src\Components\Blazor\Server\ref\Microsoft.AspNetCore.Blazor.Server.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components" ProjectPath="$(RepoRoot)src\Components\Components\src\Microsoft.AspNetCore.Components.csproj" RefProjectPath="$(RepoRoot)src\Components\Components\ref\Microsoft.AspNetCore.Components.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Forms" ProjectPath="$(RepoRoot)src\Components\Forms\src\Microsoft.AspNetCore.Components.Forms.csproj" RefProjectPath="$(RepoRoot)src\Components\Forms\ref\Microsoft.AspNetCore.Components.Forms.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Server" ProjectPath="$(RepoRoot)src\Components\Server\src\Microsoft.AspNetCore.Components.Server.csproj" RefProjectPath="$(RepoRoot)src\Components\Server\ref\Microsoft.AspNetCore.Components.Server.csproj" />

+ 5 - 4
eng/SignCheckExclusionsFile.txt

@@ -1,4 +1,5 @@
-apphost.exe;; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
-.js;; We do not sign JavaScript files.
-.binlog;; MSBuild binary logs are not signed though they are sometimes placed where validation thinks they should be.
-WixUIWixca|WixDepCA;; We do not sign WiX content in our installers.
+*apphost.exe;; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
+*.binlog;; MSBuild binary logs are not signed though they are sometimes placed where validation thinks they should be.
+*.js;; We do not sign JavaScript files.
+*netfxca|*wixca|*wixdepca|*wixuiwixca;*.msi; We do not sign WiX content in our installers.
+*wixstdba.dll;*.exe;

+ 4 - 7
eng/Versions.props

@@ -23,15 +23,12 @@
     <BlazorClientPreReleasePreviewNumber>4</BlazorClientPreReleasePreviewNumber>
     <BlazorClientPreReleaseVersionLabel>preview$(BlazorClientPreReleasePreviewNumber)</BlazorClientPreReleaseVersionLabel>
     <AspNetCoreMajorMinorVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</AspNetCoreMajorMinorVersion>
+    <!-- The following property may need to be updated if ingesting new versions of Extensions.Refs package. The package override version is used to create PackageOverrides.txt in the targeting pack. -->
+    <MicrosoftInternalExtensionsRefsPackageOverrideVersion>3.1.0</MicrosoftInternalExtensionsRefsPackageOverrideVersion>
     <!-- Additional assembly attributes are already configured to include the source revision ID. -->
     <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
-    <!--
-      Until package baselines are updated (see aspnet/AspNetCore#12702), ignore them and PatchConfig.props. This also
-      gives us time to build the entire repo and settle the infrastructure. Do _not_ do this when stabilizing versions.
-    -->
-    <DisableServicingFeatures Condition=" '$(DisableServicingFeatures)' == '' AND '$(StabilizePackageVersion)' != 'true' ">true</DisableServicingFeatures>
-    <!-- Servicing builds have different characteristics for the way dependencies, baselines, and versions are handled. -->
-    <IsServicingBuild Condition=" '$(DisableServicingFeatures)' != 'true' AND '$(PreReleaseVersionLabel)' == 'servicing' ">true</IsServicingBuild>
+    <!-- Servicing builds have different characteristics for the way dependencies, framework references, and versions are handled. -->
+    <IsServicingBuild Condition=" '$(PreReleaseVersionLabel)' == 'servicing' ">true</IsServicingBuild>
     <VersionPrefix>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion)</VersionPrefix>
     <!-- TargetingPackVersionPrefix is used by projects, like .deb and .rpm, which use slightly different version formats. -->
     <TargetingPackVersionPrefix>$(VersionPrefix)</TargetingPackVersionPrefix>

+ 1 - 1
eng/targets/Packaging.targets

@@ -13,7 +13,7 @@
     <ItemGroup>
       <_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)">
         <PackageId>$(PackageId)</PackageId>
-        <PackageVersion>$(PackageVersion)</PackageVersion>
+        <PackageVersion>$(PackageVersionForPackageVersionInfo)</PackageVersion>
         <VersionSuffix>$(VersionSuffix)</VersionSuffix>
         <VersionVariableName>$(PackageId.Replace('.',''))PackageVersion</VersionVariableName>
       </_ProjectPathWithVersion>

+ 38 - 21
eng/targets/ReferenceAssembly.targets

@@ -1,6 +1,6 @@
 <Project>
 
-  <Target Name="GenerateReferenceSource" Condition="'$(HasReferenceAssembly)' == 'true'">
+  <Target Name="GenerateReferenceSource" Condition=" $(HasReferenceAssembly) ">
     <PropertyGroup>
       <_RefSourceOutputPath>$([System.IO.Directory]::GetParent('$(MSBuildProjectDirectory)'))/ref/</_RefSourceOutputPath>
       <_RefProjectFileOutputPath>$(_RefSourceOutputPath)$(AssemblyName).csproj</_RefProjectFileOutputPath>
@@ -13,8 +13,8 @@
     </ItemGroup>
 
     <MSBuild Projects="$(MSBuildProjectFullPath)"
-             Targets="_GenerateProjectSourceInner"
-             Properties="TargetFramework=%(_DeduplicatedTargetFramework.Identity)">
+        Targets="_GenerateProjectSourceInner"
+        Properties="TargetFramework=%(_DeduplicatedTargetFramework.Identity);CompileUsingReferenceAssemblies=false">
       <Output TaskParameter="TargetOutputs" ItemName="ProjectListContentItem" />
     </MSBuild>
 
@@ -34,16 +34,17 @@
 ]]></ProjectListContentLines>
     </PropertyGroup>
 
-    <!-- Workaround https://github.com/Microsoft/msbuild/issues/1024 -->
-    <WriteLinesToFile Condition="'$(OS)' == 'Windows_NT'"
-                      File="$(_RefProjectFileOutputPath)" Lines="$([MSBuild]::Escape($(ProjectListContentLines)))" Overwrite="true" />
-    <Exec Condition="'$(OS)' != 'Windows_NT'"
-          Command="echo '$(ProjectListContentLines.Replace('\t','\\t'))' > $(_RefProjectFileOutputPath)" />
+    <WriteLinesToFile File="$(_RefProjectFileOutputPath)"
+        Lines="$([MSBuild]::Escape($(ProjectListContentLines)))"
+        Overwrite="true" />
 
     <Message Importance="High" Text="Generated $(_RefProjectFileOutputPath)" />
   </Target>
 
-  <Target Name="_GenerateProjectSourceInner" Returns="@(ProjectListContent)" DependsOnTargets="Build" Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">
+  <Target Name="_GenerateProjectSourceInner"
+      Returns="@(ProjectListContent)"
+      DependsOnTargets="Build"
+      Condition=" '$(TargetFrameworkIdentifier)' != '.NETFramework' ">
     <PropertyGroup>
       <_RefSourceFileTFM>$(TargetFramework)</_RefSourceFileTFM>
       <_RefSourceFileTFM Condition="$(TargetFramework.StartsWith('netcoreapp'))">netcoreapp</_RefSourceFileTFM>
@@ -53,6 +54,7 @@
       <_RefSourceOutputPath>$([System.IO.Directory]::GetParent('$(MSBuildProjectDirectory)'))/ref/</_RefSourceOutputPath>
       <_RefSourceFileName>$(AssemblyName).$(_RefSourceFileTFM).cs</_RefSourceFileName>
       <_ManualRefSourceFileName>$(AssemblyName).Manual.cs</_ManualRefSourceFileName>
+      <_PerTFMManualRefSourceFileName>$(AssemblyName).$(_RefSourceFileTFM).Manual.cs</_PerTFMManualRefSourceFileName>
       <_RefSourceFileOutputPath>$(_RefSourceOutputPath)$(_RefSourceFileName)</_RefSourceFileOutputPath>
     </PropertyGroup>
 
@@ -63,8 +65,12 @@
 
     <PropertyGroup>
       <_GenApiFile>$([MSBuild]::NormalizePath('$(ArtifactsDir)', 'log', 'GenAPI.rsp'))</_GenApiFile>
-      <_GenAPICommand Condition="'$(MSBuildRuntimeType)' == 'core'">"$(DotNetTool)" --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
+      <_GenAPICommand
+          Condition="'$(MSBuildRuntimeType)' == 'core'">"$(DotNetTool)" --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
+      <_GenAPICmd>$(_GenAPICommand)</_GenAPICmd>
       <_GenAPICmd>$(_GenAPICommand) @"$(_GenApiFile)"</_GenAPICmd>
+      <_GenAPICmd
+          Condition=" '$(AdditionalGenApiCmdOptions)' != '' ">$(_GenAPICmd) $(AdditionalGenApiCmdOptions)</_GenAPICmd>
       <_GenApiArguments><![CDATA[
 "$(TargetPath)"
 --lib-path "@(_ReferencePathDirectories, '%3B')"
@@ -82,23 +88,34 @@
     <Exec Command="$(_GenAPICmd)" />
 
     <ItemGroup>
-      <FilteredOriginalReferences
-        Include="%(_OriginalReferences.Identity)"
-        Condition="'%(_OriginalReferences.NuGetPackageId)' == '' AND '%(_OriginalReferences.PrivateAssets)' != 'All'" />
+      <_ReferenceAssemblyCompileItems Include="$(_RefSourceFileName)" />
+      <_ReferenceAssemblyCompileItems Include="$(_ManualRefSourceFileName)"
+          Condition="Exists('$(_RefSourceOutputPath)$(_ManualRefSourceFileName)')" />
+      <_ReferenceAssemblyCompileItems Include="$(_PerTFMManualRefSourceFileName)"
+          Condition="Exists('$(_RefSourceOutputPath)$(_PerTFMManualRefSourceFileName)')" />
+      <_ReferenceAssemblyCompileItems Include="../src/AssemblyInfo.cs"
+          Condition="Exists('$(MSBuildProjectDirectory)/AssemblyInfo.cs')" />
+      <_ReferenceAssemblyCompileItems Include="../src/Properties/AssemblyInfo.cs"
+          Condition="Exists('$(MSBuildProjectDirectory)/Properties/AssemblyInfo.cs')" />
+      <FilteredOriginalReferences Include="%(_OriginalReferences.Identity)"
+          Condition="'%(_OriginalReferences.NuGetPackageId)' == '' AND '%(_OriginalReferences.PrivateAssets)' != 'All'" />
+
+      <_ReferenceAssemblyItems
+          Include="@(_ReferenceAssemblyCompileItems->'&lt;Compile Include=&quot;%(Identity)&quot; /&gt;')" />
+      <_ReferenceAssemblyItems
+          Include="@(FilteredOriginalReferences->'&lt;Reference Include=&quot;%(Identity)&quot; /&gt;')"
+          Condition=" '@(FilteredOriginalReferences)' != '' " />
+      <!-- Some src/ projects use Arcade SDK feature to generate InternalsVisibleTo attributes. -->
+      <_ReferenceAssemblyItems
+          Include="@(InternalsVisibleTo->'&lt;InternalsVisibleTo Include=&quot;%(Identity)&quot; Key=&quot;%(Key)&quot; /&gt;')"
+          Condition=" '@(InternalsVisibleTo)' != '' " />
     </ItemGroup>
 
     <PropertyGroup>
-      <_ManualReferenceAssemblyContent />
-      <_ManualReferenceAssemblyContent Condition="Exists('$(_RefSourceOutputPath)$(_ManualRefSourceFileName)')">
-      <![CDATA[
-    <Compile Include="$(_ManualRefSourceFileName)" />]]>
-      </_ManualReferenceAssemblyContent>
-
       <ReferencesContent>
       <![CDATA[
   <ItemGroup Condition="'%24(TargetFramework)' == '$(_RefProjectFileTFM)'">
-    <Compile Include="$(_RefSourceFileName)" />]]>$(_ManualReferenceAssemblyContent)<![CDATA[
-    @(FilteredOriginalReferences->'<Reference Include="%(Identity)"  />', '%0A    ')
+    @(_ReferenceAssemblyItems, '%0A    ')
   </ItemGroup>
 ]]>
       </ReferencesContent>

+ 168 - 68
eng/targets/ResolveReferences.targets

@@ -11,11 +11,12 @@
 
   Items used by the resolution strategy:
 
-    * BaselinePackageReference = a list of packages that were reference in the last release of the project currently building
+    * BaselinePackageReference = a list of packages that were referenced in the last release of the project currently building
+      - mainly used to ensure references do not change in servicing builds unless $(UseLatestPackageReferences) is not true.
     * LatestPackageReference = a list of the latest versions of packages
     * Reference = a list of the references which are needed for compilation or runtime
     * ProjectReferenceProvider = a list which maps of assembly names to the project file that produces it
- -->
+-->
 <Project>
 
   <PropertyGroup>
@@ -29,43 +30,49 @@
 
   <PropertyGroup>
     <!--
-      Projects should only use the latest package references when:
-        * preparing a new major or minor release (i.e. a non-servicing builds)
+      Projects should use the latest package references when:
+        * preparing a new major or minor release i.e. a non-servicing builds
         * when a project is a test or sample project
         * when a package is releasing a new patch (we like to update external dependencies in patches when possible)
+      That is, use latest package references unless this is a servicing build, the project is normally packable, and
+      the package is not included in this release.
     -->
-    <UseLatestPackageReferences Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsServicingBuild)' != 'true'  ">true</UseLatestPackageReferences>
-    <UseLatestPackageReferences Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsImplementationProject)' != 'true' ">true</UseLatestPackageReferences>
     <UseLatestPackageReferences
-        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsImplementationProject)' == 'true' AND '$(IsPackable)' == 'true' ">true</UseLatestPackageReferences>
+        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsServicingBuild)' != 'true'  ">true</UseLatestPackageReferences>
+    <UseLatestPackageReferences
+        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsPackableInNonServicingBuild)' != 'true' ">true</UseLatestPackageReferences>
+    <UseLatestPackageReferences
+        Condition=" '$(UseLatestPackageReferences)' == '' AND '$(IsPackageInThisPatch)' == 'true' ">true</UseLatestPackageReferences>
     <UseLatestPackageReferences Condition=" '$(UseLatestPackageReferences)' == '' ">false</UseLatestPackageReferences>
 
     <!--
-      Projects should only use the project references instead of baseline package references when:
-        * preparing a new major or minor release (i.e. a non-servicing builds)
-        * when a project is a test or sample project
-      We don't use project references between components in servicing builds between compontents to preserve the baseline as much as possible.
+      Projects should use project references (instead of baseline packages), compile against ref/ assemblies, and
+      execute against implementation assemblies in almost all cases. But, there's no need for implementation assemblies
+      and their $(TargetRefPath) indirection when building a ref/ project.
     -->
-    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' AND '$(IsServicingBuild)' != 'true' ">true</UseProjectReferences>
-    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' AND '$(IsImplementationProject)' != 'true' ">true</UseProjectReferences>
-    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' ">false</UseProjectReferences>
+    <UseProjectReferences Condition=" '$(UseProjectReferences)' == '' ">true</UseProjectReferences>
 
-    <ReferenceReferenceAssemblies Condition=" '$(ReferenceReferenceAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' == 'true'">true</ReferenceReferenceAssemblies>
-    <ReferenceReferenceAssemblies Condition=" '$(ReferenceReferenceAssemblies)' == '' ">false</ReferenceReferenceAssemblies>
+    <ReferenceReferenceAssemblies
+        Condition=" '$(ReferenceReferenceAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' == 'true'">true</ReferenceReferenceAssemblies>
+    <ReferenceReferenceAssemblies
+        Condition=" '$(ReferenceReferenceAssemblies)' == '' ">false</ReferenceReferenceAssemblies>
 
-    <ReferenceImplementationAssemblies Condition=" '$(ReferenceImplementationAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' != 'true'">true</ReferenceImplementationAssemblies>
-    <ReferenceImplementationAssemblies Condition=" '$(ReferenceImplementationAssemblies)' == '' ">false</ReferenceImplementationAssemblies>
+    <ReferenceImplementationAssemblies
+        Condition=" '$(ReferenceImplementationAssemblies)' == '' AND '$(IsReferenceAssemblyProject)' != 'true'">true</ReferenceImplementationAssemblies>
+    <ReferenceImplementationAssemblies
+        Condition=" '$(ReferenceImplementationAssemblies)' == '' ">false</ReferenceImplementationAssemblies>
   </PropertyGroup>
 
   <ItemDefinitionGroup>
     <Reference>
-      <IsSharedSource></IsSharedSource>
+      <IsSharedSource />
     </Reference>
   </ItemDefinitionGroup>
 
   <ItemGroup Condition="'$(EnableCustomReferenceResolution)' == 'true'">
     <Reference Update="@(Reference)">
-      <IsSharedSource Condition="'%(IsSharedSource)' == '' AND $([System.String]::new('%(Identity)').EndsWith('.Sources'))">true</IsSharedSource>
+      <IsSharedSource
+          Condition="'%(IsSharedSource)' == '' AND $([System.String]::new('%(Identity)').EndsWith('.Sources'))">true</IsSharedSource>
     </Reference>
 
     <!-- Packages which are implicitly defined by the .NET Core SDK. -->
@@ -73,35 +80,40 @@
     <!-- Capture a list of references which were set explicitly in the project. -->
     <_AllowedExplicitPackageReference Include="@(PackageReference->WithMetadataValue('AllowExplicitReference', 'true'))" />
     <_AllowedExplicitPackageReference Include="FSharp.Core" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
-    <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
+    <_ExplicitPackageReference Include="@(PackageReference)"
+        Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
 
     <_UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
 
-    <_CompilationOnlyReference Condition="'$(TargetFramework)' == 'netstandard2.0'" Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))" />
+    <_CompilationOnlyReference Include="@(Reference->WithMetadataValue('NuGetPackageId','NETStandard.Library'))"
+        Condition="'$(TargetFramework)' == 'netstandard2.0'" />
 
     <_InvalidReferenceToNonSharedFxAssembly Condition="'$(IsAspNetCoreApp)' == 'true'"
-      Include="@(Reference)"
-      Exclude="
-        @(AspNetCoreAppReference);
-        @(AspNetCoreAppReferenceAndPackage);
-        @(ExternalAspNetCoreAppReference);
-        @(_CompilationOnlyReference);
-        @(Reference->WithMetadataValue('IsSharedSource', 'true'))" />
+        Include="@(Reference)"
+        Exclude="
+          @(AspNetCoreAppReference);
+          @(AspNetCoreAppReferenceAndPackage);
+          @(ExternalAspNetCoreAppReference);
+          @(_CompilationOnlyReference);
+          @(Reference->WithMetadataValue('IsSharedSource', 'true'))" />
     <_OriginalReferences Include="@(Reference)" />
+
     <!--
       Turn Reference items into a ProjectReference when UseProjectReferences is true.
       Order matters. This comes before package resolution because projects should be used when possible instead of packages.
     -->
     <_ProjectReferenceByAssemblyName Condition="'$(UseProjectReferences)' == 'true'"
-      Include="@(ProjectReferenceProvider)"
-      Exclude="@(_UnusedProjectReferenceProvider)" />
+        Include="@(ProjectReferenceProvider)"
+        Exclude="@(_UnusedProjectReferenceProvider)" />
 
     <!-- Use ref assembly project paths for ref assembly projects -->
-    <ProjectReference Condition="'$(ReferenceImplementationAssemblies)' == 'true'" Include="@(_ProjectReferenceByAssemblyName->'%(ProjectPath)')" >
+    <ProjectReference Include="@(_ProjectReferenceByAssemblyName->'%(ProjectPath)')"
+        Condition="'$(ReferenceImplementationAssemblies)' == 'true'">
       <IsReferenceAssembly>false</IsReferenceAssembly>
     </ProjectReference>
 
-    <ProjectReference Condition="'$(ReferenceReferenceAssemblies)' == 'true'" Include="@(_ProjectReferenceByAssemblyName->'%(RefProjectPath)')" >
+    <ProjectReference Include="@(_ProjectReferenceByAssemblyName->'%(RefProjectPath)')"
+        Condition="'$(ReferenceReferenceAssemblies)' == 'true'">
       <IsReferenceAssembly>true</IsReferenceAssembly>
     </ProjectReference>
 
@@ -109,30 +121,31 @@
   </ItemGroup>
 
   <!--
-    This target resolves remaining Referene items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
-    This target helps ensure projects within the shared framework do no unintentionally add new references,
+    This target helps ensure projects within the shared framework do not unintentionally add new references,
     and that assemblies outside the shared framework reference the framework as a whole instead of using
     individual assemblies.
   -->
   <Target Name="_CheckForReferenceBoundaries" BeforeTargets="CollectPackageReferences;ResolveReferences">
-
     <Error Condition="@(_InvalidReferenceToSharedFxOnlyAssembly->Count()) != 0"
-           Text="Cannot reference &quot;%(_InvalidReferenceToSharedFxOnlyAssembly.Identity)&quot; directly because it is part of the shared framework and this project is not. Use &lt;FrameworkReference Include=&quot;Microsoft.AspNetCore.App&quot; /&gt; instead." />
+        Text="Cannot reference &quot;%(_InvalidReferenceToSharedFxOnlyAssembly.Identity)&quot; directly because it is part of the shared framework and this project is not. Use &lt;FrameworkReference Include=&quot;Microsoft.AspNetCore.App&quot; /&gt; instead." />
 
     <Error Condition="@(_InvalidReferenceToNonSharedFxAssembly->Count()) != 0"
-           Text="Cannot reference &quot;%(_InvalidReferenceToNonSharedFxAssembly.Identity)&quot;. This dependency is not in the shared framework. See docs/SharedFramework.md for instructions on how to modify what is in the shared framework." />
+        Text="Cannot reference &quot;%(_InvalidReferenceToNonSharedFxAssembly.Identity)&quot;. This dependency is not in the shared framework. See docs/SharedFramework.md for instructions on how to modify what is in the shared framework." />
   </Target>
 
   <Target Name="_WarnAboutRedundantRef" AfterTargets="ResolveFrameworkReferences;ProcessFrameworkReferences">
-    <Warning Condition="@(FrameworkReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore.App')->Count()) &gt; 1"
-             Text="Redundant &lt;FrameworkReference&gt;. If you have an explicit item in the project file, you might be able to remove it. Some SDKs, like Microsoft.NET.Sdk.Web, add this implicitly." />
+    <Warning
+        Condition="@(FrameworkReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore.App')->Count()) &gt; 1"
+        Text="Redundant &lt;FrameworkReference&gt;. If you have an explicit item in the project file, you might be able to remove it. Some SDKs, like Microsoft.NET.Sdk.Web, add this implicitly." />
   </Target>
 
   <!--
-    This target resolves remaining Referene items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
+    This target resolves remaining Reference items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
     This executes on NuGet restore and during DesignTimeBuild. It should not run in the outer, cross-targeting build.
    -->
-  <Target Name="ResolveCustomReferences" BeforeTargets="CollectPackageReferences;ResolveAssemblyReferencesDesignTime;ResolveAssemblyReferences" Condition=" '$(TargetFramework)' != '' AND '$(EnableCustomReferenceResolution)' == 'true' ">
+  <Target Name="ResolveCustomReferences"
+      BeforeTargets="CollectPackageReferences;ResolveAssemblyReferencesDesignTime;ResolveAssemblyReferences"
+      Condition=" '$(TargetFramework)' != '' AND '$(EnableCustomReferenceResolution)' == 'true' ">
     <ItemGroup>
       <!-- Ensure only content asset are consumed from .Sources packages -->
       <Reference>
@@ -141,9 +154,15 @@
       </Reference>
 
       <!-- Identify if any references were present in the last release of this package, but have been removed. -->
-      <UnusedBaselinePackageReference Include="@(BaselinePackageReference)" Exclude="@(Reference);@(_ProjectReferenceByAssemblyName);@(PackageReference)" />
+      <UnusedBaselinePackageReference Include="@(BaselinePackageReference)"
+          Exclude="@(Reference);@(_ProjectReferenceByAssemblyName);@(PackageReference)" />
+
       <!-- Only allow suppressing baseline changes in non-servicing builds. -->
-      <UnusedBaselinePackageReference Remove="@(SuppressBaselineReference)" Condition="'$(IsServicingBuild)' != 'true'"/>
+      <!--
+        Temporarily ignore the above. Restore Condition="'$(IsServicingBuild)' != 'true'" when
+        https://github.com/aspnet/AspNetCore/issues/14630 is resolved.
+      -->
+      <UnusedBaselinePackageReference Remove="@(SuppressBaselineReference)" />
 
       <!--
         MSBuild does not provide a way to join on matching identities in a Condition,
@@ -153,19 +172,21 @@
         <Id>%(LatestPackageReference.Identity)</Id>
         <Version>%(LatestPackageReference.Version)</Version>
       </_LatestPackageReferenceWithVersion>
-      <_LatestPackageReferenceWithVersion Remove="@(_LatestPackageReferenceWithVersion)" Condition="'%(Id)' != '%(Identity)' " />
+      <_LatestPackageReferenceWithVersion Remove="@(_LatestPackageReferenceWithVersion)"
+          Condition="'%(Id)' != '%(Identity)' " />
 
       <!-- Remove reference items that have been resolved to a LatestPackageReference item. -->
       <Reference Remove="@(_LatestPackageReferenceWithVersion)" />
       <PackageReference Include="@(_LatestPackageReferenceWithVersion)" IsImplicitlyDefined="true" />
 
-      <!-- Resolve references from BaselinePackageReference for servicing builds. -->
-      <_BaselinePackageReferenceWithVersion Include="@(Reference)" Condition=" '$(IsServicingBuild)' == 'true' OR '$(UseLatestPackageReferences)' != 'true' ">
+      <!-- Resolve references from BaselinePackageReference for servicing builds in corner cases. May be unused. -->
+      <_BaselinePackageReferenceWithVersion Include="@(Reference)"
+          Condition=" '$(IsServicingBuild)' == 'true' OR '$(UseLatestPackageReferences)' != 'true' ">
         <Id>%(BaselinePackageReference.Identity)</Id>
         <Version>%(BaselinePackageReference.Version)</Version>
       </_BaselinePackageReferenceWithVersion>
-
-      <_BaselinePackageReferenceWithVersion Remove="@(_BaselinePackageReferenceWithVersion)" Condition="'%(Id)' != '%(Identity)' " />
+      <_BaselinePackageReferenceWithVersion Remove="@(_BaselinePackageReferenceWithVersion)"
+          Condition="'%(Id)' != '%(Identity)' " />
 
       <!-- Remove reference items that have been resolved to a BaselinePackageReference item. -->
       <PackageReference Include="@(_BaselinePackageReferenceWithVersion)" IsImplicitlyDefined="true" />
@@ -176,10 +197,10 @@
         <Id>%(LatestPackageReference.Identity)</Id>
         <Version>%(LatestPackageReference.Version)</Version>
       </_PrivatePackageReferenceWithVersion>
+      <_PrivatePackageReferenceWithVersion Remove="@(_PrivatePackageReferenceWithVersion)"
+          Condition="'%(Id)' != '%(Identity)' " />
 
-      <_PrivatePackageReferenceWithVersion Remove="@(_PrivatePackageReferenceWithVersion)" Condition="'%(Id)' != '%(Identity)' " />
-
-      <!-- Remove reference items that have been resolved to a LatestPackageReference item. -->
+      <!-- Remove reference items that have been resolved to an item with PrivateAssets="All". -->
       <PackageReference Include="@(_PrivatePackageReferenceWithVersion)" IsImplicitlyDefined="true" />
       <Reference Remove="@(_PrivatePackageReferenceWithVersion)" />
 
@@ -190,24 +211,91 @@
       <_ImplicitPackageReference Remove="@(_ImplicitPackageReference)" />
     </ItemGroup>
 
-    <Error Condition="'$(DisablePackageReferenceRestrictions)' != 'true' AND @(_ExplicitPackageReference->Count()) != 0"
-           Text="PackageReference items are not allowed. Use &lt;Reference&gt; instead to replace the reference to @(_ExplicitPackageReference, ', '). See docs/ReferenceResolution.md for more details." />
+    <Error
+        Condition="'$(DisablePackageReferenceRestrictions)' != 'true' AND @(_ExplicitPackageReference->Count()) != 0"
+        Text="PackageReference items are not allowed. Use &lt;Reference&gt; instead to replace the reference to @(_ExplicitPackageReference, ', '). See docs/ReferenceResolution.md for more details." />
 
     <ItemGroup>
       <_ExplicitPackageReference Remove="@(_ExplicitPackageReference)" />
     </ItemGroup>
 
-    <Warning Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' != 'true' AND '%(UnusedBaselinePackageReference.Identity)' != ''"
-             Code="BUILD001"
-             Text="Reference to '%(UnusedBaselinePackageReference.Identity)' was removed since the last stable release of this package. This could be a breaking change. See docs/ReferenceResolution.md for instructions on how to update changes to references or suppress this warning if the error was intentional." />
+    <Warning
+        Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' != 'true' AND '%(UnusedBaselinePackageReference.Identity)' != ''"
+        Code="BUILD001"
+        Text="Reference to '%(UnusedBaselinePackageReference.Identity)' was removed since the last stable release of this package. This could be a breaking change. See docs/ReferenceResolution.md for instructions on how to update changes to references or suppress this warning if the error was intentional." />
+
+    <Error
+        Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' == 'true' AND @(UnusedBaselinePackageReference->Count()) != 0"
+        Code="BUILD002"
+        Text="Package references changed since the last release. This could be a breaking change and is not allowed in a servicing update. References removed:%0A - @(UnusedBaselinePackageReference, '%0A -')" />
+
+    <Error
+        Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework' AND '%(Reference.Identity)' != '' AND ! Exists('%(Reference.Identity)') AND '$(DisablePackageReferenceRestrictions)' != 'true'"
+        Code="MSB3245"
+        Text="Could not resolve this reference. Could not locate the package or project for &quot;%(Reference.Identity)&quot;. Did you update baselines and dependencies lists? See docs/ReferenceResolution.md for more details." />
+  </Target>
 
-    <Error Condition="'$(IsReferenceAssemblyProject)' != 'true' AND '$(IsServicingBuild)' == 'true' AND @(UnusedBaselinePackageReference->Count()) != 0"
-           Code="BUILD002"
-           Text="Package references changed since the last release. This could be a breaking change and is not allowed in a servicing update. References removed:%0A - @(UnusedBaselinePackageReference, '%0A -')" />
+  <!--
+    Update metadata of implementation projects to include information about associated ref assembly (if any).
+  -->
+  <PropertyGroup>
+    <_CompileTfmUsingReferenceAssemblies>false</_CompileTfmUsingReferenceAssemblies>
+    <_CompileTfmUsingReferenceAssemblies
+        Condition=" '$(CompileUsingReferenceAssemblies)' != false AND '$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' ">true</_CompileTfmUsingReferenceAssemblies>
+  </PropertyGroup>
+  <PropertyGroup Condition=" $(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies) ">
+    <_ReferenceProjectFile>$(MSBuildProjectDirectory)/../ref/$(MSBuildProjectFile)</_ReferenceProjectFile>
 
-    <Error Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework' AND '%(Reference.Identity)' != '' AND ! Exists('%(Reference.Identity)') AND '$(DisablePackageReferenceRestrictions)' != 'true'"
-           Code="MSB3245"
-           Text="Could not resolve this reference. Could not locate the package or project for &quot;%(Reference.Identity)&quot;. Did you update baselines and dependencies lists? See docs/ReferenceResolution.md for more details." />
+    <!--
+      Set properties controlling the item group GetTargetPathWithTargetPlatformMoniker, GetTargetPath and Build return.
+      Ensures dependent projects know about the ref/ assembly. Done late enough that Compile does not attempt to create
+      this assembly. Reset properties to avoid error when copying non-existent @(IntermediateRefAssembly) to
+      $(TargetRefPath).
+    -->
+    <GetTargetPathWithTargetPlatformMonikerDependsOn>$(GetTargetPathWithTargetPlatformMonikerDependsOn);AddReferenceProjectMetadata</GetTargetPathWithTargetPlatformMonikerDependsOn>
+    <PrepareForRunDependsOn>RemoveReferenceProjectMetadata;$(PrepareForRunDependsOn)</PrepareForRunDependsOn>
+  </PropertyGroup>
+  <ItemGroup Condition=" $(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies) ">
+    <!-- Ensure ref/ project is built prior to the implementation project. Capture its target path. -->
+    <ProjectReference Include="$(_ReferenceProjectFile)">
+      <OutputItemType>ReferenceProjectMetadata</OutputItemType>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Target Name="AddReferenceProjectMetadata" DependsOnTargets="ResolveProjectReferences">
+    <PropertyGroup>
+      <ProduceReferenceAssembly>true</ProduceReferenceAssembly>
+      <TargetRefPath>@(ReferenceProjectMetadata)</TargetRefPath>
+    </PropertyGroup>
+  </Target>
+  <Target Name="RemoveReferenceProjectMetadata">
+    <PropertyGroup>
+      <ProduceReferenceAssembly />
+      <TargetRefPath />
+    </PropertyGroup>
+  </Target>
+
+  <!--
+    If we have a ref/ assembly from Extensions for a package, use that when compiling. The build-only reference to
+    Microsoft.Internal.Extensions.Refs ensures package is installed and $(MicrosoftInternalExtensionsRefsPath) is set.
+  -->
+  <ItemGroup
+      Condition=" $(_CompileTfmUsingReferenceAssemblies) OR ('$(IsTargetingPackBuilding)' != 'false' AND '$(MSBuildProjectName)' == 'Microsoft.AspNetCore.App.Ref') ">
+    <PackageReference Include="Microsoft.Internal.Extensions.Refs"
+        Version="$(MicrosoftInternalExtensionsRefsPackageVersion)"
+        IsImplicitlyDefined="true"
+        IncludeAssets="Build"
+        PrivateAssets="All" />
+  </ItemGroup>
+  <Target Name="AddReferencePackageMetadata"
+      BeforeTargets="FindReferenceAssembliesForReferences"
+      Condition=" $(_CompileTfmUsingReferenceAssemblies) ">
+    <ItemGroup>
+      <ReferencePath>
+        <ReferenceAssembly
+            Condition=" '%(ReferencePath.ReferenceAssembly)' == '' AND Exists('$(MicrosoftInternalExtensionsRefsPath)%(FileName).dll') ">$(MicrosoftInternalExtensionsRefsPath)%(FileName).dll</ReferenceAssembly>
+      </ReferencePath>
+    </ItemGroup>
   </Target>
 
   <!-- These targets are used to generate the map of assembly name to project files. See also the /t:GenerateProjectList target in build/repo.targets. -->
@@ -231,24 +319,36 @@
       <ReferenceAssemblyProjectFileRelativePath>$([MSBuild]::MakeRelative($(RepoRoot), '$(ReferenceAssemblyDirectory)$(MSBuildProjectFile)'))</ReferenceAssemblyProjectFileRelativePath>
     </PropertyGroup>
 
-    <Error Condition="'$(SkipRefDirectoryCheck)' != 'true' AND '$(IsImplementationProject)' == 'true' AND '$(HasReferenceAssembly)' != 'true' AND Exists($(ReferenceAssemblyDirectory))" Text="Project shouldn't have reference assembly but folder exists $(ReferenceAssemblyDirectory)" />
-    <Error Condition=" '$(IsAspNetCoreApp)' == 'true' AND '$(IsImplementationProject)' == 'true' AND '$(HasReferenceAssembly)' != 'true'" Text="All assemblies which have set IsAspNetCoreApp=true should produce a reference assembly." />
+    <Error
+        Condition="'$(SkipRefDirectoryCheck)' != 'true' AND '$(IsImplementationProject)' == 'true' AND !$(HasReferenceAssembly) AND Exists($(ReferenceAssemblyDirectory))"
+        Text="Project shouldn't have reference assembly but folder exists $(ReferenceAssemblyDirectory)" />
+    <Error
+        Condition=" '$(IsAspNetCoreApp)' == 'true' AND '$(IsImplementationProject)' == 'true' AND !$(HasReferenceAssembly) "
+        Text="All assemblies which have set IsAspNetCoreApp=true should produce a reference assembly." />
+    <Warning Condition=" '$(IsAspNetCoreApp)' == 'true' AND '$(IsImplementationProject)' != 'true' "
+        Text="Only implementation projects should set IsAspNetCoreApp=true." />
+    <Warning Condition=" '$(IsAspNetCoreApp)' != 'true' AND $(HasReferenceAssembly) "
+        Text="Only projects in the shared framework i.e. IsAspNetCoreApp==true should produce a reference assembly." />
 
     <ItemGroup Condition=" '$(IsProjectReferenceProvider)' == 'true' ">
       <ProvidesReference Include="$(AssemblyName)">
         <IsAspNetCoreApp>$([MSBuild]::ValueOrDefault($(IsAspNetCoreApp),'false'))</IsAspNetCoreApp>
         <IsShippingPackage>$([MSBuild]::ValueOrDefault($(IsShippingPackage),'false'))</IsShippingPackage>
         <ProjectFileRelativePath>$([MSBuild]::MakeRelative($(RepoRoot), $(MSBuildProjectFullPath)))</ProjectFileRelativePath>
-        <ReferenceAssemblyProjectFileRelativePath Condition="'$(HasReferenceAssembly)' == 'true'">$(ReferenceAssemblyProjectFileRelativePath)</ReferenceAssemblyProjectFileRelativePath>
+        <ReferenceAssemblyProjectFileRelativePath
+            Condition=" $(HasReferenceAssembly) ">$(ReferenceAssemblyProjectFileRelativePath)</ReferenceAssemblyProjectFileRelativePath>
       </ProvidesReference>
     </ItemGroup>
   </Target>
 
   <!-- This is used by the eng/scripts/AddAllProjectRefsToSolution.ps1 script to traverse the ProjectRef graph -->
   <PropertyGroup>
-    <_CustomCollectProjectReferenceDependsOn Condition="'$(TargetFramework)' != ''">ResolveProjectReferences</_CustomCollectProjectReferenceDependsOn>
+    <_CustomCollectProjectReferenceDependsOn
+        Condition="'$(TargetFramework)' != ''">ResolveProjectReferences</_CustomCollectProjectReferenceDependsOn>
   </PropertyGroup>
-  <Target Name="_CustomCollectProjectReference" DependsOnTargets="$(_CustomCollectProjectReferenceDependsOn)" Returns="$(MSBuildProjectFullPath);@(_MSBuildProjectReferenceExistent)">
+  <Target Name="_CustomCollectProjectReference"
+      DependsOnTargets="$(_CustomCollectProjectReferenceDependsOn)"
+      Returns="$(MSBuildProjectFullPath);@(_MSBuildProjectReferenceExistent)">
     <ItemGroup>
       <_TargetFrameworks Include="$(TargetFrameworks)" />
     </ItemGroup>

+ 1 - 1
src/Analyzers/Analyzers/test/AnalyzerTestBase.cs

@@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Analyzers
             }
 
             var read = Read(source);
-            return DiagnosticProject.Create(GetType().Assembly, new[] { read.Source, });
+            return AnalyzersDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { read.Source, });
         }
 
         public Task<Compilation> CreateCompilationAsync(string source)

+ 25 - 1
src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs

@@ -2,6 +2,9 @@
 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
 
 using System;
+using System.IO;
+using System.Linq;
+using System.Reflection;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Analyzer.Testing;
 using Microsoft.CodeAnalysis;
@@ -20,7 +23,28 @@ namespace Microsoft.AspNetCore.Analyzers
 
         public Task<Diagnostic[]> GetDiagnosticsAsync(string source)
         {
-            return GetDiagnosticsAsync(sources: new[] { source }, Analyzer, Array.Empty<string>());
+            var project = CreateProjectWithReferencesInBinDir(GetType().Assembly, source);
+
+            return GetDiagnosticsAsync(project);
+        }
+
+        public static Project CreateProjectWithReferencesInBinDir(Assembly testAssembly, params string[] source)
+        {
+            // The deps file in the project is incorrect and does not contain "compile" nodes for some references.
+            // However these binaries are always present in the bin output. As a "temporary" workaround, we'll add
+            // every dll file that's present in the test's build output as a metadatareference.
+
+            var project = DiagnosticProject.Create(testAssembly, source);
+
+            foreach (var assembly in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+            {
+                if (!project.MetadataReferences.Any(c => string.Equals(Path.GetFileNameWithoutExtension(c.Display), Path.GetFileNameWithoutExtension(assembly), StringComparison.OrdinalIgnoreCase)))
+                {
+                    project = project.AddMetadataReference(MetadataReference.CreateFromFile(assembly));
+                }
+            }
+
+            return project;
         }
 
         public Task<Diagnostic[]> GetDiagnosticsAsync(Project project)

+ 147 - 0
src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.Manual.cs

@@ -0,0 +1,147 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Antiforgery
+{
+    internal partial class AntiforgeryFeature : Microsoft.AspNetCore.Antiforgery.IAntiforgeryFeature
+    {
+        public AntiforgeryFeature() { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken CookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveDeserializedCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveDeserializedRequestToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveGeneratedNewCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool HaveStoredNewCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string NewCookieTokenString { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewRequestToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string NewRequestTokenString { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken RequestToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+
+    internal partial class AntiforgerySerializationContext
+    {
+        public AntiforgerySerializationContext() { }
+        public System.IO.BinaryReader Reader { get { throw null; } }
+        public System.Security.Cryptography.SHA256 Sha256 { get { throw null; } }
+        public System.IO.MemoryStream Stream { get { throw null; } }
+        public System.IO.BinaryWriter Writer { get { throw null; } }
+        public char[] GetChars(int count) { throw null; }
+        public void Reset() { }
+    }
+
+    internal partial class AntiforgerySerializationContextPooledObjectPolicy : Microsoft.Extensions.ObjectPool.IPooledObjectPolicy<Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext>
+    {
+        public AntiforgerySerializationContextPooledObjectPolicy() { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext Create() { throw null; }
+        public bool Return(Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext obj) { throw null; }
+    }
+
+    internal sealed partial class AntiforgeryToken
+    {
+        internal const int ClaimUidBitLength = 256;
+        internal const int SecurityTokenBitLength = 128;
+        public AntiforgeryToken() { }
+        public string AdditionalData { get { throw null; } set { } }
+        public Microsoft.AspNetCore.Antiforgery.BinaryBlob ClaimUid { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool IsCookieToken { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Antiforgery.BinaryBlob SecurityToken { get { throw null; } set { } }
+        public string Username { get { throw null; } set { } }
+    }
+
+    [System.Diagnostics.DebuggerDisplayAttribute("{DebuggerString}")]
+    internal sealed partial class BinaryBlob : System.IEquatable<Microsoft.AspNetCore.Antiforgery.BinaryBlob>
+    {
+        public BinaryBlob(int bitLength) { }
+        public BinaryBlob(int bitLength, byte[] data) { }
+        public int BitLength { get { throw null; } }
+        public bool Equals(Microsoft.AspNetCore.Antiforgery.BinaryBlob other) { throw null; }
+        public override bool Equals(object obj) { throw null; }
+        public byte[] GetData() { throw null; }
+        public override int GetHashCode() { throw null; }
+    }
+
+    internal partial class DefaultAntiforgery : Microsoft.AspNetCore.Antiforgery.IAntiforgery
+    {
+        public DefaultAntiforgery(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions> antiforgeryOptionsAccessor, Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenGenerator tokenGenerator, Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenSerializer tokenSerializer, Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenStore tokenStore, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet GetAndStoreTokens(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet GetTokens(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<bool> IsRequestValidAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public void SetCookieTokenAndHeader(Microsoft.AspNetCore.Http.HttpContext httpContext) { }
+        protected virtual void SetDoNotCacheHeaders(Microsoft.AspNetCore.Http.HttpContext httpContext) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task ValidateRequestAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+    }
+
+    internal partial class DefaultAntiforgeryTokenGenerator : Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenGenerator
+    {
+        public DefaultAntiforgeryTokenGenerator(Microsoft.AspNetCore.Antiforgery.IClaimUidExtractor claimUidExtractor, Microsoft.AspNetCore.Antiforgery.IAntiforgeryAdditionalDataProvider additionalDataProvider) { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateCookieToken() { throw null; }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateRequestToken(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken) { throw null; }
+        public bool IsCookieTokenValid(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken) { throw null; }
+        public bool TryValidateTokenSet(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken requestToken, out string message) { throw null; }
+    }
+
+    internal partial class DefaultAntiforgeryTokenSerializer : Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenSerializer
+    {
+        public DefaultAntiforgeryTokenSerializer(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider, Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext> pool) { }
+        public Microsoft.AspNetCore.Antiforgery.AntiforgeryToken Deserialize(string serializedToken) { throw null; }
+        public string Serialize(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken token) { throw null; }
+    }
+
+    internal partial class DefaultAntiforgeryTokenStore : Microsoft.AspNetCore.Antiforgery.IAntiforgeryTokenStore
+    {
+        public DefaultAntiforgeryTokenStore(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions> optionsAccessor) { }
+        public string GetCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet> GetRequestTokensAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) { throw null; }
+        public void SaveCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext, string token) { }
+    }
+
+    internal partial class DefaultClaimUidExtractor : Microsoft.AspNetCore.Antiforgery.IClaimUidExtractor
+    {
+        public DefaultClaimUidExtractor(Microsoft.Extensions.ObjectPool.ObjectPool<Microsoft.AspNetCore.Antiforgery.AntiforgerySerializationContext> pool) { }
+        public string ExtractClaimUid(System.Security.Claims.ClaimsPrincipal claimsPrincipal) { throw null; }
+        public static System.Collections.Generic.IList<string> GetUniqueIdentifierParameters(System.Collections.Generic.IEnumerable<System.Security.Claims.ClaimsIdentity> claimsIdentities) { throw null; }
+    }
+
+    internal partial interface IAntiforgeryFeature
+    {
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken CookieToken { get; set; }
+        bool HaveDeserializedCookieToken { get; set; }
+        bool HaveDeserializedRequestToken { get; set; }
+        bool HaveGeneratedNewCookieToken { get; set; }
+        bool HaveStoredNewCookieToken { get; set; }
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewCookieToken { get; set; }
+        string NewCookieTokenString { get; set; }
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken NewRequestToken { get; set; }
+        string NewRequestTokenString { get; set; }
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken RequestToken { get; set; }
+    }
+
+    internal partial interface IAntiforgeryTokenGenerator
+    {
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateCookieToken();
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken GenerateRequestToken(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken);
+        bool IsCookieTokenValid(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken);
+        bool TryValidateTokenSet(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken cookieToken, Microsoft.AspNetCore.Antiforgery.AntiforgeryToken requestToken, out string message);
+    }
+
+    internal partial interface IAntiforgeryTokenSerializer
+    {
+        Microsoft.AspNetCore.Antiforgery.AntiforgeryToken Deserialize(string serializedToken);
+        string Serialize(Microsoft.AspNetCore.Antiforgery.AntiforgeryToken token);
+    }
+
+    internal partial interface IAntiforgeryTokenStore
+    {
+        string GetCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext);
+        System.Threading.Tasks.Task<Microsoft.AspNetCore.Antiforgery.AntiforgeryTokenSet> GetRequestTokensAsync(Microsoft.AspNetCore.Http.HttpContext httpContext);
+        void SaveCookieToken(Microsoft.AspNetCore.Http.HttpContext httpContext, string token);
+    }
+
+    internal partial interface IClaimUidExtractor
+    {
+        string ExtractClaimUid(System.Security.Claims.ClaimsPrincipal claimsPrincipal);
+    }
+}

+ 7 - 5
src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj

@@ -5,10 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Antiforgery.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.WebUtilities"  />
-    <Reference Include="Microsoft.Extensions.ObjectPool"  />
+    <Compile Include="Microsoft.AspNetCore.Antiforgery.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.ObjectPool" />
   </ItemGroup>
 </Project>

+ 0 - 13
src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.csproj

@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.JwtBearer"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Cookies"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect"  />
-  </ItemGroup>
-</Project>

+ 0 - 64
src/Azure/AzureAD/Authentication.AzureAD.UI/ref/Microsoft.AspNetCore.Authentication.AzureAD.UI.netcoreapp.cs

@@ -1,64 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication
-{
-    public static partial class AzureADAuthenticationBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureAD(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureAD(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string scheme, string openIdConnectScheme, string cookieScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string scheme, string jwtBearerScheme, System.Action<Microsoft.AspNetCore.Authentication.AzureAD.UI.AzureADOptions> configureOptions) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.AzureAD.UI
-{
-    public static partial class AzureADDefaults
-    {
-        public const string AuthenticationScheme = "AzureAD";
-        public const string BearerAuthenticationScheme = "AzureADBearer";
-        public const string CookieScheme = "AzureADCookie";
-        public static readonly string DisplayName;
-        public const string JwtBearerAuthenticationScheme = "AzureADJwtBearer";
-        public const string OpenIdScheme = "AzureADOpenID";
-    }
-    public partial class AzureADOptions
-    {
-        public AzureADOptions() { }
-        public string[] AllSchemes { get { throw null; } }
-        public string CallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string ClientId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string ClientSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string CookieSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string Domain { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string Instance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string JwtBearerSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public string OpenIdConnectSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string SignedOutCallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string TenantId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.AzureAD.UI.Internal
-{
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class AccessDeniedModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public AccessDeniedModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    [Microsoft.AspNetCore.Mvc.ResponseCacheAttribute(Duration=0, Location=Microsoft.AspNetCore.Mvc.ResponseCacheLocation.None, NoStore=true)]
-    public partial class ErrorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ErrorModel() { }
-        public string RequestId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public bool ShowRequestId { get { throw null; } }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class SignedOutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public SignedOutModel() { }
-        public Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-    }
-}

+ 0 - 13
src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.csproj

@@ -1,13 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Mvc"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.JwtBearer"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Cookies"  />
-    <Reference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect"  />
-  </ItemGroup>
-</Project>

+ 0 - 68
src/Azure/AzureAD/Authentication.AzureADB2C.UI/ref/Microsoft.AspNetCore.Authentication.AzureADB2C.UI.netcoreapp.cs

@@ -1,68 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Authentication
-{
-    public static partial class AzureADB2CAuthenticationBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADB2C(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.AzureADB2C.UI.AzureADB2COptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADB2C(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string scheme, string openIdConnectScheme, string cookieScheme, string displayName, System.Action<Microsoft.AspNetCore.Authentication.AzureADB2C.UI.AzureADB2COptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADB2CBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, System.Action<Microsoft.AspNetCore.Authentication.AzureADB2C.UI.AzureADB2COptions> configureOptions) { throw null; }
-        public static Microsoft.AspNetCore.Authentication.AuthenticationBuilder AddAzureADB2CBearer(this Microsoft.AspNetCore.Authentication.AuthenticationBuilder builder, string scheme, string jwtBearerScheme, System.Action<Microsoft.AspNetCore.Authentication.AzureADB2C.UI.AzureADB2COptions> configureOptions) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.AzureADB2C.UI
-{
-    public static partial class AzureADB2CDefaults
-    {
-        public const string AuthenticationScheme = "AzureADB2C";
-        public const string BearerAuthenticationScheme = "AzureADB2CBearer";
-        public const string CookieScheme = "AzureADB2CCookie";
-        public static readonly string DisplayName;
-        public const string JwtBearerAuthenticationScheme = "AzureADB2CJwtBearer";
-        public const string OpenIdScheme = "AzureADB2COpenID";
-        public static readonly string PolicyKey;
-    }
-    public partial class AzureADB2COptions
-    {
-        public AzureADB2COptions() { }
-        public string[] AllSchemes { get { throw null; } }
-        public string CallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string ClientId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string ClientSecret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string CookieSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string DefaultPolicy { get { throw null; } }
-        public string Domain { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string EditProfilePolicyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string Instance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string JwtBearerSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public string OpenIdConnectSchemeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string ResetPasswordPolicyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string SignedOutCallbackPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string SignUpSignInPolicyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Authentication.AzureADB2C.UI.Internal
-{
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class AccessDeniedModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public AccessDeniedModel() { }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    [Microsoft.AspNetCore.Mvc.ResponseCacheAttribute(Duration=0, Location=Microsoft.AspNetCore.Mvc.ResponseCacheLocation.None, NoStore=true)]
-    public partial class ErrorModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public ErrorModel() { }
-        public string RequestId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public bool ShowRequestId { get { throw null; } }
-        public void OnGet() { }
-    }
-    [Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute]
-    public partial class SignedOutModel : Microsoft.AspNetCore.Mvc.RazorPages.PageModel
-    {
-        public SignedOutModel() { }
-        public Microsoft.AspNetCore.Mvc.IActionResult OnGet() { throw null; }
-    }
-}

+ 0 - 11
src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj

@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.AzureAppServicesIntegration"  />
-    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables"  />
-  </ItemGroup>
-</Project>

+ 0 - 11
src/Azure/AzureAppServices.HostingStartup/ref/Microsoft.AspNetCore.AzureAppServices.HostingStartup.netcoreapp.cs

@@ -1,11 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.AzureAppServices.HostingStartup
-{
-    public partial class AzureAppServicesHostingStartup : Microsoft.AspNetCore.Hosting.IHostingStartup
-    {
-        public AzureAppServicesHostingStartup() { }
-        public void Configure(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { }
-    }
-}

+ 0 - 11
src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.csproj

@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.Extensions.Logging.AzureAppServices"  />
-  </ItemGroup>
-</Project>

+ 0 - 10
src/Azure/AzureAppServicesIntegration/ref/Microsoft.AspNetCore.AzureAppServicesIntegration.netcoreapp.cs

@@ -1,10 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Hosting
-{
-    public static partial class AppServicesWebHostBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseAzureAppServices(this Microsoft.AspNetCore.Hosting.IWebHostBuilder hostBuilder) { throw null; }
-    }
-}

+ 4 - 4
src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj

@@ -5,12 +5,12 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.Authorization.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Authorization.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
+    <Reference Include="Microsoft.AspNetCore.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 </Project>

+ 0 - 12
src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.csproj

@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.Blazor.netstandard2.0.cs" />
-    <Reference Include="Mono.WebAssembly.Interop"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Web"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-  </ItemGroup>
-</Project>

+ 0 - 81
src/Components/Blazor/Blazor/ref/Microsoft.AspNetCore.Blazor.netstandard2.0.cs

@@ -1,81 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Blazor
-{
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-    public static partial class JSInteropMethods
-    {
-        [Microsoft.JSInterop.JSInvokableAttribute("NotifyLocationChanged")]
-        public static void NotifyLocationChanged(string uri, bool isInterceptedLink) { }
-    }
-}
-namespace Microsoft.AspNetCore.Blazor.Hosting
-{
-    public static partial class BlazorWebAssemblyHost
-    {
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder CreateDefaultBuilder() { throw null; }
-    }
-    public partial interface IWebAssemblyHost : System.IDisposable
-    {
-        System.IServiceProvider Services { get; }
-        System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
-        System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
-    }
-    public partial interface IWebAssemblyHostBuilder
-    {
-        System.Collections.Generic.IDictionary<object, object> Properties { get; }
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHost Build();
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder ConfigureServices(System.Action<Microsoft.AspNetCore.Blazor.Hosting.WebAssemblyHostBuilderContext, Microsoft.Extensions.DependencyInjection.IServiceCollection> configureDelegate);
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseServiceProviderFactory<TContainerBuilder>(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder> factory);
-        Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseServiceProviderFactory<TContainerBuilder>(System.Func<Microsoft.AspNetCore.Blazor.Hosting.WebAssemblyHostBuilderContext, Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder>> factory);
-    }
-    public sealed partial class WebAssemblyHostBuilderContext
-    {
-        public WebAssemblyHostBuilderContext(System.Collections.Generic.IDictionary<object, object> properties) { }
-        public System.Collections.Generic.IDictionary<object, object> Properties { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-    }
-    public static partial class WebAssemblyHostBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder ConfigureServices(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder hostBuilder, System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> configureDelegate) { throw null; }
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseBlazorStartup(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder builder, System.Type startupType) { throw null; }
-        public static Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder UseBlazorStartup<TStartup>(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHostBuilder builder) { throw null; }
-    }
-    public static partial class WebAssemblyHostExtensions
-    {
-        public static void Run(this Microsoft.AspNetCore.Blazor.Hosting.IWebAssemblyHost host) { }
-    }
-}
-namespace Microsoft.AspNetCore.Blazor.Http
-{
-    public enum FetchCredentialsOption
-    {
-        Omit = 0,
-        SameOrigin = 1,
-        Include = 2,
-    }
-    public static partial class WebAssemblyHttpMessageHandlerOptions
-    {
-        public static Microsoft.AspNetCore.Blazor.Http.FetchCredentialsOption DefaultCredentials { get { throw null; } set { } }
-    }
-}
-namespace Microsoft.AspNetCore.Blazor.Rendering
-{
-    public static partial class WebAssemblyEventDispatcher
-    {
-        [Microsoft.JSInterop.JSInvokableAttribute("DispatchEvent")]
-        public static System.Threading.Tasks.Task DispatchEvent(Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor eventDescriptor, string eventArgsJson) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.Components.Builder
-{
-    public static partial class ComponentsApplicationBuilderExtensions
-    {
-        public static void AddComponent<TComponent>(this Microsoft.AspNetCore.Components.Builder.IComponentsApplicationBuilder app, string domElementSelector) where TComponent : Microsoft.AspNetCore.Components.IComponent { }
-    }
-    public partial interface IComponentsApplicationBuilder
-    {
-        System.IServiceProvider Services { get; }
-        void AddComponent(System.Type componentType, string domElementSelector);
-    }
-}

+ 4 - 0
src/Components/Blazor/Blazor/test/Microsoft.AspNetCore.Blazor.Tests.csproj

@@ -2,10 +2,14 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Blazor" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>

+ 4 - 0
src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj

@@ -5,6 +5,8 @@
 
     <!-- Exclude the TestFiles directory from default wildcards -->
     <DefaultItemExcludes>$(DefaultItemExcludes);TestFiles\**\*</DefaultItemExcludes>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -26,6 +28,8 @@
     <Reference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" />
     <Reference Include="Microsoft.AspNetCore.Razor.Language" />
     <Reference Include="Microsoft.CodeAnalysis.Razor" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 
   <ItemGroup>

+ 0 - 10
src/Components/Blazor/Http/ref/Microsoft.AspNetCore.Blazor.HttpClient.csproj

@@ -1,10 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.Blazor.HttpClient.netstandard2.0.cs" />
-    <Reference Include="System.Text.Json"  />
-  </ItemGroup>
-</Project>

+ 0 - 18
src/Components/Blazor/Http/ref/Microsoft.AspNetCore.Blazor.HttpClient.netstandard2.0.cs

@@ -1,18 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Components
-{
-    public static partial class HttpClientJsonExtensions
-    {
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public static System.Threading.Tasks.Task<T> GetJsonAsync<T>(this System.Net.Http.HttpClient httpClient, string requestUri) { throw null; }
-        public static System.Threading.Tasks.Task PostJsonAsync(this System.Net.Http.HttpClient httpClient, string requestUri, object content) { throw null; }
-        public static System.Threading.Tasks.Task<T> PostJsonAsync<T>(this System.Net.Http.HttpClient httpClient, string requestUri, object content) { throw null; }
-        public static System.Threading.Tasks.Task PutJsonAsync(this System.Net.Http.HttpClient httpClient, string requestUri, object content) { throw null; }
-        public static System.Threading.Tasks.Task<T> PutJsonAsync<T>(this System.Net.Http.HttpClient httpClient, string requestUri, object content) { throw null; }
-        public static System.Threading.Tasks.Task SendJsonAsync(this System.Net.Http.HttpClient httpClient, System.Net.Http.HttpMethod method, string requestUri, object content) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public static System.Threading.Tasks.Task<T> SendJsonAsync<T>(this System.Net.Http.HttpClient httpClient, System.Net.Http.HttpMethod method, string requestUri, object content) { throw null; }
-    }
-}

+ 0 - 16
src/Components/Blazor/Server/ref/Microsoft.AspNetCore.Blazor.Server.csproj

@@ -1,16 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Blazor.Server.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.SpaServices.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.StaticFiles"  />
-    <Reference Include="Microsoft.AspNetCore.WebSockets"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Embedded"  />
-    <Reference Include="Newtonsoft.Json"  />
-    <Reference Include="Mono.Cecil"  />
-  </ItemGroup>
-</Project>

+ 0 - 22
src/Components/Blazor/Server/ref/Microsoft.AspNetCore.Blazor.Server.netcoreapp.cs

@@ -1,22 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Builder
-{
-    public static partial class BlazorHostingApplicationBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseClientSideBlazorFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string clientAssemblyFilePath) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseClientSideBlazorFiles<TClientApp>(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { throw null; }
-    }
-    public static partial class BlazorHostingEndpointRouteBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToClientSideBlazor(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string clientAssemblyFilePath, string filePath) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToClientSideBlazor(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string clientAssemblyFilePath, string pattern, string filePath) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToClientSideBlazor<TClientApp>(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string filePath) { throw null; }
-        public static Microsoft.AspNetCore.Builder.IEndpointConventionBuilder MapFallbackToClientSideBlazor<TClientApp>(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string filePath) { throw null; }
-    }
-    public static partial class BlazorMonoDebugProxyAppBuilderExtensions
-    {
-        public static void UseBlazorDebugging(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) { }
-    }
-}

+ 4 - 0
src/Components/Blazor/Validation/test/Microsoft.AspNetCore.Blazor.DataAnnotations.Validation.Tests.csproj

@@ -2,10 +2,14 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Blazor.DataAnnotations.Validation" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 
 </Project>

+ 0 - 9
src/Components/Components/ref/Directory.Build.props

@@ -1,9 +0,0 @@
-<Project>
-
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
-
-  <ItemGroup>
-    <Compile Include="Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs" />
-  </ItemGroup>
-
-</Project>

+ 348 - 0
src/Components/Components/ref/Microsoft.AspNetCore.Components.Manual.cs

@@ -0,0 +1,348 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Runtime.InteropServices;
+using Microsoft.AspNetCore.Components.Rendering;
+
+namespace Microsoft.AspNetCore.Components
+{
+    public readonly partial struct ElementReference
+    {
+        internal static Microsoft.AspNetCore.Components.ElementReference CreateWithUniqueId() { throw null; }
+    }
+    public abstract partial class NavigationManager
+    {
+        internal static string NormalizeBaseUri(string baseUri) { throw null; }
+    }
+    public readonly partial struct RenderHandle
+    {
+        internal RenderHandle(Microsoft.AspNetCore.Components.RenderTree.Renderer renderer, int componentId) { throw null; }
+    }
+    internal partial class ComponentFactory
+    {
+        public static readonly Microsoft.AspNetCore.Components.ComponentFactory Instance;
+        public ComponentFactory() { }
+        public Microsoft.AspNetCore.Components.IComponent InstantiateComponent(System.IServiceProvider serviceProvider, System.Type componentType) { throw null; }
+    }
+    public readonly partial struct ParameterView
+    {
+        internal ParameterView(in Microsoft.AspNetCore.Components.Rendering.ParameterViewLifetime lifetime, Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame[] frames, int ownerIndex) { throw null; }
+        internal Microsoft.AspNetCore.Components.Rendering.ParameterViewLifetime Lifetime { get { throw null; } }
+        internal void CaptureSnapshot(Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> builder) { }
+        internal bool DefinitelyEquals(Microsoft.AspNetCore.Components.ParameterView oldParameters) { throw null; }
+        internal Microsoft.AspNetCore.Components.ParameterView WithCascadingParameters(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.CascadingParameterState> cascadingParameters) { throw null; }
+    }
+    internal static partial class RouteTableFactory
+    {
+        public static readonly System.Collections.Generic.IComparer<Microsoft.AspNetCore.Components.Routing.RouteEntry> RoutePrecedence;
+        internal static Microsoft.AspNetCore.Components.Routing.RouteTable Create(System.Collections.Generic.Dictionary<System.Type, string[]> templatesByHandler) { throw null; }
+        public static Microsoft.AspNetCore.Components.Routing.RouteTable Create(System.Collections.Generic.IEnumerable<System.Reflection.Assembly> assemblies) { throw null; }
+        internal static Microsoft.AspNetCore.Components.Routing.RouteTable Create(System.Collections.Generic.IEnumerable<System.Type> componentTypes) { throw null; }
+        internal static int RouteComparison(Microsoft.AspNetCore.Components.Routing.RouteEntry x, Microsoft.AspNetCore.Components.Routing.RouteEntry y) { throw null; }
+    }
+    internal partial interface IEventCallback
+    {
+        bool HasDelegate { get; }
+        object UnpackForRenderTree();
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public readonly partial struct EventCallback : Microsoft.AspNetCore.Components.IEventCallback
+    {
+        public static readonly Microsoft.AspNetCore.Components.EventCallback Empty;
+        public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory;
+        internal readonly MulticastDelegate Delegate;
+        internal readonly IHandleEvent Receiver;
+        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
+        public bool HasDelegate { get { throw null; } }
+        internal bool RequiresExplicitReceiver { get { throw null; } }
+        public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
+        object Microsoft.AspNetCore.Components.IEventCallback.UnpackForRenderTree() { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public readonly partial struct EventCallback<TValue> : Microsoft.AspNetCore.Components.IEventCallback
+    {
+        public static readonly Microsoft.AspNetCore.Components.EventCallback<TValue> Empty;
+        internal readonly MulticastDelegate Delegate;
+        internal readonly IHandleEvent Receiver;
+        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
+        public bool HasDelegate { get { throw null; } }
+        internal bool RequiresExplicitReceiver { get { throw null; } }
+        internal Microsoft.AspNetCore.Components.EventCallback AsUntyped() { throw null; }
+        public System.Threading.Tasks.Task InvokeAsync(TValue arg) { throw null; }
+        object Microsoft.AspNetCore.Components.IEventCallback.UnpackForRenderTree() { throw null; }
+    }
+    internal partial interface ICascadingValueComponent
+    {
+        object CurrentValue { get; }
+        bool CurrentValueIsFixed { get; }
+        bool CanSupplyValue(System.Type valueType, string valueName);
+        void Subscribe(Microsoft.AspNetCore.Components.Rendering.ComponentState subscriber);
+        void Unsubscribe(Microsoft.AspNetCore.Components.Rendering.ComponentState subscriber);
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct CascadingParameterState
+    {
+        private readonly object _dummy;
+        public CascadingParameterState(string localValueName, Microsoft.AspNetCore.Components.ICascadingValueComponent valueSupplier) { throw null; }
+        public string LocalValueName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.ICascadingValueComponent ValueSupplier { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public static System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.CascadingParameterState> FindCascadingParameters(Microsoft.AspNetCore.Components.Rendering.ComponentState componentState) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.RenderTree
+{
+    public readonly partial struct RenderTreeEdit
+    {
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit PermutationListEnd() { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit PermutationListEntry(int fromSiblingIndex, int toSiblingIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit PrependFrame(int siblingIndex, int referenceFrameIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit RemoveAttribute(int siblingIndex, string name) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit RemoveFrame(int siblingIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit SetAttribute(int siblingIndex, int referenceFrameIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit StepIn(int siblingIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit StepOut() { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit UpdateMarkup(int siblingIndex, int referenceFrameIndex) { throw null; }
+        internal static Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit UpdateText(int siblingIndex, int referenceFrameIndex) { throw null; }
+    }
+    public readonly partial struct RenderBatch
+    {
+        internal RenderBatch(Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff> updatedComponents, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> referenceFrames, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<int> disposedComponentIDs, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<ulong> disposedEventHandlerIDs) { throw null; }
+    }
+    internal static partial class ArrayBuilderExtensions
+    {
+        public static Microsoft.AspNetCore.Components.RenderTree.ArrayRange<T> ToRange<T>(this Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<T> builder) { throw null; }
+        public static Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment<T> ToSegment<T>(this Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<T> builder, int fromIndexInclusive, int toIndexExclusive) { throw null; }
+    }
+    internal static partial class RenderTreeDiffBuilder
+    {
+        public const int SystemAddedAttributeSequenceNumber = -2147483648;
+        public static Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff ComputeDiff(Microsoft.AspNetCore.Components.RenderTree.Renderer renderer, Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, int componentId, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> oldTree, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> newTree) { throw null; }
+        public static void DisposeFrames(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, Microsoft.AspNetCore.Components.RenderTree.ArrayRange<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> frames) { }
+    }
+    internal partial class ArrayBuilder<T> : System.IDisposable
+    {
+        public ArrayBuilder(int minCapacity = 32, System.Buffers.ArrayPool<T> arrayPool = null) { }
+        public T[] Buffer { get { throw null; } }
+        public int Count { get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public int Append(in T item) { throw null; }
+        internal int Append(T[] source, int startIndex, int length) { throw null; }
+        public void Clear() { }
+        public void Dispose() { }
+        public void InsertExpensive(int index, T value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Overwrite(int index, in T value) { }
+        public void RemoveLast() { }
+    }
+    internal partial class StackObjectPool<T> where T : class
+    {
+        public StackObjectPool(int maxPreservedItems, System.Func<T> instanceFactory) { }
+        public T Get() { throw null; }
+        public void Return(T instance) { }
+    }
+    public readonly partial struct RenderTreeDiff
+    {
+        internal RenderTreeDiff(int componentId, Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment<Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit> entries) { throw null; }
+    }
+
+    // https://github.com/dotnet/arcade/pull/2033
+    [StructLayout(LayoutKind.Explicit, Pack = 4)]
+    public readonly partial struct RenderTreeFrame
+    {
+        [FieldOffset(0)] public readonly int Sequence;
+
+        [FieldOffset(4)] public readonly RenderTreeFrameType FrameType;
+
+        [FieldOffset(8)] public readonly int ElementSubtreeLength;
+
+        [FieldOffset(16)] public readonly string ElementName;
+
+        [FieldOffset(24)] public readonly object ElementKey;
+
+        [FieldOffset(16)] public readonly string TextContent;
+
+        [FieldOffset(8)] public readonly ulong AttributeEventHandlerId;
+
+        [FieldOffset(16)] public readonly string AttributeName;
+
+        [FieldOffset(24)] public readonly object AttributeValue;
+
+        [FieldOffset(32)] public readonly string AttributeEventUpdatesAttributeName;
+
+        [FieldOffset(8)] public readonly int ComponentSubtreeLength;
+
+        [FieldOffset(12)] public readonly int ComponentId;
+
+        [FieldOffset(16)] public readonly Type ComponentType;
+
+        [FieldOffset(32)] public readonly object ComponentKey;
+
+        public IComponent Component => null;
+
+        [FieldOffset(8)] public readonly int RegionSubtreeLength;
+
+        [FieldOffset(16)] public readonly string ElementReferenceCaptureId;
+
+        [FieldOffset(24)] public readonly Action<ElementReference> ElementReferenceCaptureAction;
+
+        [FieldOffset(8)] public readonly int ComponentReferenceCaptureParentFrameIndex;
+
+        [FieldOffset(16)] public readonly Action<object> ComponentReferenceCaptureAction;
+
+        [FieldOffset(16)] public readonly string MarkupContent;
+
+        public override string ToString() => null;
+
+        internal static RenderTreeFrame Element(int sequence, string elementName) { throw null; }
+        internal static RenderTreeFrame Text(int sequence, string textContent) { throw null; }
+        internal static RenderTreeFrame Markup(int sequence, string markupContent) { throw null; }
+        internal static RenderTreeFrame Attribute(int sequence, string name, object value) { throw null; }
+        internal static RenderTreeFrame ChildComponent(int sequence, Type componentType) { throw null; }
+        internal static RenderTreeFrame PlaceholderChildComponentWithSubtreeLength(int subtreeLength) { throw null; }
+        internal static RenderTreeFrame Region(int sequence) { throw null; }
+        internal static RenderTreeFrame ElementReferenceCapture(int sequence, Action<ElementReference> elementReferenceCaptureAction) { throw null; }
+        internal static RenderTreeFrame ComponentReferenceCapture(int sequence, Action<object> componentReferenceCaptureAction, int parentFrameIndex) { throw null; }
+        internal RenderTreeFrame WithElementSubtreeLength(int elementSubtreeLength) { throw null; }
+        internal RenderTreeFrame WithComponentSubtreeLength(int componentSubtreeLength) { throw null; }
+        internal RenderTreeFrame WithAttributeSequence(int sequence) { throw null; }
+        internal RenderTreeFrame WithComponent(ComponentState componentState) { throw null; }
+        internal RenderTreeFrame WithAttributeEventHandlerId(ulong eventHandlerId) { throw null; }
+        internal RenderTreeFrame WithAttributeValue(object attributeValue) { throw null; }
+        internal RenderTreeFrame WithAttributeEventUpdatesAttributeName(string attributeUpdatesAttributeName) { throw null; }
+        internal RenderTreeFrame WithRegionSubtreeLength(int regionSubtreeLength) { throw null; }
+        internal RenderTreeFrame WithElementReferenceCaptureId(string elementReferenceCaptureId) { throw null; }
+        internal RenderTreeFrame WithElementKey(object elementKey) { throw null; }
+        internal RenderTreeFrame WithComponentKey(object componentKey) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Rendering
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct ParameterViewLifetime
+    {
+        public static readonly ParameterViewLifetime Unbound = default;
+        private readonly object _dummy;
+        private readonly int _dummyPrimitive;
+        public ParameterViewLifetime(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder owner) { throw null; }
+        public void AssertNotExpired() { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("{_state,nq}")]
+    internal partial class RendererSynchronizationContext : System.Threading.SynchronizationContext
+    {
+        public RendererSynchronizationContext() { }
+        public event System.UnhandledExceptionEventHandler UnhandledException { add { } remove { } }
+        public override System.Threading.SynchronizationContext CreateCopy() { throw null; }
+        public System.Threading.Tasks.Task InvokeAsync(System.Action action) { throw null; }
+        public System.Threading.Tasks.Task InvokeAsync(System.Func<System.Threading.Tasks.Task> asyncAction) { throw null; }
+        public System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(System.Func<System.Threading.Tasks.Task<TResult>> asyncFunction) { throw null; }
+        public System.Threading.Tasks.Task<TResult> InvokeAsync<TResult>(System.Func<TResult> function) { throw null; }
+        public override void Post(System.Threading.SendOrPostCallback d, object state) { }
+        public override void Send(System.Threading.SendOrPostCallback d, object state) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct RenderQueueEntry
+    {
+        public readonly ComponentState ComponentState;
+        public readonly RenderFragment RenderFragment;
+        public RenderQueueEntry(Microsoft.AspNetCore.Components.Rendering.ComponentState componentState, Microsoft.AspNetCore.Components.RenderFragment renderFragment) { throw null; }
+    }
+    internal partial class RenderBatchBuilder : System.IDisposable
+    {
+        public RenderBatchBuilder() { }
+        public System.Collections.Generic.Dictionary<string, int> AttributeDiffSet { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.Queue<int> ComponentDisposalQueue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.Queue<Microsoft.AspNetCore.Components.Rendering.RenderQueueEntry> ComponentRenderQueue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<int> DisposedComponentIds { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<ulong> DisposedEventHandlerIds { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit> EditsBuffer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.Components.RenderTree.StackObjectPool<System.Collections.Generic.Dictionary<object, Microsoft.AspNetCore.Components.Rendering.KeyedItemInfo>> KeyedItemInfoDictionaryPool { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int ParameterViewValidityStamp { get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame> ReferenceFramesBuffer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.RenderTree.ArrayBuilder<Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff> UpdatedComponentDiffs { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void ClearStateForCurrentBatch() { }
+        public void Dispose() { }
+        public void InvalidateParameterViews() { }
+        public Microsoft.AspNetCore.Components.RenderTree.RenderBatch ToBatch() { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct KeyedItemInfo
+    {
+        public readonly int OldIndex;
+        public readonly int NewIndex;
+        public readonly int OldSiblingIndex;
+        public readonly int NewSiblingIndex;
+        public KeyedItemInfo(int oldIndex, int newIndex) { throw null; }
+        public Microsoft.AspNetCore.Components.Rendering.KeyedItemInfo WithNewSiblingIndex(int newSiblingIndex) { throw null; }
+        public Microsoft.AspNetCore.Components.Rendering.KeyedItemInfo WithOldSiblingIndex(int oldSiblingIndex) { throw null; }
+    }
+    internal partial class ComponentState : System.IDisposable
+    {
+        public ComponentState(Microsoft.AspNetCore.Components.RenderTree.Renderer renderer, int componentId, Microsoft.AspNetCore.Components.IComponent component, Microsoft.AspNetCore.Components.Rendering.ComponentState parentComponentState) { }
+        public Microsoft.AspNetCore.Components.IComponent Component { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public int ComponentId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder CurrentRenderTree { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Rendering.ComponentState ParentComponentState { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public void Dispose() { }
+        public void NotifyCascadingValueChanged() { }
+        public System.Threading.Tasks.Task NotifyRenderCompletedAsync() { throw null; }
+        public void RenderIntoBatch(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, Microsoft.AspNetCore.Components.RenderFragment renderFragment) { }
+        public void SetDirectParameters(Microsoft.AspNetCore.Components.ParameterView parameters) { }
+        public bool TryDisposeInBatch(Microsoft.AspNetCore.Components.Rendering.RenderBatchBuilder batchBuilder, out System.Exception exception) { throw null; }
+    }
+    internal partial class RenderTreeUpdater
+    {
+        public RenderTreeUpdater() { }
+        public static void UpdateToMatchClientState(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder renderTreeBuilder, ulong eventHandlerId, object newFieldValue) { }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Routing
+{
+    internal partial class TemplateParser
+    {
+        public static readonly char[] InvalidParameterNameCharacters;
+        public TemplateParser() { }
+        internal static Microsoft.AspNetCore.Components.Routing.RouteTemplate ParseTemplate(string template) { throw null; }
+    }
+    internal partial class RouteContext
+    {
+        public RouteContext(string path) { }
+        public System.Type Handler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyDictionary<string, object> Parameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string[] Segments { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Handler = {Handler}, Template = {Template}")]
+    internal partial class RouteEntry
+    {
+        public RouteEntry(Microsoft.AspNetCore.Components.Routing.RouteTemplate template, System.Type handler, string[] unusedRouteParameterNames) { }
+        public System.Type Handler { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Routing.RouteTemplate Template { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string[] UnusedRouteParameterNames { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void Match(Microsoft.AspNetCore.Components.Routing.RouteContext context) { }
+    }
+    internal partial class RouteTable
+    {
+        public RouteTable(Microsoft.AspNetCore.Components.Routing.RouteEntry[] routes) { }
+        public Microsoft.AspNetCore.Components.Routing.RouteEntry[] Routes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal void Route(Microsoft.AspNetCore.Components.Routing.RouteContext routeContext) { }
+    }
+    internal abstract partial class RouteConstraint
+    {
+        protected RouteConstraint() { }
+        public abstract bool Match(string pathSegment, out object convertedValue);
+        public static Microsoft.AspNetCore.Components.Routing.RouteConstraint Parse(string template, string segment, string constraint) { throw null; }
+    }
+    internal partial class TemplateSegment
+    {
+        public TemplateSegment(string template, string segment, bool isParameter) { }
+        public Microsoft.AspNetCore.Components.Routing.RouteConstraint[] Constraints { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsParameter { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Match(string pathSegment, out object matchedParameterValue) { throw null; }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("{TemplateText}")]
+    internal partial class RouteTemplate
+    {
+        public RouteTemplate(string templateText, Microsoft.AspNetCore.Components.Routing.TemplateSegment[] segments) { }
+        public Microsoft.AspNetCore.Components.Routing.TemplateSegment[] Segments { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string TemplateText { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+}

+ 11 - 7
src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj

@@ -5,15 +5,19 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.netstandard2.0.cs" />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
-    <Reference Include="System.Buffers"  />
+    <Compile Include="Microsoft.AspNetCore.Components.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
+    <Reference Include="System.Buffers" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.netcoreapp.cs" />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Components.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.HashCodeCombiner.Sources" />
   </ItemGroup>
 </Project>

+ 0 - 19
src/Components/Components/ref/Microsoft.AspNetCore.Components.netcoreapp.cs

@@ -122,16 +122,6 @@ namespace Microsoft.AspNetCore.Components
         public ElementReference(string id) { throw null; }
         public string Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
     }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct EventCallback
-    {
-        private readonly object _dummy;
-        public static readonly Microsoft.AspNetCore.Components.EventCallback Empty;
-        public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory;
-        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
-        public bool HasDelegate { get { throw null; } }
-        public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
-    }
     public sealed partial class EventCallbackFactory
     {
         public EventCallbackFactory() { }
@@ -194,15 +184,6 @@ namespace Microsoft.AspNetCore.Components
         public EventCallbackWorkItem(System.MulticastDelegate @delegate) { throw null; }
         public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
     }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct EventCallback<TValue>
-    {
-        private readonly object _dummy;
-        public static readonly Microsoft.AspNetCore.Components.EventCallback<TValue> Empty;
-        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
-        public bool HasDelegate { get { throw null; } }
-        public System.Threading.Tasks.Task InvokeAsync(TValue arg) { throw null; }
-    }
     [System.AttributeUsageAttribute(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
     public sealed partial class EventHandlerAttribute : System.Attribute
     {

+ 0 - 58
src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs

@@ -1,58 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using System;
-using System.Runtime.InteropServices;
-using Microsoft.AspNetCore.Components.Rendering;
-
-namespace Microsoft.AspNetCore.Components.RenderTree
-{
-    // https://github.com/dotnet/arcade/pull/2033
-    [StructLayout(LayoutKind.Explicit, Pack = 4)]
-    public readonly partial struct RenderTreeFrame
-    {
-        [FieldOffset(0)] public readonly int Sequence;
-
-        [FieldOffset(4)] public readonly RenderTreeFrameType FrameType;
-
-        [FieldOffset(8)] public readonly int ElementSubtreeLength;
-
-        [FieldOffset(16)] public readonly string ElementName;
-
-        [FieldOffset(24)] public readonly object ElementKey;
-
-        [FieldOffset(16)] public readonly string TextContent;
-
-        [FieldOffset(8)] public readonly ulong AttributeEventHandlerId;
-
-        [FieldOffset(16)] public readonly string AttributeName;
-
-        [FieldOffset(24)] public readonly object AttributeValue;
-
-        [FieldOffset(32)] public readonly string AttributeEventUpdatesAttributeName;
-
-        [FieldOffset(8)] public readonly int ComponentSubtreeLength;
-
-        [FieldOffset(12)] public readonly int ComponentId;
-
-        [FieldOffset(16)] public readonly Type ComponentType;
-
-        [FieldOffset(32)] public readonly object ComponentKey;
-
-        public IComponent Component => null;
-
-        [FieldOffset(8)] public readonly int RegionSubtreeLength;
-
-        [FieldOffset(16)] public readonly string ElementReferenceCaptureId;
-
-        [FieldOffset(24)] public readonly Action<ElementReference> ElementReferenceCaptureAction;
-
-        [FieldOffset(8)] public readonly int ComponentReferenceCaptureParentFrameIndex;
-
-        [FieldOffset(16)] public readonly Action<object> ComponentReferenceCaptureAction;
-
-        [FieldOffset(16)] public readonly string MarkupContent;
-
-        public override string ToString() => null;
-    }
-}

+ 0 - 19
src/Components/Components/ref/Microsoft.AspNetCore.Components.netstandard2.0.cs

@@ -122,16 +122,6 @@ namespace Microsoft.AspNetCore.Components
         public ElementReference(string id) { throw null; }
         public string Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
     }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct EventCallback
-    {
-        private readonly object _dummy;
-        public static readonly Microsoft.AspNetCore.Components.EventCallback Empty;
-        public static readonly Microsoft.AspNetCore.Components.EventCallbackFactory Factory;
-        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
-        public bool HasDelegate { get { throw null; } }
-        public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
-    }
     public sealed partial class EventCallbackFactory
     {
         public EventCallbackFactory() { }
@@ -194,15 +184,6 @@ namespace Microsoft.AspNetCore.Components
         public EventCallbackWorkItem(System.MulticastDelegate @delegate) { throw null; }
         public System.Threading.Tasks.Task InvokeAsync(object arg) { throw null; }
     }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct EventCallback<TValue>
-    {
-        private readonly object _dummy;
-        public static readonly Microsoft.AspNetCore.Components.EventCallback<TValue> Empty;
-        public EventCallback(Microsoft.AspNetCore.Components.IHandleEvent receiver, System.MulticastDelegate @delegate) { throw null; }
-        public bool HasDelegate { get { throw null; } }
-        public System.Threading.Tasks.Task InvokeAsync(TValue arg) { throw null; }
-    }
     [System.AttributeUsageAttribute(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
     public sealed partial class EventHandlerAttribute : System.Attribute
     {

+ 3 - 3
src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj

@@ -5,11 +5,11 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.Forms.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
-    <Reference Include="System.ComponentModel.Annotations"  />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="System.ComponentModel.Annotations" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Forms.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
+    <Reference Include="Microsoft.AspNetCore.Components" />
   </ItemGroup>
 </Project>

+ 4 - 0
src/Components/Ignitor/src/Ignitor.csproj

@@ -7,6 +7,8 @@
     <IsShippingPackage>false</IsShippingPackage>
     <HasReferenceAssembly>false</HasReferenceAssembly>
     <DefineConstants>$(DefineConstants);IGNITOR</DefineConstants>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -26,6 +28,8 @@
     <Reference Include="Microsoft.AspNetCore.SignalR.Client" />
     <Reference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.SignalR.Common" />
   </ItemGroup>
 
   <ItemGroup>

+ 2 - 0
src/Components/Ignitor/test/Ignitor.Test.csproj

@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <DefineConstants>$(DefineConstants);IGNITOR</DefineConstants>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>

+ 328 - 0
src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.Manual.cs

@@ -0,0 +1,328 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Components
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ComponentParameter
+    {
+        private object _dummy;
+        public string Assembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string TypeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public static (System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parameterDefinitions, System.Collections.Generic.IList<object> parameterValues) FromParameterView(Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; }
+    }
+    internal partial class ComponentParametersTypeCache
+    {
+        public ComponentParametersTypeCache() { }
+        public System.Type GetParameterType(string assembly, string type) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ServerComponent
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public ServerComponent(int sequence, string assemblyName, string typeName, System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parametersDefinitions, System.Collections.Generic.IList<object> parameterValues, System.Guid invocationId) { throw null; }
+        public string AssemblyName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Guid InvocationId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> ParameterDefinitions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IList<object> ParameterValues { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string TypeName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal static partial class ServerComponentSerializationSettings
+    {
+        public static readonly System.TimeSpan DataExpiration;
+        public const string DataProtectionProviderPurpose = "Microsoft.AspNetCore.Components.ComponentDescriptorSerializer,V1";
+        public static readonly System.Text.Json.JsonSerializerOptions JsonSerializationOptions;
+    }
+    internal sealed partial class ElementReferenceJsonConverter : System.Text.Json.Serialization.JsonConverter<Microsoft.AspNetCore.Components.ElementReference>
+    {
+        public ElementReferenceJsonConverter() { }
+        public override Microsoft.AspNetCore.Components.ElementReference Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) { throw null; }
+        public override void Write(System.Text.Json.Utf8JsonWriter writer, Microsoft.AspNetCore.Components.ElementReference value, System.Text.Json.JsonSerializerOptions options) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ServerComponentMarker
+    {
+        private object _dummy;
+        private int _dummyPrimitive;
+        public string Descriptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string PrerenderId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int? Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Components.ServerComponentMarker GetEndRecord() { throw null; }
+        public static Microsoft.AspNetCore.Components.ServerComponentMarker NonPrerendered(int sequence, string descriptor) { throw null; }
+        public static Microsoft.AspNetCore.Components.ServerComponentMarker Prerendered(int sequence, string descriptor) { throw null; }
+    }
+    internal partial class ServerComponentTypeCache
+    {
+        public ServerComponentTypeCache() { }
+        public System.Type GetRootComponent(string assembly, string type) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Server
+{
+    internal partial class CircuitDisconnectMiddleware
+    {
+        public CircuitDisconnectMiddleware(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.CircuitDisconnectMiddleware> logger, Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry registry, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory circuitIdFactory, Microsoft.AspNetCore.Http.RequestDelegate next) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory CircuitIdFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.CircuitDisconnectMiddleware> Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Http.RequestDelegate Next { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry Registry { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
+    }
+    internal partial class ServerComponentDeserializer
+    {
+        public ServerComponentDeserializer(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.ServerComponentDeserializer> logger, Microsoft.AspNetCore.Components.ServerComponentTypeCache rootComponentTypeCache, Microsoft.AspNetCore.Components.Server.ComponentParameterDeserializer parametersDeserializer) { }
+        public bool TryDeserializeComponentDescriptorCollection(string serializedComponentRecords, out System.Collections.Generic.List<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> descriptors) { throw null; }
+    }
+    internal partial class ComponentDescriptor
+    {
+        public ComponentDescriptor() { }
+        public System.Type ComponentType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Components.ParameterView Parameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int Sequence { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public void Deconstruct(out System.Type componentType, out Microsoft.AspNetCore.Components.ParameterView parameters, out int sequence) { throw null; }
+    }
+    internal sealed partial class ComponentHub : Microsoft.AspNetCore.SignalR.Hub
+    {
+        public ComponentHub(Microsoft.AspNetCore.Components.Server.ServerComponentDeserializer serializer, Microsoft.AspNetCore.Components.Server.Circuits.CircuitFactory circuitFactory, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory circuitIdFactory, Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry circuitRegistry, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.ComponentHub> logger) { }
+        public static Microsoft.AspNetCore.Http.PathString DefaultPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask BeginInvokeDotNetFromJS(string callId, string assemblyName, string methodIdentifier, long dotNetObjectId, string argsJson) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask<bool> ConnectCircuit(string circuitIdSecret) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask DispatchBrowserEvent(string eventDescriptor, string eventArgs) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask EndInvokeJSFromDotNet(long asyncHandle, bool succeeded, string arguments) { throw null; }
+        public override System.Threading.Tasks.Task OnDisconnectedAsync(System.Exception exception) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask OnLocationChanged(string uri, bool intercepted) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask OnRenderCompleted(long renderId, string errorMessageOrNull) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask<string> StartCircuit(string baseUri, string uri, string serializedComponentRecords) { throw null; }
+    }
+    internal partial class ComponentParameterDeserializer
+    {
+        public ComponentParameterDeserializer(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.ComponentParameterDeserializer> logger, Microsoft.AspNetCore.Components.ComponentParametersTypeCache parametersCache) { }
+        public bool TryDeserializeParameters(System.Collections.Generic.IList<Microsoft.AspNetCore.Components.ComponentParameter> parametersDefinitions, System.Collections.Generic.IList<object> parameterValues, out Microsoft.AspNetCore.Components.ParameterView parameters) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Server.BlazorPack
+{
+    internal sealed partial class BlazorPackHubProtocol : Microsoft.AspNetCore.SignalR.Protocol.IHubProtocol
+    {
+        internal const string ProtocolName = "blazorpack";
+        public BlazorPackHubProtocol() { }
+        public string Name { get { throw null; } }
+        public Microsoft.AspNetCore.Connections.TransferFormat TransferFormat { get { throw null; } }
+        public int Version { get { throw null; } }
+        public System.ReadOnlyMemory<byte> GetMessageBytes(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
+        public bool IsVersionSupported(int version) { throw null; }
+        public bool TryParseMessage(ref System.Buffers.ReadOnlySequence<byte> input, Microsoft.AspNetCore.SignalR.IInvocationBinder binder, out Microsoft.AspNetCore.SignalR.Protocol.HubMessage message) { throw null; }
+        public void WriteMessage(Microsoft.AspNetCore.SignalR.Protocol.HubMessage message, System.Buffers.IBufferWriter<byte> output) { }
+    }
+}
+namespace Microsoft.AspNetCore.Components.Server.Circuits
+{
+    internal partial class CircuitFactory
+    {
+        public CircuitFactory(Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory circuitIdFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Components.Server.CircuitOptions> options) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost CreateCircuitHost(System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> components, Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy client, string baseUri, string uri, System.Security.Claims.ClaimsPrincipal user) { throw null; }
+    }
+    internal partial class RenderBatchWriter : System.IDisposable
+    {
+        public RenderBatchWriter(System.IO.Stream output, bool leaveOpen) { }
+        public void Dispose() { }
+        public void Write(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch) { }
+    }
+    internal partial class CircuitRegistry
+    {
+        public CircuitRegistry(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Components.Server.CircuitOptions> options, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.Circuits.CircuitRegistry> logger, Microsoft.AspNetCore.Components.Server.Circuits.CircuitIdFactory CircuitHostFactory) { }
+        internal System.Collections.Concurrent.ConcurrentDictionary<Microsoft.AspNetCore.Components.Server.Circuits.CircuitId, Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost> ConnectedCircuits { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.Extensions.Caching.Memory.MemoryCache DisconnectedCircuits { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost> ConnectAsync(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId, Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId, System.Threading.CancellationToken cancellationToken) { throw null; }
+        protected virtual (Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost, bool previouslyConnected) ConnectCore(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId, Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId) { throw null; }
+        public virtual System.Threading.Tasks.Task DisconnectAsync(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost, string connectionId) { throw null; }
+        protected virtual bool DisconnectCore(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost, string connectionId) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        protected virtual void OnEntryEvicted(object key, object value, Microsoft.Extensions.Caching.Memory.EvictionReason reason, object state) { }
+        public void Register(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost) { }
+        public void RegisterDisconnectedCircuit(Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost circuitHost) { }
+        public System.Threading.Tasks.ValueTask TerminateAsync(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId) { throw null; }
+    }
+    internal partial class CircuitHandle
+    {
+        public CircuitHandle() { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost CircuitHost { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class RemoteRenderer : Microsoft.AspNetCore.Components.RenderTree.Renderer
+    {
+        internal readonly System.Collections.Concurrent.ConcurrentQueue<Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer.UnacknowledgedRenderBatch> _unacknowledgedRenderBatches;
+        public RemoteRenderer(System.IServiceProvider serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Components.Server.CircuitOptions options, Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy client, Microsoft.Extensions.Logging.ILogger logger) : base (default(System.IServiceProvider), default(Microsoft.Extensions.Logging.ILoggerFactory)) { }
+        public override Microsoft.AspNetCore.Components.Dispatcher Dispatcher { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public event System.EventHandler<System.Exception> UnhandledException { add { } remove { } }
+        public System.Threading.Tasks.Task AddComponentAsync(System.Type componentType, string domElementSelector) { throw null; }
+        protected override void Dispose(bool disposing) { }
+        protected override void HandleException(System.Exception exception) { }
+        public System.Threading.Tasks.Task OnRenderCompletedAsync(long incomingBatchId, string errorMessageOrNull) { throw null; }
+        public System.Threading.Tasks.Task ProcessBufferedRenderBatches() { throw null; }
+        protected override void ProcessPendingRender() { }
+        protected override System.Threading.Tasks.Task UpdateDisplayAsync(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch batch) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct UnacknowledgedRenderBatch
+        {
+            private readonly object _dummy;
+            private readonly int _dummyPrimitive;
+            public UnacknowledgedRenderBatch(long batchId, Microsoft.AspNetCore.Components.Server.Circuits.ArrayBuilder<byte> data, System.Threading.Tasks.TaskCompletionSource<object> completionSource, Microsoft.Extensions.Internal.ValueStopwatch valueStopwatch) { throw null; }
+            public long BatchId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public System.Threading.Tasks.TaskCompletionSource<object> CompletionSource { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public Microsoft.AspNetCore.Components.Server.Circuits.ArrayBuilder<byte> Data { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public Microsoft.Extensions.Internal.ValueStopwatch ValueStopwatch { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        }
+    }
+    internal partial class ArrayBuilder<T> : System.IDisposable
+    {
+        public ArrayBuilder(int minCapacity = 32, System.Buffers.ArrayPool<T> arrayPool = null) { }
+        public T[] Buffer { get { throw null; } }
+        public int Count { get { throw null; } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public int Append(in T item) { throw null; }
+        internal int Append(T[] source, int startIndex, int length) { throw null; }
+        public void Clear() { }
+        public void Dispose() { }
+        public void InsertExpensive(int index, T value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public void Overwrite(int index, in T value) { }
+        public void RemoveLast() { }
+    }
+    internal partial class CircuitClientProxy : Microsoft.AspNetCore.SignalR.IClientProxy
+    {
+        public CircuitClientProxy() { }
+        public CircuitClientProxy(Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId) { }
+        public Microsoft.AspNetCore.SignalR.IClientProxy Client { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Connected { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string ConnectionId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Threading.Tasks.Task SendCoreAsync(string method, object[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
+        public void SetDisconnected() { }
+        public void Transfer(Microsoft.AspNetCore.SignalR.IClientProxy clientProxy, string connectionId) { }
+    }
+    internal partial class CircuitHost : System.IAsyncDisposable
+    {
+        public CircuitHost(Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId, Microsoft.Extensions.DependencyInjection.IServiceScope scope, Microsoft.AspNetCore.Components.Server.CircuitOptions options, Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy client, Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer renderer, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> descriptors, Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime jsRuntime, Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler[] circuitHandlers, Microsoft.Extensions.Logging.ILogger logger) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.Circuit Circuit { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitId CircuitId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy Client { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.Server.ComponentDescriptor> Descriptors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandle Handle { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime JSRuntime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer Renderer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.IServiceProvider Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public event System.UnhandledExceptionEventHandler UnhandledException { add { } remove { } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task BeginInvokeDotNetFromJS(string callId, string assemblyName, string methodIdentifier, long dotNetObjectId, string argsJson) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task DispatchEvent(string eventDescriptorJson, string eventArgsJson) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task EndInvokeJSFromDotNet(long asyncCall, bool succeded, string arguments) { throw null; }
+        public System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnConnectionDownAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnConnectionUpAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnLocationChangedAsync(string uri, bool intercepted) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task OnRenderCompletedAsync(long renderId, string errorMessageOrNull) { throw null; }
+        public void SendPendingBatches() { }
+        public void SetCircuitUser(System.Security.Claims.ClaimsPrincipal user) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal readonly partial struct CircuitId : System.IEquatable<Microsoft.AspNetCore.Components.Server.Circuits.CircuitId>
+    {
+        private readonly object _dummy;
+        public CircuitId(string secret, string id) { throw null; }
+        public string Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public string Secret { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool Equals([System.Diagnostics.CodeAnalysis.AllowNullAttribute]Microsoft.AspNetCore.Components.Server.Circuits.CircuitId other) { throw null; }
+        public override bool Equals(object obj) { throw null; }
+        public override int GetHashCode() { throw null; }
+        public override string ToString() { throw null; }
+    }
+    internal partial class CircuitIdFactory
+    {
+        public CircuitIdFactory(Microsoft.AspNetCore.DataProtection.IDataProtectionProvider provider) { }
+        public Microsoft.AspNetCore.Components.Server.Circuits.CircuitId CreateCircuitId() { throw null; }
+        public bool TryParseCircuitId(string text, out Microsoft.AspNetCore.Components.Server.Circuits.CircuitId circuitId) { throw null; }
+    }
+    internal partial class RemoteJSRuntime : Microsoft.JSInterop.JSRuntime
+    {
+        public RemoteJSRuntime(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Components.Server.CircuitOptions> options, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime> logger) { }
+        protected override void BeginInvokeJS(long asyncHandle, string identifier, string argsJson) { }
+        protected override void EndInvokeDotNet(Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, in Microsoft.JSInterop.Infrastructure.DotNetInvocationResult invocationResult) { }
+        internal void Initialize(Microsoft.AspNetCore.Components.Server.Circuits.CircuitClientProxy clientProxy) { }
+        public static partial class Log
+        {
+            internal static void BeginInvokeJS(Microsoft.Extensions.Logging.ILogger logger, long asyncHandle, string identifier) { }
+            internal static void InvokeDotNetMethodException(Microsoft.Extensions.Logging.ILogger logger, in Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo, System.Exception exception) { }
+            internal static void InvokeDotNetMethodSuccess(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime> logger, in Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo invocationInfo) { }
+        }
+    }
+}
+namespace Microsoft.AspNetCore.Internal
+{
+    internal static partial class BinaryMessageFormatter
+    {
+        public static int LengthPrefixLength(long length) { throw null; }
+        public static void WriteLengthPrefix(long length, System.Buffers.IBufferWriter<byte> output) { }
+        public static int WriteLengthPrefix(long length, System.Span<byte> output) { throw null; }
+    }
+    internal static partial class BinaryMessageParser
+    {
+        public static bool TryParseMessage(ref System.Buffers.ReadOnlySequence<byte> buffer, out System.Buffers.ReadOnlySequence<byte> payload) { throw null; }
+    }
+    internal sealed partial class MemoryBufferWriter : System.IO.Stream, System.Buffers.IBufferWriter<byte>
+    {
+        public MemoryBufferWriter(int minimumSegmentSize = 4096) { }
+        public override bool CanRead { get { throw null; } }
+        public override bool CanSeek { get { throw null; } }
+        public override bool CanWrite { get { throw null; } }
+        public override long Length { get { throw null; } }
+        public override long Position { get { throw null; } set { } }
+        public void Advance(int count) { }
+        public void CopyTo(System.Buffers.IBufferWriter<byte> destination) { }
+        public void CopyTo(System.Span<byte> span) { }
+        public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { throw null; }
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        public static Microsoft.AspNetCore.Internal.MemoryBufferWriter Get() { throw null; }
+        public System.Memory<byte> GetMemory(int sizeHint = 0) { throw null; }
+        public System.Span<byte> GetSpan(int sizeHint = 0) { throw null; }
+        public override int Read(byte[] buffer, int offset, int count) { throw null; }
+        public void Reset() { }
+        public static void Return(Microsoft.AspNetCore.Internal.MemoryBufferWriter writer) { }
+        public override long Seek(long offset, System.IO.SeekOrigin origin) { throw null; }
+        public override void SetLength(long value) { }
+        public byte[] ToArray() { throw null; }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        public override void Write(System.ReadOnlySpan<byte> span) { }
+        public override void WriteByte(byte value) { }
+    }
+}
+namespace Microsoft.Extensions.Internal
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct ValueStopwatch
+    {
+        private int _dummyPrimitive;
+        public bool IsActive { get { throw null; } }
+        public System.TimeSpan GetElapsedTime() { throw null; }
+        public static Microsoft.Extensions.Internal.ValueStopwatch StartNew() { throw null; }
+    }
+}

+ 11 - 9
src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj

@@ -5,14 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Server.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components.Authorization"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Web"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.SignalR"  />
-    <Reference Include="Microsoft.AspNetCore.StaticFiles"  />
-    <Reference Include="Microsoft.Extensions.Caching.Memory"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Embedded"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
+    <Compile Include="Microsoft.AspNetCore.Components.Server.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Components.Authorization" />
+    <Reference Include="Microsoft.AspNetCore.Components.Web" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.SignalR" />
+    <Reference Include="Microsoft.AspNetCore.StaticFiles" />
+    <Reference Include="Microsoft.Extensions.Caching.Memory" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Embedded" />
+    <Reference Include="Microsoft.Extensions.Logging" />
   </ItemGroup>
 </Project>

+ 5 - 0
src/Components/Web.JS/Microsoft.AspNetCore.Components.Web.JS.npmproj

@@ -21,6 +21,11 @@
       Private="false" />
   </ItemGroup>
 
+  <!-- Workaround strange issues with something calling these targets. -->
+  <Target Name="GetTargetFramework" />
+  <Target Name="GetCopyToPublishDirectoryItems" />
+  <Target Name="GetTargetPath" />
+
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
 
 </Project>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/Components/Web.JS/dist/Release/blazor.server.js


+ 10 - 8
src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj

@@ -5,16 +5,18 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Components.Web.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Forms"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.JSInterop"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="Microsoft.AspNetCore.Components.Forms" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.JSInterop" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Components.Web.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Components"  />
-    <Reference Include="Microsoft.AspNetCore.Components.Forms"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.JSInterop"  />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="Microsoft.AspNetCore.Components.Forms" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.JSInterop" />
   </ItemGroup>
 </Project>

+ 2 - 0
src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj

@@ -20,6 +20,8 @@
 
     <GenerateLoggingTestingAssemblyAttributes>false</GenerateLoggingTestingAssemblyAttributes>
 
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>

+ 2 - 2
src/Components/test/testassets/ComponentsApp.App/ComponentsApp.App.csproj

@@ -7,8 +7,8 @@
 
   <ItemGroup>
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
-    <ProjectReference Include="..\..\..\Components\src\Microsoft.AspNetCore.Components.csproj" />
-    <ProjectReference Include="..\..\..\Web\src\Microsoft.AspNetCore.Components.Web.csproj" />
+    <Reference Include="Microsoft.AspNetCore.Components" />
+    <Reference Include="Microsoft.AspNetCore.Components.Web" />
   </ItemGroup>
 
 </Project>

+ 24 - 0
src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs

@@ -0,0 +1,24 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.DataProtection.Abstractions
+{
+    internal static partial class Resources
+    {
+        internal static string CryptCommon_GenericError { get { throw null; } }
+        internal static string CryptCommon_PayloadInvalid { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture
+        {
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; }
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { }
+        }
+
+        internal static string DataProtectionExtensions_NoService { get { throw null; } }
+        internal static string DataProtectionExtensions_NullPurposesCollection { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string FormatDataProtectionExtensions_NoService(object p0) { throw null; }
+
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+        internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}

+ 2 - 1
src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj

@@ -5,6 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.Abstractions.netstandard2.0.cs" />
-    
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
   </ItemGroup>
 </Project>

+ 0 - 12
src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj

@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Azure.KeyVault"  />
-    <Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory"  />
-  </ItemGroup>
-</Project>

+ 0 - 12
src/DataProtection/AzureKeyVault/ref/Microsoft.AspNetCore.DataProtection.AzureKeyVault.netstandard2.0.cs

@@ -1,12 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class AzureDataProtectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithAzureKeyVault(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.KeyVault.KeyVaultClient client, string keyIdentifier) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithAzureKeyVault(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string keyIdentifier, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder ProtectKeysWithAzureKeyVault(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, string keyIdentifier, string clientId, string clientSecret) { throw null; }
-    }
-}

+ 4 - 0
src/DataProtection/AzureKeyVault/test/Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj

@@ -3,12 +3,16 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.DataProtection" />
     <Reference Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 0 - 12
src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.csproj

@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Azure.Storage.Blob"  />
-    <Reference Include="Microsoft.Data.OData"  />
-  </ItemGroup>
-</Project>

+ 0 - 22
src/DataProtection/AzureStorage/ref/Microsoft.AspNetCore.DataProtection.AzureStorage.netstandard2.0.cs

@@ -1,22 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class AzureDataProtectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.Storage.Blob.CloudBlobContainer container, string blobName) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.Storage.Blob.CloudBlockBlob blobReference) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, Microsoft.Azure.Storage.CloudStorageAccount storageAccount, string relativePath) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToAzureBlobStorage(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Uri blobUri) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.DataProtection.AzureStorage
-{
-    public sealed partial class AzureBlobXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository
-    {
-        public AzureBlobXmlRepository(System.Func<Microsoft.Azure.Storage.Blob.ICloudBlob> blobRefFactory) { }
-        public System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
-        public void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
-    }
-}

+ 4 - 0
src/DataProtection/AzureStorage/test/Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj

@@ -4,6 +4,8 @@
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <UseLatestPackageReferences>true</UseLatestPackageReferences>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -12,6 +14,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Data.OData"/>
     <Reference Include="Microsoft.Data.Services.Client"/>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 341 - 0
src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs

@@ -0,0 +1,341 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cryptography
+{
+    internal static partial class Constants
+    {
+        internal const string BCRYPT_3DES_112_ALGORITHM = "3DES_112";
+        internal const string BCRYPT_3DES_ALGORITHM = "3DES";
+        internal const string BCRYPT_AES_ALGORITHM = "AES";
+        internal const string BCRYPT_AES_CMAC_ALGORITHM = "AES-CMAC";
+        internal const string BCRYPT_AES_GMAC_ALGORITHM = "AES-GMAC";
+        internal const string BCRYPT_AES_WRAP_KEY_BLOB = "Rfc3565KeyWrapBlob";
+        internal const string BCRYPT_ALGORITHM_NAME = "AlgorithmName";
+        internal const string BCRYPT_AUTH_TAG_LENGTH = "AuthTagLength";
+        internal const string BCRYPT_BLOCK_LENGTH = "BlockLength";
+        internal const string BCRYPT_BLOCK_SIZE_LIST = "BlockSizeList";
+        internal const string BCRYPT_CAPI_KDF_ALGORITHM = "CAPI_KDF";
+        internal const string BCRYPT_CHAINING_MODE = "ChainingMode";
+        internal const string BCRYPT_CHAIN_MODE_CBC = "ChainingModeCBC";
+        internal const string BCRYPT_CHAIN_MODE_CCM = "ChainingModeCCM";
+        internal const string BCRYPT_CHAIN_MODE_CFB = "ChainingModeCFB";
+        internal const string BCRYPT_CHAIN_MODE_ECB = "ChainingModeECB";
+        internal const string BCRYPT_CHAIN_MODE_GCM = "ChainingModeGCM";
+        internal const string BCRYPT_CHAIN_MODE_NA = "ChainingModeN/A";
+        internal const string BCRYPT_DESX_ALGORITHM = "DESX";
+        internal const string BCRYPT_DES_ALGORITHM = "DES";
+        internal const string BCRYPT_DH_ALGORITHM = "DH";
+        internal const string BCRYPT_DSA_ALGORITHM = "DSA";
+        internal const string BCRYPT_ECDH_P256_ALGORITHM = "ECDH_P256";
+        internal const string BCRYPT_ECDH_P384_ALGORITHM = "ECDH_P384";
+        internal const string BCRYPT_ECDH_P521_ALGORITHM = "ECDH_P521";
+        internal const string BCRYPT_ECDSA_P256_ALGORITHM = "ECDSA_P256";
+        internal const string BCRYPT_ECDSA_P384_ALGORITHM = "ECDSA_P384";
+        internal const string BCRYPT_ECDSA_P521_ALGORITHM = "ECDSA_P521";
+        internal const string BCRYPT_EFFECTIVE_KEY_LENGTH = "EffectiveKeyLength";
+        internal const string BCRYPT_HASH_BLOCK_LENGTH = "HashBlockLength";
+        internal const string BCRYPT_HASH_LENGTH = "HashDigestLength";
+        internal const string BCRYPT_HASH_OID_LIST = "HashOIDList";
+        internal const string BCRYPT_IS_KEYED_HASH = "IsKeyedHash";
+        internal const string BCRYPT_IS_REUSABLE_HASH = "IsReusableHash";
+        internal const string BCRYPT_KEY_DATA_BLOB = "KeyDataBlob";
+        internal const string BCRYPT_KEY_LENGTH = "KeyLength";
+        internal const string BCRYPT_KEY_LENGTHS = "KeyLengths";
+        internal const string BCRYPT_KEY_OBJECT_LENGTH = "KeyObjectLength";
+        internal const string BCRYPT_KEY_STRENGTH = "KeyStrength";
+        internal const string BCRYPT_MD2_ALGORITHM = "MD2";
+        internal const string BCRYPT_MD4_ALGORITHM = "MD4";
+        internal const string BCRYPT_MD5_ALGORITHM = "MD5";
+        internal const string BCRYPT_MESSAGE_BLOCK_LENGTH = "MessageBlockLength";
+        internal const string BCRYPT_OBJECT_LENGTH = "ObjectLength";
+        internal const string BCRYPT_OPAQUE_KEY_BLOB = "OpaqueKeyBlob";
+        internal const string BCRYPT_PADDING_SCHEMES = "PaddingSchemes";
+        internal const string BCRYPT_PBKDF2_ALGORITHM = "PBKDF2";
+        internal const string BCRYPT_PRIMITIVE_TYPE = "PrimitiveType";
+        internal const string BCRYPT_PROVIDER_HANDLE = "ProviderHandle";
+        internal const string BCRYPT_RC2_ALGORITHM = "RC2";
+        internal const string BCRYPT_RC4_ALGORITHM = "RC4";
+        internal const string BCRYPT_RNG_ALGORITHM = "RNG";
+        internal const string BCRYPT_RNG_DUAL_EC_ALGORITHM = "DUALECRNG";
+        internal const string BCRYPT_RNG_FIPS186_DSA_ALGORITHM = "FIPS186DSARNG";
+        internal const string BCRYPT_RSA_ALGORITHM = "RSA";
+        internal const string BCRYPT_RSA_SIGN_ALGORITHM = "RSA_SIGN";
+        internal const string BCRYPT_SHA1_ALGORITHM = "SHA1";
+        internal const string BCRYPT_SHA256_ALGORITHM = "SHA256";
+        internal const string BCRYPT_SHA384_ALGORITHM = "SHA384";
+        internal const string BCRYPT_SHA512_ALGORITHM = "SHA512";
+        internal const string BCRYPT_SIGNATURE_LENGTH = "SignatureLength";
+        internal const string BCRYPT_SP800108_CTR_HMAC_ALGORITHM = "SP800_108_CTR_HMAC";
+        internal const string BCRYPT_SP80056A_CONCAT_ALGORITHM = "SP800_56A_CONCAT";
+        internal const int MAX_STACKALLOC_BYTES = 256;
+        internal const string MS_PLATFORM_CRYPTO_PROVIDER = "Microsoft Platform Crypto Provider";
+        internal const string MS_PRIMITIVE_PROVIDER = "Microsoft Primitive Provider";
+    }
+    internal static partial class CryptoUtil
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void Assert(bool condition, string message) { }
+        public static void AssertPlatformIsWindows() { }
+        public static void AssertPlatformIsWindows8OrLater() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void AssertSafeHandleIsValid(System.Runtime.InteropServices.SafeHandle safeHandle) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Exception Fail(string message) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static T Fail<T>(string message) where T : class { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static bool TimeConstantBuffersAreEqual(byte* bufA, byte* bufB, uint count) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static bool TimeConstantBuffersAreEqual(byte[] bufA, int offsetA, int countA, byte[] bufB, int offsetB, int countB) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal unsafe partial struct DATA_BLOB
+    {
+        public uint cbData;
+        public byte* pbData;
+    }
+    internal static partial class UnsafeBufferUtil
+    {
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+        public static void BlockCopy(Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle from, Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle to, System.IntPtr length) { }
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+        public unsafe static void BlockCopy(Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle from, void* to, uint byteCount) { }
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+        public unsafe static void BlockCopy(void* from, Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle to, uint byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void BlockCopy(void* from, void* to, int byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void BlockCopy(void* from, void* to, uint byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, int byteCount) { }
+        [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, System.IntPtr length) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, uint byteCount) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        public unsafe static void SecureZeroMemory(byte* buffer, ulong byteCount) { }
+    }
+    [System.Security.SuppressUnmanagedCodeSecurityAttribute]
+    internal static partial class UnsafeNativeMethods
+    {
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptCloseAlgorithmProvider(System.IntPtr hAlgorithm, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptCreateHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hAlgorithm, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle phHash, System.IntPtr pbHashObject, uint cbHashObject, byte* pbSecret, uint cbSecret, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptDecrypt(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, byte* pbInput, uint cbInput, void* pPaddingInfo, byte* pbIV, uint cbIV, byte* pbOutput, uint cbOutput, out uint pcbResult, Microsoft.AspNetCore.Cryptography.Cng.BCryptEncryptFlags dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptDeriveKeyPBKDF2(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hPrf, byte* pbPassword, uint cbPassword, byte* pbSalt, uint cbSalt, ulong cIterations, byte* pbDerivedKey, uint cbDerivedKey, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        internal static extern int BCryptDestroyHash(System.IntPtr hHash);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        internal static extern int BCryptDestroyKey(System.IntPtr hKey);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptDuplicateHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle phNewHash, System.IntPtr pbHashObject, uint cbHashObject, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptEncrypt(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, byte* pbInput, uint cbInput, void* pPaddingInfo, byte* pbIV, uint cbIV, byte* pbOutput, uint cbOutput, out uint pcbResult, Microsoft.AspNetCore.Cryptography.Cng.BCryptEncryptFlags dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptFinishHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, byte* pbOutput, uint cbOutput, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGenerateSymmetricKey(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hAlgorithm, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle phKey, System.IntPtr pbKeyObject, uint cbKeyObject, byte* pbSecret, uint cbSecret, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGenRandom(System.IntPtr hAlgorithm, byte* pbBuffer, uint cbBuffer, Microsoft.AspNetCore.Cryptography.Cng.BCryptGenRandomFlags dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGetProperty(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle hObject, string pszProperty, void* pbOutput, uint cbOutput, out uint pcbResult, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptHashData(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, byte* pbInput, uint cbInput, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptKeyDerivation(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, Microsoft.AspNetCore.Cryptography.Cng.BCryptBufferDesc* pParameterList, byte* pbDerivedKey, uint cbDerivedKey, out uint pcbResult, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptOpenAlgorithmProvider(out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle phAlgorithm, string pszAlgId, string pszImplementation, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptSetProperty(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle hObject, string pszProperty, void* pbInput, uint cbInput, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern bool CryptProtectData(Microsoft.AspNetCore.Cryptography.DATA_BLOB* pDataIn, System.IntPtr szDataDescr, Microsoft.AspNetCore.Cryptography.DATA_BLOB* pOptionalEntropy, System.IntPtr pvReserved, System.IntPtr pPromptStruct, uint dwFlags, out Microsoft.AspNetCore.Cryptography.DATA_BLOB pDataOut);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern bool CryptProtectMemory(System.Runtime.InteropServices.SafeHandle pData, uint cbData, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern bool CryptUnprotectData(Microsoft.AspNetCore.Cryptography.DATA_BLOB* pDataIn, System.IntPtr ppszDataDescr, Microsoft.AspNetCore.Cryptography.DATA_BLOB* pOptionalEntropy, System.IntPtr pvReserved, System.IntPtr pPromptStruct, uint dwFlags, out Microsoft.AspNetCore.Cryptography.DATA_BLOB pDataOut);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public unsafe static extern bool CryptUnprotectMemory(byte* pData, uint cbData, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern bool CryptUnprotectMemory(System.Runtime.InteropServices.SafeHandle pData, uint cbData, uint dwFlags);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+        internal static extern int NCryptCloseProtectionDescriptor(System.IntPtr hDescriptor);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int NCryptCreateProtectionDescriptor(string pwszDescriptorString, uint dwFlags, out Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle phDescriptor);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int NCryptGetProtectionDescriptorInfo(Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle hDescriptor, System.IntPtr pMemPara, uint dwInfoType, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppvInfo);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptProtectSecret(Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle hDescriptor, uint dwFlags, byte* pbData, uint cbData, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbProtectedBlob, out uint pcbProtectedBlob);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptUnprotectSecret(out Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle phDescriptor, uint dwFlags, byte* pbProtectedBlob, uint cbProtectedBlob, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbData, out uint pcbData);
+        [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptUnprotectSecret(System.IntPtr phDescriptor, uint dwFlags, byte* pbProtectedBlob, uint cbProtectedBlob, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbData, out uint pcbData);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void ThrowExceptionForBCryptStatus(int ntstatus) { }
+        public static void ThrowExceptionForLastCrypt32Error() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void ThrowExceptionForNCryptStatus(int ntstatus) { }
+    }
+    internal static partial class WeakReferenceHelpers
+    {
+        public static T GetSharedInstance<T>(ref System.WeakReference<T> weakReference, System.Func<T> factory) where T : class, System.IDisposable { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Cryptography.Cng
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct BCryptBuffer
+    {
+        public uint cbBuffer; // Length of buffer, in bytes
+        public BCryptKeyDerivationBufferType BufferType; // Buffer type
+        public System.IntPtr pvBuffer; // Pointer to buffer
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal unsafe partial struct BCryptBufferDesc
+    {
+        public uint ulVersion; // Version number
+        public uint cBuffers; // Number of buffers
+        public BCryptBuffer* pBuffers; // Pointer to array of buffers
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void Initialize(ref Microsoft.AspNetCore.Cryptography.Cng.BCryptBufferDesc bufferDesc) { }
+    }
+    [System.FlagsAttribute]
+    internal enum BCryptEncryptFlags
+    {
+        BCRYPT_BLOCK_PADDING = 1,
+    }
+    [System.FlagsAttribute]
+    internal enum BCryptGenRandomFlags
+    {
+        BCRYPT_RNG_USE_ENTROPY_IN_BUFFER = 1,
+        BCRYPT_USE_SYSTEM_PREFERRED_RNG = 2,
+    }
+    internal enum BCryptKeyDerivationBufferType
+    {
+        KDF_HASH_ALGORITHM = 0,
+        KDF_SECRET_PREPEND = 1,
+        KDF_SECRET_APPEND = 2,
+        KDF_HMAC_KEY = 3,
+        KDF_TLS_PRF_LABEL = 4,
+        KDF_TLS_PRF_SEED = 5,
+        KDF_SECRET_HANDLE = 6,
+        KDF_TLS_PRF_PROTOCOL = 7,
+        KDF_ALGORITHMID = 8,
+        KDF_PARTYUINFO = 9,
+        KDF_PARTYVINFO = 10,
+        KDF_SUPPPUBINFO = 11,
+        KDF_SUPPPRIVINFO = 12,
+        KDF_LABEL = 13,
+        KDF_CONTEXT = 14,
+        KDF_SALT = 15,
+        KDF_ITERATION_COUNT = 16,
+    }
+    internal static partial class BCryptUtil
+    {
+        public unsafe static void GenRandom(byte* pbBuffer, uint cbBuffer) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal unsafe partial struct BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO
+    {
+        public uint cbSize;
+        public uint dwInfoVersion;
+        public byte* pbNonce;
+        public uint cbNonce;
+        public byte* pbAuthData;
+        public uint cbAuthData;
+        public byte* pbTag;
+        public uint cbTag;
+        public byte* pbMacContext;
+        public uint cbMacContext;
+        public uint cbAAD;
+        public ulong cbData;
+        public uint dwFlags;
+        public static void Init(out Microsoft.AspNetCore.Cryptography.Cng.BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO info) { throw null; }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    internal partial struct BCRYPT_KEY_LENGTHS_STRUCT
+    {
+        // MSDN says these fields represent the key length in bytes.
+        // It's wrong: these key lengths are all actually in bits.
+        internal uint dwMinLength;
+        internal uint dwMaxLength;
+        internal uint dwIncrement;
+        public void EnsureValidKeyLength(uint keyLengthInBits) { }
+    }
+    internal static partial class CachedAlgorithmHandles
+    {
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle AES_CBC { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle AES_GCM { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA1 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA256 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA512 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle PBKDF2 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA1 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA256 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA512 { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SP800_108_CTR_HMAC { get { throw null; } }
+    }
+    [System.FlagsAttribute]
+    internal enum NCryptEncryptFlags
+    {
+        NCRYPT_NO_PADDING_FLAG = 1,
+        NCRYPT_PAD_PKCS1_FLAG = 2,
+        NCRYPT_PAD_OAEP_FLAG = 4,
+        NCRYPT_PAD_PSS_FLAG = 8,
+        NCRYPT_SILENT_FLAG = 64,
+    }
+    internal static partial class OSVersionUtil
+    {
+        public static bool IsWindows() { throw null; }
+        public static bool IsWindows8OrLater() { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Cryptography.Internal
+{
+    internal static partial class Resources
+    {
+        internal static string BCryptAlgorithmHandle_ProviderNotFound { get { throw null; } }
+        internal static string BCRYPT_KEY_LENGTHS_STRUCT_InvalidKeyLength { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string Platform_Windows7Required { get { throw null; } }
+        internal static string Platform_Windows8Required { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string FormatBCryptAlgorithmHandle_ProviderNotFound(object p0) { throw null; }
+        internal static string FormatBCRYPT_KEY_LENGTHS_STRUCT_InvalidKeyLength(object p0, object p1, object p2, object p3) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.Cryptography.SafeHandles
+{
+    internal sealed partial class BCryptAlgorithmHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+    {
+        public Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHash() { throw null; }
+        public unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHmac(byte* pbKey, uint cbKey) { throw null; }
+        public unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle GenerateSymmetricKey(byte* pbSecret, uint cbSecret) { throw null; }
+        public string GetAlgorithmName() { throw null; }
+        public uint GetCipherBlockLength() { throw null; }
+        public uint GetHashBlockLength() { throw null; }
+        public uint GetHashDigestLength() { throw null; }
+        public Microsoft.AspNetCore.Cryptography.Cng.BCRYPT_KEY_LENGTHS_STRUCT GetSupportedKeyLengths() { throw null; }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle OpenAlgorithmHandle(string algorithmId, string implementation = null, bool hmac = false) { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+        public void SetChainingMode(string chainingMode) { }
+    }
+    internal abstract partial class BCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        protected BCryptHandle() : base (default(bool)) { }
+        protected unsafe uint GetProperty(string pszProperty, void* pbOutput, uint cbOutput) { throw null; }
+        protected unsafe void SetProperty(string pszProperty, void* pbInput, uint cbInput) { }
+    }
+    internal sealed partial class BCryptHashHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+    {
+        public Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle DuplicateHash() { throw null; }
+        public unsafe void HashData(byte* pbInput, uint cbInput, byte* pbHashDigest, uint cbHashDigest) { }
+        protected override bool ReleaseHandle() { throw null; }
+        internal void SetAlgorithmProviderHandle(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle algProviderHandle) { }
+    }
+    internal sealed partial class BCryptKeyHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+    {
+        protected override bool ReleaseHandle() { throw null; }
+        internal void SetAlgorithmProviderHandle(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle algProviderHandle) { }
+    }
+    internal partial class LocalAllocHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        protected LocalAllocHandle() : base (default(bool)) { }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class NCryptDescriptorHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        private NCryptDescriptorHandle() : base (default(bool)) { }
+        public string GetProtectionDescriptorRuleString() { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class SafeLibraryHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        private SafeLibraryHandle() : base (default(bool)) { }
+        public bool DoesProcExist(string lpProcName) { throw null; }
+        public void ForbidUnload() { }
+        public string FormatMessage(int messageId) { throw null; }
+        public TDelegate GetProcAddress<TDelegate>(string lpProcName, bool throwIfNotFound = true) where TDelegate : class { throw null; }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle Open(string filename) { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+    internal sealed partial class SecureLocalAllocHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle
+    {
+        public System.IntPtr Length { get { throw null; } }
+        public static Microsoft.AspNetCore.Cryptography.SafeHandles.SecureLocalAllocHandle Allocate(System.IntPtr cb) { throw null; }
+        public Microsoft.AspNetCore.Cryptography.SafeHandles.SecureLocalAllocHandle Duplicate() { throw null; }
+        protected override bool ReleaseHandle() { throw null; }
+    }
+}

+ 2 - 1
src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj

@@ -5,6 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Cryptography.Internal.netstandard2.0.cs" />
-    
+    <Compile Include="Microsoft.AspNetCore.Cryptography.Internal.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
   </ItemGroup>
 </Project>

+ 28 - 0
src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs

@@ -0,0 +1,28 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2
+{
+    internal partial interface IPbkdf2Provider
+    {
+        byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested);
+    }
+
+    internal sealed partial class ManagedPbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public ManagedPbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+
+    internal sealed partial class Win7Pbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public Win7Pbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+
+    internal sealed partial class Win8Pbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public Win8Pbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+}

+ 7 - 2
src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj

@@ -5,10 +5,15 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.Cryptography.KeyDerivation.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal"  />
+    <Compile Include="Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
     <Compile Include="Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal"  />
+    <Compile Include="Microsoft.AspNetCore.Cryptography.KeyDerivation.Manual.cs" />
+    <Compile Include="Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
   </ItemGroup>
 </Project>

+ 11 - 0
src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.netcoreapp.Manual.cs

@@ -0,0 +1,11 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2
+{
+    internal sealed partial class NetCorePbkdf2Provider : Microsoft.AspNetCore.Cryptography.KeyDerivation.PBKDF2.IPbkdf2Provider
+    {
+        public NetCorePbkdf2Provider() { }
+        public byte[] DeriveKey(string password, byte[] salt, Microsoft.AspNetCore.Cryptography.KeyDerivation.KeyDerivationPrf prf, int iterationCount, int numBytesRequested) { throw null; }
+    }
+}

+ 385 - 0
src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.Manual.cs

@@ -0,0 +1,385 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+
+namespace Microsoft.AspNetCore.DataProtection
+{
+    internal static partial class ActivatorExtensions
+    {
+        public static T CreateInstance<T>(this Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, string implementationTypeName) where T : class { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.Internal.IActivator GetActivator(this System.IServiceProvider serviceProvider) { throw null; }
+    }
+    internal static partial class ArraySegmentExtensions
+    {
+        public static byte[] AsStandaloneArray(this System.ArraySegment<byte> arraySegment) { throw null; }
+        public static void Validate<T>(this System.ArraySegment<T> arraySegment) { }
+    }
+    internal partial interface IRegistryPolicyResolver
+    {
+        Microsoft.AspNetCore.DataProtection.RegistryPolicy ResolvePolicy();
+    }
+    internal sealed partial class RegistryPolicyResolver : Microsoft.AspNetCore.DataProtection.IRegistryPolicyResolver
+    {
+        public RegistryPolicyResolver(Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) { }
+        internal RegistryPolicyResolver(Microsoft.Win32.RegistryKey policyRegKey, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) { }
+        public Microsoft.AspNetCore.DataProtection.RegistryPolicy ResolvePolicy() { throw null; }
+    }
+    internal static partial class Error
+    {
+        public static System.InvalidOperationException CertificateXmlEncryptor_CertificateNotFound(string thumbprint) { throw null; }
+        public static System.ArgumentException Common_ArgumentCannotBeNullOrEmpty(string parameterName) { throw null; }
+        public static System.ArgumentException Common_BufferIncorrectlySized(string parameterName, int actualSize, int expectedSize) { throw null; }
+        public static System.Security.Cryptography.CryptographicException Common_EncryptionFailed(System.Exception inner = null) { throw null; }
+        public static System.Security.Cryptography.CryptographicException Common_KeyNotFound(System.Guid id) { throw null; }
+        public static System.Security.Cryptography.CryptographicException Common_KeyRevoked(System.Guid id) { throw null; }
+        public static System.InvalidOperationException Common_PropertyCannotBeNullOrEmpty(string propertyName) { throw null; }
+        public static System.InvalidOperationException Common_PropertyMustBeNonNegative(string propertyName) { throw null; }
+        public static System.ArgumentOutOfRangeException Common_ValueMustBeNonNegative(string paramName) { throw null; }
+        public static System.Security.Cryptography.CryptographicException CryptCommon_GenericError(System.Exception inner = null) { throw null; }
+        public static System.Security.Cryptography.CryptographicException CryptCommon_PayloadInvalid() { throw null; }
+        public static System.Security.Cryptography.CryptographicException DecryptionFailed(System.Exception inner) { throw null; }
+        public static System.Security.Cryptography.CryptographicException ProtectionProvider_BadMagicHeader() { throw null; }
+        public static System.Security.Cryptography.CryptographicException ProtectionProvider_BadVersion() { throw null; }
+        public static System.InvalidOperationException XmlKeyManager_DuplicateKey(System.Guid keyId) { throw null; }
+    }
+    internal static partial class Resources
+    {
+        internal static string AlgorithmAssert_BadBlockSize { get { throw null; } }
+        internal static string AlgorithmAssert_BadDigestSize { get { throw null; } }
+        internal static string AlgorithmAssert_BadKeySize { get { throw null; } }
+        internal static string CertificateXmlEncryptor_CertificateNotFound { get { throw null; } }
+        internal static string Common_ArgumentCannotBeNullOrEmpty { get { throw null; } }
+        internal static string Common_BufferIncorrectlySized { get { throw null; } }
+        internal static string Common_DecryptionFailed { get { throw null; } }
+        internal static string Common_EncryptionFailed { get { throw null; } }
+        internal static string Common_KeyNotFound { get { throw null; } }
+        internal static string Common_KeyRevoked { get { throw null; } }
+        internal static string Common_PropertyCannotBeNullOrEmpty { get { throw null; } }
+        internal static string Common_PropertyMustBeNonNegative { get { throw null; } }
+        internal static string Common_ValueMustBeNonNegative { get { throw null; } }
+        internal static string CryptCommon_GenericError { get { throw null; } }
+        internal static string CryptCommon_PayloadInvalid { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static string EncryptedXmlDecryptor_DoesNotWorkOnCoreClr { get { throw null; } }
+        internal static string FileSystem_EphemeralKeysLocationInContainer { get { throw null; } }
+        internal static string KeyManagementOptions_MinNewKeyLifetimeViolated { get { throw null; } }
+        internal static string KeyRingProvider_NoDefaultKey_AutoGenerateDisabled { get { throw null; } }
+        internal static string LifetimeMustNotBeNegative { get { throw null; } }
+        internal static string Platform_WindowsRequiredForGcm { get { throw null; } }
+        internal static string ProtectionProvider_BadMagicHeader { get { throw null; } }
+        internal static string ProtectionProvider_BadVersion { get { throw null; } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string TypeExtensions_BadCast { get { throw null; } }
+        internal static string XmlKeyManager_DuplicateKey { get { throw null; } }
+        internal static string XmlKeyManager_IXmlRepositoryNotFound { get { throw null; } }
+        internal static string FormatAlgorithmAssert_BadBlockSize(object p0) { throw null; }
+        internal static string FormatAlgorithmAssert_BadDigestSize(object p0) { throw null; }
+        internal static string FormatAlgorithmAssert_BadKeySize(object p0) { throw null; }
+        internal static string FormatCertificateXmlEncryptor_CertificateNotFound(object p0) { throw null; }
+        internal static string FormatCommon_BufferIncorrectlySized(object p0, object p1) { throw null; }
+        internal static string FormatCommon_PropertyCannotBeNullOrEmpty(object p0) { throw null; }
+        internal static string FormatCommon_PropertyMustBeNonNegative(object p0) { throw null; }
+        internal static string FormatFileSystem_EphemeralKeysLocationInContainer(object path) { throw null; }
+        internal static string FormatLifetimeMustNotBeNegative(object p0) { throw null; }
+        internal static string FormatTypeExtensions_BadCast(object p0, object p1) { throw null; }
+        internal static string FormatXmlKeyManager_IXmlRepositoryNotFound(object p0, object p1) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+    internal partial class RegistryPolicy
+    {
+        public RegistryPolicy(Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration configuration, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink> keyEscrowSinks, int? defaultKeyLifetime) { }
+        public int? DefaultKeyLifetime { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AlgorithmConfiguration EncryptorConfiguration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink> KeyEscrowSinks { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class SimpleActivator : Microsoft.AspNetCore.DataProtection.Internal.IActivator
+    {
+        internal static readonly Microsoft.AspNetCore.DataProtection.SimpleActivator DefaultWithoutServices;
+        public SimpleActivator(System.IServiceProvider services) { }
+        public virtual object CreateInstance(System.Type expectedBaseType, string implementationTypeName) { throw null; }
+    }
+    internal partial class TypeForwardingActivator : Microsoft.AspNetCore.DataProtection.SimpleActivator
+    {
+        public TypeForwardingActivator(System.IServiceProvider services) : base (default(System.IServiceProvider)) { }
+        public TypeForwardingActivator(System.IServiceProvider services, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) : base (default(System.IServiceProvider)) { }
+        public override object CreateInstance(System.Type expectedBaseType, string originalTypeName) { throw null; }
+        internal object CreateInstance(System.Type expectedBaseType, string originalTypeName, out bool forwarded) { throw null; }
+        protected string RemoveVersionFromAssemblyName(string forwardedTypeName) { throw null; }
+    }
+    internal static partial class XmlConstants
+    {
+        internal static readonly System.Xml.Linq.XName DecryptorTypeAttributeName;
+        internal static readonly System.Xml.Linq.XName DeserializerTypeAttributeName;
+        internal static readonly System.Xml.Linq.XName EncryptedSecretElementName;
+        internal static readonly System.Xml.Linq.XName RequiresEncryptionAttributeName;
+    }
+    internal static partial class XmlExtensions
+    {
+        public static System.Xml.Linq.XElement WithoutChildNodes(this System.Xml.Linq.XElement element) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Internal
+{
+    internal partial class KeyManagementOptionsSetup : Microsoft.Extensions.Options.IConfigureOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions>
+    {
+        public KeyManagementOptionsSetup() { }
+        public KeyManagementOptionsSetup(Microsoft.AspNetCore.DataProtection.IRegistryPolicyResolver registryPolicyResolver) { }
+        public KeyManagementOptionsSetup(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public KeyManagementOptionsSetup(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.IRegistryPolicyResolver registryPolicyResolver) { }
+        public void Configure(Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions options) { }
+    }
+    internal static partial class ContainerUtils
+    {
+        public static bool IsContainer { get { throw null; } }
+        internal static bool IsDirectoryMounted(System.IO.DirectoryInfo directory, System.Collections.Generic.IEnumerable<string> fstab) { throw null; }
+        public static bool IsVolumeMountedFolder(System.IO.DirectoryInfo directory) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption
+{
+    internal partial interface IOptimizedAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor
+    {
+        byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData, uint preBufferSize, uint postBufferSize);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel
+{
+    public sealed partial class ManagedAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor
+    {
+        internal Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.ManagedAuthenticatedEncryptorConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.ISecret MasterKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public sealed partial class CngCbcAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor
+    {
+        internal Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngCbcAuthenticatedEncryptorConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.ISecret MasterKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    public sealed partial class CngGcmAuthenticatedEncryptorDescriptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor
+    {
+        internal Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.CngGcmAuthenticatedEncryptorConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.ISecret MasterKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal static partial class SecretExtensions
+    {
+        public static System.Xml.Linq.XElement ToMasterKeyElement(this Microsoft.AspNetCore.DataProtection.ISecret secret) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.Secret ToSecret(this string base64String) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Cng
+{
+    internal sealed partial class GcmAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.Cng.Internal.CngAuthenticatedEncryptorBase
+    {
+        public GcmAuthenticatedEncryptor(Microsoft.AspNetCore.DataProtection.Secret keyDerivationKey, Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle symmetricAlgorithmHandle, uint symmetricAlgorithmKeySizeInBytes, Microsoft.AspNetCore.DataProtection.Cng.IBCryptGenRandom genRandom = null) { }
+        protected unsafe override byte[] DecryptImpl(byte* pbCiphertext, uint cbCiphertext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData) { throw null; }
+        public override void Dispose() { }
+        protected unsafe override byte[] EncryptImpl(byte* pbPlaintext, uint cbPlaintext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData, uint cbPreBuffer, uint cbPostBuffer) { throw null; }
+    }
+    internal sealed partial class CbcAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.Cng.Internal.CngAuthenticatedEncryptorBase
+    {
+        public CbcAuthenticatedEncryptor(Microsoft.AspNetCore.DataProtection.Secret keyDerivationKey, Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle symmetricAlgorithmHandle, uint symmetricAlgorithmKeySizeInBytes, Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hmacAlgorithmHandle, Microsoft.AspNetCore.DataProtection.Cng.IBCryptGenRandom genRandom = null) { }
+        protected unsafe override byte[] DecryptImpl(byte* pbCiphertext, uint cbCiphertext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData) { throw null; }
+        public override void Dispose() { }
+        protected unsafe override byte[] EncryptImpl(byte* pbPlaintext, uint cbPlaintext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData, uint cbPreBuffer, uint cbPostBuffer) { throw null; }
+    }
+    internal unsafe partial interface IBCryptGenRandom
+    {
+        void GenRandom(byte* pbBuffer, uint cbBuffer);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Cng.Internal
+{
+    internal unsafe abstract partial class CngAuthenticatedEncryptorBase : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IOptimizedAuthenticatedEncryptor, System.IDisposable
+    {
+        protected CngAuthenticatedEncryptorBase() { }
+        public byte[] Decrypt(System.ArraySegment<byte> ciphertext, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+        protected unsafe abstract byte[] DecryptImpl(byte* pbCiphertext, uint cbCiphertext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData);
+        public abstract void Dispose();
+        public byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+        public byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData, uint preBufferSize, uint postBufferSize) { throw null; }
+        protected unsafe abstract byte[] EncryptImpl(byte* pbPlaintext, uint cbPlaintext, byte* pbAdditionalAuthenticatedData, uint cbAdditionalAuthenticatedData, uint cbPreBuffer, uint cbPostBuffer);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.KeyManagement
+{
+    internal static partial class KeyEscrowServiceProviderExtensions
+    {
+        public static Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyEscrowSink GetKeyEscrowSink(this System.IServiceProvider services) { throw null; }
+    }
+    internal sealed partial class DefaultKeyResolver : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver
+    {
+        public DefaultKeyResolver(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions) { }
+        public DefaultKeyResolver(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution ResolveDefaultKeyPolicy(System.DateTimeOffset now, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKey> allKeys) { throw null; }
+    }
+    internal sealed partial class DeferredKey : Microsoft.AspNetCore.DataProtection.KeyManagement.KeyBase
+    {
+        public DeferredKey(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager keyManager, System.Xml.Linq.XElement keyElement, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory> encryptorFactories) : base (default(System.Guid), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.Lazy<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>), default(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory>)) { }
+    }
+    internal sealed partial class Key : Microsoft.AspNetCore.DataProtection.KeyManagement.KeyBase
+    {
+        public Key(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate, Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor descriptor, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory> encryptorFactories) : base (default(System.Guid), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.DateTimeOffset), default(System.Lazy<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>), default(System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory>)) { }
+    }
+    internal abstract partial class KeyBase : Microsoft.AspNetCore.DataProtection.KeyManagement.IKey
+    {
+        public KeyBase(System.Guid keyId, System.DateTimeOffset creationDate, System.DateTimeOffset activationDate, System.DateTimeOffset expirationDate, System.Lazy<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor> lazyDescriptor, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptorFactory> encryptorFactories) { }
+        public System.DateTimeOffset ActivationDate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.DateTimeOffset CreationDate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor Descriptor { get { throw null; } }
+        public System.DateTimeOffset ExpirationDate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public bool IsRevoked { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Guid KeyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor CreateEncryptor() { throw null; }
+        internal void SetRevoked() { }
+    }
+    internal sealed partial class KeyRing : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing
+    {
+        public KeyRing(Microsoft.AspNetCore.DataProtection.KeyManagement.IKey defaultKey, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKey> allKeys) { }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor DefaultAuthenticatedEncryptor { get { throw null; } }
+        public System.Guid DefaultKeyId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor GetAuthenticatedEncryptorByKeyId(System.Guid keyId, out bool isRevoked) { throw null; }
+    }
+    internal sealed partial class KeyRingProvider : Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRingProvider
+    {
+        public KeyRingProvider(Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager keyManager, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver defaultKeyResolver) { }
+        public KeyRingProvider(Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager keyManager, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IDefaultKeyResolver defaultKeyResolver, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        internal System.DateTime AutoRefreshWindowEnd { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider CacheableKeyRingProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing GetCurrentKeyRing() { throw null; }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing GetCurrentKeyRingCore(System.DateTime utcNow, bool forceRefresh = false) { throw null; }
+        internal bool InAutoRefreshWindow() { throw null; }
+        Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider.GetCacheableKeyRing(System.DateTimeOffset now) { throw null; }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing RefreshCurrentKeyRing() { throw null; }
+    }
+    internal sealed partial class KeyRingBasedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.IPersistedDataProtector
+    {
+        public KeyRingBasedDataProtector(Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRingProvider keyRingProvider, Microsoft.Extensions.Logging.ILogger logger, string[] originalPurposes, string newPurpose) { }
+        internal string[] Purposes { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.DataProtection.IDataProtector CreateProtector(string purpose) { throw null; }
+        public byte[] DangerousUnprotect(byte[] protectedData, bool ignoreRevocationErrors, out bool requiresMigration, out bool wasRevoked) { throw null; }
+        public byte[] Protect(byte[] plaintext) { throw null; }
+        public byte[] Unprotect(byte[] protectedData) { throw null; }
+    }
+    public sealed partial class XmlKeyManager : Microsoft.AspNetCore.DataProtection.KeyManagement.IKeyManager, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager
+    {
+        internal static readonly System.Xml.Linq.XName ActivationDateElementName;
+        internal static readonly System.Xml.Linq.XName CreationDateElementName;
+        internal static readonly System.Xml.Linq.XName DescriptorElementName;
+        internal static readonly System.Xml.Linq.XName DeserializerTypeAttributeName;
+        internal static readonly System.Xml.Linq.XName ExpirationDateElementName;
+        internal static readonly System.Xml.Linq.XName IdAttributeName;
+        internal static readonly System.Xml.Linq.XName KeyElementName;
+        internal static readonly System.Xml.Linq.XName ReasonElementName;
+        internal static readonly System.Xml.Linq.XName RevocationDateElementName;
+        internal static readonly System.Xml.Linq.XName RevocationElementName;
+        internal static readonly System.Xml.Linq.XName VersionAttributeName;
+        internal XmlKeyManager(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IInternalXmlKeyManager internalXmlKeyManager) { }
+        internal XmlKeyManager(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.DataProtection.KeyManagement.KeyManagementOptions> keyManagementOptions, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.Repositories.IDefaultKeyStorageDirectories keyStorageDirectories) { }
+        internal Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor KeyEncryptor { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository KeyRepository { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal System.Collections.Generic.KeyValuePair<Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository, Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor> GetFallbackKeyRepositoryEncryptorPair() { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.KeyManagement.Internal
+{
+    public sealed partial class CacheableKeyRing
+    {
+        internal CacheableKeyRing(System.Threading.CancellationToken expirationToken, System.DateTimeOffset expirationTime, Microsoft.AspNetCore.DataProtection.KeyManagement.IKey defaultKey, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.DataProtection.KeyManagement.IKey> allKeys) { }
+        internal CacheableKeyRing(System.Threading.CancellationToken expirationToken, System.DateTimeOffset expirationTime, Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing keyRing) { }
+        internal System.DateTime ExpirationTimeUtc { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IKeyRing KeyRing { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        internal static bool IsValid(Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing keyRing, System.DateTime utcNow) { throw null; }
+        internal Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.CacheableKeyRing WithTemporaryExtendedLifetime(System.DateTimeOffset now) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Managed
+{
+    internal sealed partial class ManagedAuthenticatedEncryptor : Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.IAuthenticatedEncryptor, System.IDisposable
+    {
+        public ManagedAuthenticatedEncryptor(Microsoft.AspNetCore.DataProtection.Secret keyDerivationKey, System.Func<System.Security.Cryptography.SymmetricAlgorithm> symmetricAlgorithmFactory, int symmetricAlgorithmKeySizeInBytes, System.Func<System.Security.Cryptography.KeyedHashAlgorithm> validationAlgorithmFactory, Microsoft.AspNetCore.DataProtection.Managed.IManagedGenRandom genRandom = null) { }
+        public byte[] Decrypt(System.ArraySegment<byte> protectedPayload, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+        public void Dispose() { }
+        public byte[] Encrypt(System.ArraySegment<byte> plaintext, System.ArraySegment<byte> additionalAuthenticatedData) { throw null; }
+    }
+    internal partial interface IManagedGenRandom
+    {
+        byte[] GenRandom(int numBytes);
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Repositories
+{
+    internal partial class EphemeralXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository
+    {
+        public EphemeralXmlRepository(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+        public virtual System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
+        public virtual void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
+    }
+    internal partial interface IDefaultKeyStorageDirectories
+    {
+        System.IO.DirectoryInfo GetKeyStorageDirectory();
+        System.IO.DirectoryInfo GetKeyStorageDirectoryForAzureWebSites();
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.SP800_108
+{
+    internal unsafe partial interface ISP800_108_CTR_HMACSHA512Provider : System.IDisposable
+    {
+        void DeriveKey(byte* pbLabel, uint cbLabel, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey);
+    }
+    internal static partial class ManagedSP800_108_CTR_HMACSHA512
+    {
+        public static void DeriveKeys(byte[] kdk, System.ArraySegment<byte> label, System.ArraySegment<byte> context, System.Func<byte[], System.Security.Cryptography.HashAlgorithm> prfFactory, System.ArraySegment<byte> output) { }
+        public static void DeriveKeysWithContextHeader(byte[] kdk, System.ArraySegment<byte> label, byte[] contextHeader, System.ArraySegment<byte> context, System.Func<byte[], System.Security.Cryptography.HashAlgorithm> prfFactory, System.ArraySegment<byte> output) { }
+    }
+    internal static partial class SP800_108_CTR_HMACSHA512Extensions
+    {
+        public unsafe static void DeriveKeyWithContextHeader(this Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider provider, byte* pbLabel, uint cbLabel, byte[] contextHeader, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey) { }
+    }
+    internal static partial class SP800_108_CTR_HMACSHA512Util
+    {
+        public static Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider CreateEmptyProvider() { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider CreateProvider(Microsoft.AspNetCore.DataProtection.Secret kdk) { throw null; }
+        public unsafe static Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider CreateProvider(byte* pbKdk, uint cbKdk) { throw null; }
+    }
+    internal sealed partial class Win7SP800_108_CTR_HMACSHA512Provider : Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider, System.IDisposable
+    {
+        public unsafe Win7SP800_108_CTR_HMACSHA512Provider(byte* pbKdk, uint cbKdk) { }
+        public unsafe void DeriveKey(byte* pbLabel, uint cbLabel, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey) { }
+        public void Dispose() { }
+    }
+    internal sealed partial class Win8SP800_108_CTR_HMACSHA512Provider : Microsoft.AspNetCore.DataProtection.SP800_108.ISP800_108_CTR_HMACSHA512Provider, System.IDisposable
+    {
+        public unsafe Win8SP800_108_CTR_HMACSHA512Provider(byte* pbKdk, uint cbKdk) { }
+        public unsafe void DeriveKey(byte* pbLabel, uint cbLabel, byte* pbContext, uint cbContext, byte* pbDerivedKey, uint cbDerivedKey) { }
+        public void Dispose() { }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.XmlEncryption
+{
+    public sealed partial class CertificateXmlEncryptor : Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor, Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor
+    {
+        System.Security.Cryptography.Xml.EncryptedData Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor.PerformEncryption(System.Security.Cryptography.Xml.EncryptedXml encryptedXml, System.Xml.XmlElement elementToEncrypt) { throw null; }
+        internal CertificateXmlEncryptor(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.XmlEncryption.IInternalCertificateXmlEncryptor encryptor) { }
+    }
+    internal partial interface IInternalCertificateXmlEncryptor
+    {
+        System.Security.Cryptography.Xml.EncryptedData PerformEncryption(System.Security.Cryptography.Xml.EncryptedXml encryptedXml, System.Xml.XmlElement elementToEncrypt);
+    }
+    internal partial interface IInternalEncryptedXmlDecryptor
+    {
+        void PerformPreDecryptionSetup(System.Security.Cryptography.Xml.EncryptedXml encryptedXml);
+    }
+    internal static partial class XmlEncryptionExtensions
+    {
+        public static System.Xml.Linq.XElement DecryptElement(this System.Xml.Linq.XElement element, Microsoft.AspNetCore.DataProtection.Internal.IActivator activator) { throw null; }
+        public static System.Xml.Linq.XElement EncryptIfNecessary(this Microsoft.AspNetCore.DataProtection.XmlEncryption.IXmlEncryptor encryptor, System.Xml.Linq.XElement element) { throw null; }
+        public static Microsoft.AspNetCore.DataProtection.Secret ToSecret(this System.Xml.Linq.XElement element) { throw null; }
+        public static System.Xml.Linq.XElement ToXElement(this Microsoft.AspNetCore.DataProtection.Secret secret) { throw null; }
+    }
+    internal partial class XmlKeyDecryptionOptions
+    {
+        public XmlKeyDecryptionOptions() { }
+        public int KeyDecryptionCertificateCount { get { throw null; } }
+        public void AddKeyDecryptionCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { }
+        public bool TryGetKeyDecryptionCertificates(System.Security.Cryptography.X509Certificates.X509Certificate2 certInfo, out System.Collections.Generic.IReadOnlyList<System.Security.Cryptography.X509Certificates.X509Certificate2> keyDecryptionCerts) { throw null; }
+    }
+}

+ 21 - 17
src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj

@@ -5,25 +5,29 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Win32.Registry"  />
-    <Reference Include="System.Security.Cryptography.Xml"  />
-    <Reference Include="System.Security.Principal.Windows"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Win32.Registry" />
+    <Reference Include="System.Security.Cryptography.Xml" />
+    <Reference Include="System.Security.Principal.Windows" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal"  />
-    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Win32.Registry"  />
-    <Reference Include="System.Security.Cryptography.Xml"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Win32.Registry" />
+    <Reference Include="System.Security.Cryptography.Xml" />
   </ItemGroup>
 </Project>

+ 0 - 11
src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj

@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.1</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.EntityFrameworkCore"  />
-  </ItemGroup>
-</Project>

+ 0 - 30
src/DataProtection/EntityFrameworkCore/ref/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.netstandard2.1.cs

@@ -1,30 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class EntityFrameworkCoreDataProtectionExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToDbContext<TContext>(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder) where TContext : Microsoft.EntityFrameworkCore.DbContext, Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.IDataProtectionKeyContext { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore
-{
-    public partial class DataProtectionKey
-    {
-        public DataProtectionKey() { }
-        public string FriendlyName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public int Id { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public string Xml { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-    }
-    public partial class EntityFrameworkCoreXmlRepository<TContext> : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository where TContext : Microsoft.EntityFrameworkCore.DbContext, Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.IDataProtectionKeyContext
-    {
-        public EntityFrameworkCoreXmlRepository(System.IServiceProvider services, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
-        public virtual System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
-        public void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
-    }
-    public partial interface IDataProtectionKeyContext
-    {
-        Microsoft.EntityFrameworkCore.DbSet<Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey> DataProtectionKeys { get; }
-    }
-}

+ 4 - 0
src/DataProtection/EntityFrameworkCore/test/Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj

@@ -2,11 +2,15 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" />
     <Reference Include="Microsoft.EntityFrameworkCore.InMemory" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 34 - 0
src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs

@@ -0,0 +1,34 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.DataProtection
+{
+    public static partial class DataProtectionProvider
+    {
+        internal static Microsoft.AspNetCore.DataProtection.IDataProtectionProvider CreateProvider(System.IO.DirectoryInfo keyDirectory, System.Action<Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder> setupAction, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; }
+    }
+    internal sealed partial class TimeLimitedDataProtector : Microsoft.AspNetCore.DataProtection.IDataProtectionProvider, Microsoft.AspNetCore.DataProtection.IDataProtector, Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector
+    {
+        public TimeLimitedDataProtector(Microsoft.AspNetCore.DataProtection.IDataProtector innerProtector) { }
+        public Microsoft.AspNetCore.DataProtection.ITimeLimitedDataProtector CreateProtector(string purpose) { throw null; }
+        Microsoft.AspNetCore.DataProtection.IDataProtector Microsoft.AspNetCore.DataProtection.IDataProtectionProvider.CreateProtector(string purpose) { throw null; }
+        byte[] Microsoft.AspNetCore.DataProtection.IDataProtector.Protect(byte[] plaintext) { throw null; }
+        byte[] Microsoft.AspNetCore.DataProtection.IDataProtector.Unprotect(byte[] protectedData) { throw null; }
+        public byte[] Protect(byte[] plaintext, System.DateTimeOffset expiration) { throw null; }
+        public byte[] Unprotect(byte[] protectedData, out System.DateTimeOffset expiration) { throw null; }
+        internal byte[] UnprotectCore(byte[] protectedData, System.DateTimeOffset now, out System.DateTimeOffset expiration) { throw null; }
+    }
+}
+namespace Microsoft.AspNetCore.DataProtection.Extensions
+{
+    internal static partial class Resources
+    {
+        internal static string CryptCommon_GenericError { get { throw null; } }
+        internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+        internal static string TimeLimitedDataProtector_PayloadExpired { get { throw null; } }
+        internal static string TimeLimitedDataProtector_PayloadInvalid { get { throw null; } }
+        internal static string FormatTimeLimitedDataProtector_PayloadExpired(object p0) { throw null; }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+    }
+}

+ 8 - 4
src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj

@@ -5,12 +5,16 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
   </ItemGroup>
 <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
+    <Compile Include="Microsoft.AspNetCore.DataProtection.Extensions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
   </ItemGroup>
 </Project>

+ 0 - 11
src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj

@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs" />
-    <Reference Include="Microsoft.AspNetCore.DataProtection"  />
-    <Reference Include="StackExchange.Redis"  />
-  </ItemGroup>
-</Project>

+ 0 - 21
src/DataProtection/StackExchangeRedis/ref/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.netstandard2.0.cs

@@ -1,21 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.DataProtection
-{
-    public static partial class StackExchangeRedisDataProtectionBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToStackExchangeRedis(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, StackExchange.Redis.IConnectionMultiplexer connectionMultiplexer) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToStackExchangeRedis(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, StackExchange.Redis.IConnectionMultiplexer connectionMultiplexer, StackExchange.Redis.RedisKey key) { throw null; }
-        public static Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder PersistKeysToStackExchangeRedis(this Microsoft.AspNetCore.DataProtection.IDataProtectionBuilder builder, System.Func<StackExchange.Redis.IDatabase> databaseFactory, StackExchange.Redis.RedisKey key) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.DataProtection.StackExchangeRedis
-{
-    public partial class RedisXmlRepository : Microsoft.AspNetCore.DataProtection.Repositories.IXmlRepository
-    {
-        public RedisXmlRepository(System.Func<StackExchange.Redis.IDatabase> databaseFactory, StackExchange.Redis.RedisKey key) { }
-        public System.Collections.Generic.IReadOnlyCollection<System.Xml.Linq.XElement> GetAllElements() { throw null; }
-        public void StoreElement(System.Xml.Linq.XElement element, string friendlyName) { }
-    }
-}

+ 4 - 0
src/DataProtection/StackExchangeRedis/test/Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj

@@ -2,6 +2,8 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -16,6 +18,8 @@
     <Reference Include="Microsoft.Extensions.Configuration.Json" />
     <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 4 - 0
src/DataProtection/samples/AzureBlob/AzureBlob.csproj

@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <OutputType>exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -11,6 +13,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 4 - 0
src/DataProtection/samples/AzureKeyVault/AzureKeyVault.csproj

@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <OutputType>exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -12,6 +14,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 4 - 0
src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj

@@ -3,6 +3,8 @@
   <PropertyGroup>
     <OutputType>exe</OutputType>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -11,6 +13,8 @@
     <Reference Include="Microsoft.EntityFrameworkCore.SqlServer" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
   </ItemGroup>
 
 </Project>

+ 4 - 0
src/DataProtection/samples/Redis/Redis.csproj

@@ -3,6 +3,8 @@
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
     <OutputType>exe</OutputType>
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <CompileUsingReferenceAssemblies>false</CompileUsingReferenceAssemblies>
   </PropertyGroup>
 
   <ItemGroup>
@@ -10,6 +12,8 @@
     <Reference Include="Microsoft.Extensions.DependencyInjection" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
+    <Reference Include="Microsoft.AspNetCore.DataProtection" />
   </ItemGroup>
 
 </Project>

+ 18 - 18
src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj

@@ -5,23 +5,23 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Diagnostics"  />
-    <Reference Include="Microsoft.AspNetCore.HostFiltering"  />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.AspNetCore.Routing"  />
-    <Reference Include="Microsoft.AspNetCore.Server.IIS"  />
-    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration"  />
-    <Reference Include="Microsoft.AspNetCore.Server.Kestrel"  />
-    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables"  />
-    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Json"  />
-    <Reference Include="Microsoft.Extensions.Configuration.CommandLine"  />
-    <Reference Include="Microsoft.Extensions.Configuration.UserSecrets"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Logging.Configuration"  />
-    <Reference Include="Microsoft.Extensions.Logging.Console"  />
-    <Reference Include="Microsoft.Extensions.Logging.Debug"  />
-    <Reference Include="Microsoft.Extensions.Logging.EventSource"  />
+    <Reference Include="Microsoft.AspNetCore.Diagnostics" />
+    <Reference Include="Microsoft.AspNetCore.HostFiltering" />
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
+    <Reference Include="Microsoft.AspNetCore.Routing" />
+    <Reference Include="Microsoft.AspNetCore.Server.IIS" />
+    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
+    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions" />
+    <Reference Include="Microsoft.Extensions.Configuration.Json" />
+    <Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
+    <Reference Include="Microsoft.Extensions.Configuration.UserSecrets" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Logging.Configuration" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <Reference Include="Microsoft.Extensions.Logging.Debug" />
+    <Reference Include="Microsoft.Extensions.Logging.EventSource" />
   </ItemGroup>
 </Project>

+ 0 - 11
src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.csproj

@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>netstandard2.0</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <Compile Include="Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs" />
-    <Reference Include="Microsoft.CSharp"  />
-    <Reference Include="Newtonsoft.Json"  />
-  </ItemGroup>
-</Project>

+ 0 - 309
src/Features/JsonPatch/ref/Microsoft.AspNetCore.JsonPatch.netstandard2.0.cs

@@ -1,309 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.JsonPatch
-{
-    public partial interface IJsonPatchDocument
-    {
-        Newtonsoft.Json.Serialization.IContractResolver ContractResolver { get; set; }
-        System.Collections.Generic.IList<Microsoft.AspNetCore.JsonPatch.Operations.Operation> GetOperations();
-    }
-    [Newtonsoft.Json.JsonConverterAttribute(typeof(Microsoft.AspNetCore.JsonPatch.Converters.JsonPatchDocumentConverter))]
-    public partial class JsonPatchDocument : Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument
-    {
-        public JsonPatchDocument() { }
-        public JsonPatchDocument(System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation> operations, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { }
-        [Newtonsoft.Json.JsonIgnoreAttribute]
-        public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation> Operations { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Add(string path, object value) { throw null; }
-        public void ApplyTo(object objectToApplyTo) { }
-        public void ApplyTo(object objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-        public void ApplyTo(object objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public void ApplyTo(object objectToApplyTo, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Copy(string from, string path) { throw null; }
-        System.Collections.Generic.IList<Microsoft.AspNetCore.JsonPatch.Operations.Operation> Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument.GetOperations() { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Move(string from, string path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Remove(string path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Replace(string path, object value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument Test(string path, object value) { throw null; }
-    }
-    [Newtonsoft.Json.JsonConverterAttribute(typeof(Microsoft.AspNetCore.JsonPatch.Converters.TypedJsonPatchDocumentConverter))]
-    public partial class JsonPatchDocument<TModel> : Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument where TModel : class
-    {
-        public JsonPatchDocument() { }
-        public JsonPatchDocument(System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation<TModel>> operations, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { }
-        [Newtonsoft.Json.JsonIgnoreAttribute]
-        public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public System.Collections.Generic.List<Microsoft.AspNetCore.JsonPatch.Operations.Operation<TModel>> Operations { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Add<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Add<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Add<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path, TProp value) { throw null; }
-        public void ApplyTo(TModel objectToApplyTo) { }
-        public void ApplyTo(TModel objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-        public void ApplyTo(TModel objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public void ApplyTo(TModel objectToApplyTo, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Copy<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        System.Collections.Generic.IList<Microsoft.AspNetCore.JsonPatch.Operations.Operation> Microsoft.AspNetCore.JsonPatch.IJsonPatchDocument.GetOperations() { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> from, int positionFrom, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int positionTo) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Move<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> from, System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Remove<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Remove<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Remove<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Replace<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Replace<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Replace<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Test<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Test<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, System.Collections.Generic.IList<TProp>>> path, TProp value, int position) { throw null; }
-        public Microsoft.AspNetCore.JsonPatch.JsonPatchDocument<TModel> Test<TProp>(System.Linq.Expressions.Expression<System.Func<TModel, TProp>> path, TProp value) { throw null; }
-    }
-    public partial class JsonPatchError
-    {
-        public JsonPatchError(object affectedObject, Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, string errorMessage) { }
-        public object AffectedObject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public string ErrorMessage { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.Operations.Operation Operation { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-    }
-    public partial class JsonPatchProperty
-    {
-        public JsonPatchProperty(Newtonsoft.Json.Serialization.JsonProperty property, object parent) { }
-        public object Parent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public Newtonsoft.Json.Serialization.JsonProperty Property { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Adapters
-{
-    public partial class AdapterFactory : Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory
-    {
-        public AdapterFactory() { }
-        public virtual Microsoft.AspNetCore.JsonPatch.Internal.IAdapter Create(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { throw null; }
-    }
-    public partial interface IAdapterFactory
-    {
-        Microsoft.AspNetCore.JsonPatch.Internal.IAdapter Create(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver);
-    }
-    public partial interface IObjectAdapter
-    {
-        void Add(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Copy(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Move(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Remove(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-        void Replace(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-    }
-    public partial interface IObjectAdapterWithTest : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter
-    {
-        void Test(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
-    }
-    public partial class ObjectAdapter : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapterWithTest
-    {
-        public ObjectAdapter(Newtonsoft.Json.Serialization.IContractResolver contractResolver, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction) { }
-        public ObjectAdapter(Newtonsoft.Json.Serialization.IContractResolver contractResolver, System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> logErrorAction, Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory adapterFactory) { }
-        public Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory AdapterFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Newtonsoft.Json.Serialization.IContractResolver ContractResolver { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public System.Action<Microsoft.AspNetCore.JsonPatch.JsonPatchError> LogErrorAction { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public void Add(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Copy(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Move(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Remove(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Replace(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-        public void Test(Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo) { }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Converters
-{
-    public partial class JsonPatchDocumentConverter : Newtonsoft.Json.JsonConverter
-    {
-        public JsonPatchDocumentConverter() { }
-        public override bool CanConvert(System.Type objectType) { throw null; }
-        public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { throw null; }
-        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { }
-    }
-    public partial class TypedJsonPatchDocumentConverter : Microsoft.AspNetCore.JsonPatch.Converters.JsonPatchDocumentConverter
-    {
-        public TypedJsonPatchDocumentConverter() { }
-        public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Exceptions
-{
-    public partial class JsonPatchException : System.Exception
-    {
-        public JsonPatchException() { }
-        public JsonPatchException(Microsoft.AspNetCore.JsonPatch.JsonPatchError jsonPatchError) { }
-        public JsonPatchException(Microsoft.AspNetCore.JsonPatch.JsonPatchError jsonPatchError, System.Exception innerException) { }
-        public JsonPatchException(string message, System.Exception innerException) { }
-        public object AffectedObject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Microsoft.AspNetCore.JsonPatch.Operations.Operation FailedOperation { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Helpers
-{
-    public partial class GetValueResult
-    {
-        public GetValueResult(object propertyValue, bool hasError) { }
-        public bool HasError { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public object PropertyValue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Internal
-{
-    public partial class ConversionResult
-    {
-        public ConversionResult(bool canBeConverted, object convertedInstance) { }
-        public bool CanBeConverted { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public object ConvertedInstance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-    }
-    public static partial class ConversionResultProvider
-    {
-        public static Microsoft.AspNetCore.JsonPatch.Internal.ConversionResult ConvertTo(object value, System.Type typeToConvertTo) { throw null; }
-        public static Microsoft.AspNetCore.JsonPatch.Internal.ConversionResult CopyTo(object value, System.Type typeToConvertTo) { throw null; }
-    }
-    public partial class DictionaryAdapter<TKey, TValue> : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public DictionaryAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertKey(string key, out TKey convertedKey, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object value, out TValue convertedValue, out string errorMessage) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage) { throw null; }
-    }
-    public partial class DynamicObjectAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public DynamicObjectAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object value, System.Type propertyType, out object convertedValue) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected virtual bool TryGetDynamicObjectProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, out object value, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TrySetDynamicObjectProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage) { throw null; }
-    }
-    public partial interface IAdapter
-    {
-        bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage);
-        bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage);
-        bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage);
-        bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage);
-        bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage);
-        bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object nextTarget, out string errorMessage);
-    }
-    public partial class ListAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public ListAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object originalValue, System.Type listTypeArgument, string segment, out object convertedValue, out string errorMessage) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected virtual bool TryGetListTypeArgument(System.Collections.IList list, out System.Type listTypeArgument, out string errorMessage) { throw null; }
-        protected virtual bool TryGetPositionInfo(System.Collections.IList list, string segment, Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.OperationType operationType, out Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.PositionInfo positionInfo, out string errorMessage) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected enum OperationType
-        {
-            Add = 0,
-            Remove = 1,
-            Get = 2,
-            Replace = 3,
-        }
-        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-        protected readonly partial struct PositionInfo
-        {
-            private readonly int _dummyPrimitive;
-            public PositionInfo(Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.PositionType type, int index) { throw null; }
-            public int Index { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-            public Microsoft.AspNetCore.JsonPatch.Internal.ListAdapter.PositionType Type { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        }
-        protected enum PositionType
-        {
-            Index = 0,
-            EndOfList = 1,
-            Invalid = 2,
-            OutOfBounds = 3,
-        }
-    }
-    public partial class ObjectVisitor
-    {
-        public ObjectVisitor(Microsoft.AspNetCore.JsonPatch.Internal.ParsedPath path, Newtonsoft.Json.Serialization.IContractResolver contractResolver) { }
-        public ObjectVisitor(Microsoft.AspNetCore.JsonPatch.Internal.ParsedPath path, Newtonsoft.Json.Serialization.IContractResolver contractResolver, Microsoft.AspNetCore.JsonPatch.Adapters.IAdapterFactory adapterFactory) { }
-        public bool TryVisit(ref object target, out Microsoft.AspNetCore.JsonPatch.Internal.IAdapter adapter, out string errorMessage) { throw null; }
-    }
-    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
-    public readonly partial struct ParsedPath
-    {
-        private readonly object _dummy;
-        public ParsedPath(string path) { throw null; }
-        public string LastSegment { get { throw null; } }
-        public System.Collections.Generic.IReadOnlyList<string> Segments { get { throw null; } }
-    }
-    public partial class PocoAdapter : Microsoft.AspNetCore.JsonPatch.Internal.IAdapter
-    {
-        public PocoAdapter() { }
-        public virtual bool TryAdd(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        protected virtual bool TryConvertValue(object value, System.Type propertyType, out object convertedValue) { throw null; }
-        public virtual bool TryGet(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-        protected virtual bool TryGetJsonProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, out Newtonsoft.Json.Serialization.JsonProperty jsonProperty) { throw null; }
-        public virtual bool TryRemove(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out string errorMessage) { throw null; }
-        public virtual bool TryReplace(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTest(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, object value, out string errorMessage) { throw null; }
-        public virtual bool TryTraverse(object target, string segment, Newtonsoft.Json.Serialization.IContractResolver contractResolver, out object value, out string errorMessage) { throw null; }
-    }
-}
-namespace Microsoft.AspNetCore.JsonPatch.Operations
-{
-    public partial class Operation : Microsoft.AspNetCore.JsonPatch.Operations.OperationBase
-    {
-        public Operation() { }
-        public Operation(string op, string path, string from) { }
-        public Operation(string op, string path, string from, object value) { }
-        [Newtonsoft.Json.JsonPropertyAttribute("value")]
-        public object value { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public void Apply(object objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-        public bool ShouldSerializevalue() { throw null; }
-    }
-    public partial class OperationBase
-    {
-        public OperationBase() { }
-        public OperationBase(string op, string path, string from) { }
-        [Newtonsoft.Json.JsonPropertyAttribute("from")]
-        public string from { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        [Newtonsoft.Json.JsonPropertyAttribute("op")]
-        public string op { get { throw null; } set { } }
-        [Newtonsoft.Json.JsonIgnoreAttribute]
-        public Microsoft.AspNetCore.JsonPatch.Operations.OperationType OperationType { get { throw null; } }
-        [Newtonsoft.Json.JsonPropertyAttribute("path")]
-        public string path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public bool ShouldSerializefrom() { throw null; }
-    }
-    public enum OperationType
-    {
-        Add = 0,
-        Remove = 1,
-        Replace = 2,
-        Move = 3,
-        Copy = 4,
-        Test = 5,
-        Invalid = 6,
-    }
-    public partial class Operation<TModel> : Microsoft.AspNetCore.JsonPatch.Operations.Operation where TModel : class
-    {
-        public Operation() { }
-        public Operation(string op, string path, string from) { }
-        public Operation(string op, string path, string from, object value) { }
-        public void Apply(TModel objectToApplyTo, Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter adapter) { }
-    }
-}

+ 31 - 11
src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj

@@ -31,15 +31,20 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory>
     <GenerateDependencyFile>false</GenerateDependencyFile>
 
-    <!-- This project should not be referenced via the `<Reference>` impementation. -->
+    <!-- This project should not be referenced via the `<Reference>` implementation. -->
     <IsProjectReferenceProvider>false</IsProjectReferenceProvider>
 
     <PackageConflictManifestFileName>PackageOverrides.txt</PackageConflictManifestFileName>
 
     <!-- Reference implementation assemblies in addition to ref assemblies to get xml docs -->
     <ReferenceImplementationAssemblies>true</ReferenceImplementationAssemblies>
-    <!-- We are ignoring MSB3243 warnings since implemenation and reference assemblies are versioned differently. We need both to compose the targeting pack with reference assemblies and xml docs. -->
-    <MSBuildWarningsAsMessages>MSB3243</MSBuildWarningsAsMessages >
+    <!--
+      We are ignoring MSB3243 warnings since implementation and reference assemblies are versioned differently.
+      We need both to compose the targeting pack with reference assemblies and xml docs.
+    -->
+    <MSBuildWarningsAsMessages>MSB3243</MSBuildWarningsAsMessages>
+    <!-- We are ignoring NU5131 and NU5128 warnings since the dependency group should be kept empty. -->
+    <NoWarn>$(NoWarn);NU5131;NU5128</NoWarn>
 
     <!-- Platform manifest data -->
     <FrameworkListFileName>FrameworkList.xml</FrameworkListFileName>
@@ -54,7 +59,6 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   <ItemGroup>
     <!-- Note: do not add _TransitiveExternalAspNetCoreAppReference to this list. This is intentionally not listed as a direct package reference. -->
     <Reference Include="@(AspNetCoreAppReference);@(AspNetCoreAppReferenceAndPackage);@(ExternalAspNetCoreAppReference)" />
-    <Reference Include="Microsoft.Internal.Extensions.Refs" Version="$(MicrosoftInternalExtensionsRefsPackageVersion)" IncludeAssets="Build" />
     <!-- Enforce build order. Targeting pack needs to bundle information about the runtime. -->
     <ProjectReference Include="..\src\Microsoft.AspNetCore.App.Runtime.csproj">
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
@@ -78,8 +82,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <!-- If this project won't produce a package, don't bother building anything. -->
     <BuildDependsOn Condition="'$(IsTargetingPackBuilding)' != 'false'">
       $(BuildDependsOn);
-      GeneratePackageConflictManifest;
       _ResolveTargetingPackContent;
+      GeneratePackageConflictManifest;
       IncludeFrameworkListFile;
       _BatchCopyToLayoutTargetDir;
       _InstallTargetingPackIntoLocalDotNet;
@@ -110,15 +114,27 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     </ItemGroup>
 
     <JoinItems Left="@(ReferencePathWithRefAssemblies)" Right="@(_AvailableExtensionsRefAssemblies)" LeftKey="Filename" RightKey="Filename" ItemSpecToUse="Left">
+      <Output TaskParameter="JoinResult" ItemName="_ReferencedExtensionsRefAssemblies" />
+    </JoinItems>
+
+    <JoinItems Left="@(_ReferencedExtensionsRefAssemblies)" Right="@(ExternalAspNetCoreAppReference)" LeftKey="Filename" RightKey="Identity" ItemSpecToUse="Left">
+      <Output TaskParameter="JoinResult" ItemName="_SelectedExtensionsRefs" />
+    </JoinItems>
+
+    <JoinItems Left="@(ReferencePathWithRefAssemblies)" Right="@(_SelectedExtensionsRefs)" LeftKey="Filename" RightKey="Filename" ItemSpecToUse="Left">
       <Output TaskParameter="JoinResult" ItemName="_SelectedExtensionsRefAssemblies" />
     </JoinItems>
 
     <ItemGroup>
+      <!-- Exclude transitive external dependencies that are not directly referenced by projects in AspNetCore or Extensions -->
       <AspNetCoreReferenceAssemblyPath
           Include="@(ReferencePathWithRefAssemblies)"
           Exclude="
-            @(_SelectedExtensionsRefAssemblies);
+            @(_ReferencedExtensionsRefAssemblies);
             @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.NETCore.App.Ref'));
+            @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'System.Security.Cryptography.Pkcs'));
+            @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'System.Drawing.Common'));
+            @(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.Win32.SystemEvents'));
             @(ReferencePathWithRefAssemblies->WithMetadataValue('IsReferenceAssembly', 'false'));
             @(ReferencePathWithRefAssemblies->WithMetadataValue('ReferenceGrouping', 'Microsoft.NETCore.App'));" />
 
@@ -148,13 +164,17 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   </Target>
 
   <Target Name="GeneratePackageConflictManifest"
-          DependsOnTargets="ResolveReferences"
+          DependsOnTargets="_ResolveTargetingPackContent"
           Inputs="$(MSBuildAllProjects)"
           Outputs="$(TargetDir)$(PackageConflictManifestFileName)">
-
     <ItemGroup>
-      <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition=" '%(ReferencePath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(ReferencePath.NuGetSourceType)' == 'Package' " />
-      <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(ReferencePath.ReferenceSourceTarget)' == 'ProjectReference' AND '%(ReferencePath.IsReferenceAssembly)' == 'true' " />
+      <!-- Use package version for non-Extensions references -->
+      <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition="!Exists('$(MicrosoftInternalExtensionsRefsPath)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Internal.Extensions.Refs' AND '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " />
+
+      <!-- Pin version for extensions references -->
+      <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(MicrosoftInternalExtensionsRefsPackageOverrideVersion)')" />
+
+      <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' AND '%(AspNetCoreReferenceAssemblyPath.IsReferenceAssembly)' == 'true' " />
     </ItemGroup>
 
     <WriteLinesToFile
@@ -192,7 +212,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   <Target Name="_CreateTargetingPackArchive"
           Inputs="@(RefPackContent)"
           Outputs="$(ZipArchiveOutputPath);$(TarArchiveOutputPath)"
-          Condition="'$(IsPackable)' == 'true'">
+          Condition=" '$(IsPackable)' == 'true' ">
     <PropertyGroup>
       <_TarCommand>tar</_TarCommand>
       <_TarCommand Condition="Exists('$(RepoRoot).tools\tar.exe')">$(RepoRoot).tools\tar.exe</_TarCommand>

+ 15 - 1
src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj

@@ -21,6 +21,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <SkipRefDirectoryCheck>true</SkipRefDirectoryCheck>
     <PackageType>DotnetPlatform</PackageType>
 
+    <!-- We need to reference the implementation assemblies when composing the shared framework -->
+    <ReferenceReferenceAssemblies>false</ReferenceReferenceAssemblies>
+    <ReferenceImplementationAssemblies>true</ReferenceImplementationAssemblies>
+
     <!-- This file is used by the dotnet/core-sdk repo to determine if the version of AspNetCore.App is coherent with Microsoft.NETCore.App. -->
     <BaseRuntimeVersionFileName>aspnetcore_base_runtime.version</BaseRuntimeVersionFileName>
     <BaseRuntimeVersionFileOutputPath>$(InstallersOutputPath)$(BaseRuntimeVersionFileName)</BaseRuntimeVersionFileOutputPath>
@@ -52,6 +56,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
     <!-- Always generated, even though output type == Library -->
     <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
     <ProjectRuntimeConfigFileName>$(SharedFxName).runtimeconfig.json</ProjectRuntimeConfigFileName>
+    <!-- Target the latest runtime patch so the latest version is specified in runtimeconfig.json -->
+    <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
 
     <!-- Suppress .deps generation (we have to customize its layout. -->
     <GenerateDependencyFile>false</GenerateDependencyFile>
@@ -293,11 +299,13 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   -->
   <PropertyGroup>
     <CrossgenToolDir>$(IntermediateOutputPath)crossgen\</CrossgenToolDir>
+    <CrossgenPlatformAssembliesDir>$(IntermediateOutputPath)platformAssemblies\</CrossgenPlatformAssembliesDir>
     <CoreCLRJitPath>$(CrossgenToolDir)$(LibPrefix)clrjit$(LibExtension)</CoreCLRJitPath>
   </PropertyGroup>
 
   <ItemGroup>
     <CreateDirectory Include="$(CrossgenToolDir)" />
+    <CreateDirectory Include="$(CrossgenPlatformAssembliesDir)" />
     <CreateDirectory Include="$(SharedFxLayoutTargetDir)" />
     <CreateDirectory Include="$(RedistLayoutTargetDir)" />
     <CreateDirectory Include="$(LocalInstallationOutputPath)" />
@@ -306,13 +314,19 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   <Target Name="Crossgen" DependsOnTargets="$(CrossgenDependsOn)" />
 
   <Target Name="PrepareForCrossGen" Condition="'$(CrossgenOutput)' == 'true'">
+    <!-- The output directories of assemblies built in this repo contain a mix of ref and impl assemblies. Copy impl assemblies to a separate directory. -->
+    <Copy SourceFiles="@(ReferenceCopyLocalPaths)" DestinationFolder="$(CrossgenPlatformAssembliesDir)" Condition="'%(ReferenceCopyLocalPaths.ProjectPath)' != ''"/>
+
     <!-- Resolve list of assemblies to crossgen -->
     <ItemGroup>
       <IntermediateCrossgenAssembly Include="@(ReferenceCopyLocalPaths)" Condition=" '%(ReferenceCopyLocalPaths.IsNativeImage)' != 'true' AND '%(ReferenceCopyLocalPaths.Extension)' != '.pdb'" />
 
       <!-- These are the paths used by crossgen to find assemblies that are expected to exist at runtime in the shared frameworks. -->
       <_PlatformAssemblyPaths Include="$(CrossgenToolDir)" />
-      <_PlatformAssemblyPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)')" />
+      <!-- Include the directories of the assemblies not built in this repo. These contain only implementation assemblies. -->
+      <_PlatformAssemblyPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)')" Condition="'%(ReferenceCopyLocalPaths.ProjectPath)' == ''"/>
+      <!-- The output directories of assemblies built in this repo contain a mix of ref and impl assemblies. Use the directory with only impl assemblies. -->
+      <_PlatformAssemblyPaths Include="$(CrossgenPlatformAssembliesDir)"/>
 
       <ReferenceCopyLocalPaths Remove="@(IntermediateCrossgenAssembly)" />
       <ReferenceCopyLocalPaths Include="@(IntermediateCrossgenAssembly->'$(TargetDir)%(FileName)%(Extension)')" />

+ 3 - 3
src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj

@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Hosting.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
   </ItemGroup>
 </Project>

+ 218 - 0
src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.Manual.cs

@@ -0,0 +1,218 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Hosting
+{
+    internal partial class ConfigureBuilder
+    {
+        public ConfigureBuilder(System.Reflection.MethodInfo configure) { }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> Build(object instance) { throw null; }
+    }
+    internal partial class ConfigureContainerBuilder
+    {
+        public ConfigureContainerBuilder(System.Reflection.MethodInfo configureContainerMethod) { }
+        public System.Func<System.Action<object>, System.Action<object>> ConfigureContainerFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Action<object> Build(object instance) { throw null; }
+        public System.Type GetContainerType() { throw null; }
+    }
+    internal partial class ConfigureServicesBuilder
+    {
+        public ConfigureServicesBuilder(System.Reflection.MethodInfo configureServices) { }
+        public System.Reflection.MethodInfo MethodInfo { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider>, System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider>> StartupServiceFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider> Build(object instance) { throw null; }
+    }
+    internal partial class GenericWebHostBuilder : Microsoft.AspNetCore.Hosting.ISupportsStartup, Microsoft.AspNetCore.Hosting.ISupportsUseDefaultServiceProvider, Microsoft.AspNetCore.Hosting.IWebHostBuilder
+    {
+        public GenericWebHostBuilder(Microsoft.Extensions.Hosting.IHostBuilder builder) { }
+        public Microsoft.AspNetCore.Hosting.IWebHost Build() { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.AspNetCore.Builder.IApplicationBuilder> configure) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureAppConfiguration(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.Configuration.IConfigurationBuilder> configureDelegate) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.DependencyInjection.IServiceCollection> configureServices) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureServices(System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> configureServices) { throw null; }
+        public string GetSetting(string key) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.DependencyInjection.ServiceProviderOptions> configure) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSetting(string key, string value) { throw null; }
+        public Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Type startupType) { throw null; }
+    }
+    internal partial class GenericWebHostService : Microsoft.Extensions.Hosting.IHostedService
+    {
+        public GenericWebHostService(Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Hosting.GenericWebHostServiceOptions> options, Microsoft.AspNetCore.Hosting.Server.IServer server, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, System.Diagnostics.DiagnosticListener diagnosticListener, Microsoft.AspNetCore.Http.IHttpContextFactory httpContextFactory, Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory applicationBuilderFactory, System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.IStartupFilter> startupFilters, Microsoft.Extensions.Configuration.IConfiguration configuration, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment) { }
+        public Microsoft.AspNetCore.Hosting.Builder.IApplicationBuilderFactory ApplicationBuilderFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Configuration.IConfiguration Configuration { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Diagnostics.DiagnosticListener DiagnosticListener { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Http.IHttpContextFactory HttpContextFactory { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Logging.ILogger LifetimeLogger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.Logging.ILogger Logger { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Hosting.GenericWebHostServiceOptions Options { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.AspNetCore.Hosting.Server.IServer Server { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.IStartupFilter> StartupFilters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
+    }
+    internal partial class GenericWebHostServiceOptions
+    {
+        public GenericWebHostServiceOptions() { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> ConfigureApplication { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.AggregateException HostingStartupExceptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.AspNetCore.Hosting.WebHostOptions WebHostOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal partial class HostingApplication : Microsoft.AspNetCore.Hosting.Server.IHttpApplication<Microsoft.AspNetCore.Hosting.HostingApplication.Context>
+    {
+        public HostingApplication(Microsoft.AspNetCore.Http.RequestDelegate application, Microsoft.Extensions.Logging.ILogger logger, System.Diagnostics.DiagnosticListener diagnosticSource, Microsoft.AspNetCore.Http.IHttpContextFactory httpContextFactory) { }
+        public Microsoft.AspNetCore.Hosting.HostingApplication.Context CreateContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection contextFeatures) { throw null; }
+        public void DisposeContext(Microsoft.AspNetCore.Hosting.HostingApplication.Context context, System.Exception exception) { }
+        public System.Threading.Tasks.Task ProcessRequestAsync(Microsoft.AspNetCore.Hosting.HostingApplication.Context context) { throw null; }
+        internal partial class Context
+        {
+            public Context() { }
+            public System.Diagnostics.Activity Activity { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public bool EventLogEnabled { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            internal bool HasDiagnosticListener { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public Microsoft.AspNetCore.Http.HttpContext HttpContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public System.IDisposable Scope { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public long StartTimestamp { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+            public void Reset() { }
+        }
+    }
+    internal partial class HostingEnvironment : Microsoft.AspNetCore.Hosting.IHostingEnvironment, Microsoft.AspNetCore.Hosting.IWebHostEnvironment, Microsoft.Extensions.Hosting.IHostEnvironment, Microsoft.Extensions.Hosting.IHostingEnvironment
+    {
+        public HostingEnvironment() { }
+        public string ApplicationName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.FileProviders.IFileProvider ContentRootFileProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ContentRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string EnvironmentName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public Microsoft.Extensions.FileProviders.IFileProvider WebRootFileProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string WebRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    internal static partial class HostingEnvironmentExtensions
+    {
+        internal static void Initialize(this Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnvironment, string contentRootPath, Microsoft.AspNetCore.Hosting.WebHostOptions options) { }
+        internal static void Initialize(this Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, string contentRootPath, Microsoft.AspNetCore.Hosting.WebHostOptions options) { }
+    }
+    internal sealed partial class HostingEventSource : System.Diagnostics.Tracing.EventSource
+    {
+        public static readonly Microsoft.AspNetCore.Hosting.HostingEventSource Log;
+        internal HostingEventSource() { }
+        internal HostingEventSource(string eventSourceName) { }
+        [System.Diagnostics.Tracing.EventAttribute(1, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void HostStart() { }
+        [System.Diagnostics.Tracing.EventAttribute(2, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void HostStop() { }
+        protected override void OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs command) { }
+        internal void RequestFailed() { }
+        [System.Diagnostics.Tracing.EventAttribute(3, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void RequestStart(string method, string path) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Diagnostics.Tracing.EventAttribute(4, Level=System.Diagnostics.Tracing.EventLevel.Informational)]
+        public void RequestStop() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Diagnostics.Tracing.EventAttribute(5, Level=System.Diagnostics.Tracing.EventLevel.Error)]
+        public void UnhandledException() { }
+    }
+    internal partial class HostingRequestStartingLog : System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.IEnumerable
+    {
+        internal static readonly System.Func<object, System.Exception, string> Callback;
+        public HostingRequestStartingLog(Microsoft.AspNetCore.Http.HttpContext httpContext) { }
+        public int Count { get { throw null; } }
+        public System.Collections.Generic.KeyValuePair<string, object> this[int index] { get { throw null; } }
+        public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, object>> GetEnumerator() { throw null; }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
+        public override string ToString() { throw null; }
+    }
+    internal partial interface ISupportsStartup
+    {
+        Microsoft.AspNetCore.Hosting.IWebHostBuilder Configure(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.AspNetCore.Builder.IApplicationBuilder> configure);
+        Microsoft.AspNetCore.Hosting.IWebHostBuilder UseStartup(System.Type startupType);
+    }
+    internal partial interface ISupportsUseDefaultServiceProvider
+    {
+        Microsoft.AspNetCore.Hosting.IWebHostBuilder UseDefaultServiceProvider(System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext, Microsoft.Extensions.DependencyInjection.ServiceProviderOptions> configure);
+    }
+    internal static partial class LoggerEventIds
+    {
+        public const int ApplicationStartupException = 6;
+        public const int ApplicationStoppedException = 8;
+        public const int ApplicationStoppingException = 7;
+        public const int HostedServiceStartException = 9;
+        public const int HostedServiceStopException = 10;
+        public const int HostingStartupAssemblyException = 11;
+        public const int RequestFinished = 2;
+        public const int RequestStarting = 1;
+        public const int ServerShutdownException = 12;
+        public const int Shutdown = 5;
+        public const int Started = 4;
+        public const int Starting = 3;
+    }
+    internal partial class StartupLoader
+    {
+        public StartupLoader() { }
+        internal static Microsoft.AspNetCore.Hosting.ConfigureContainerBuilder FindConfigureContainerDelegate(System.Type startupType, string environmentName) { throw null; }
+        internal static Microsoft.AspNetCore.Hosting.ConfigureBuilder FindConfigureDelegate(System.Type startupType, string environmentName) { throw null; }
+        internal static Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder FindConfigureServicesDelegate(System.Type startupType, string environmentName) { throw null; }
+        public static System.Type FindStartupType(string startupAssemblyName, string environmentName) { throw null; }
+        internal static bool HasConfigureServicesIServiceProviderDelegate(System.Type startupType, string environmentName) { throw null; }
+        public static Microsoft.AspNetCore.Hosting.StartupMethods LoadMethods(System.IServiceProvider hostingServiceProvider, System.Type startupType, string environmentName) { throw null; }
+    }
+    internal partial class StartupMethods
+    {
+        public StartupMethods(object instance, System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> configure, System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider> configureServices) { }
+        public System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder> ConfigureDelegate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public System.Func<Microsoft.Extensions.DependencyInjection.IServiceCollection, System.IServiceProvider> ConfigureServicesDelegate { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public object StartupInstance { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+    }
+    internal partial class WebHostOptions
+    {
+        public WebHostOptions() { }
+        public WebHostOptions(Microsoft.Extensions.Configuration.IConfiguration configuration) { }
+        public WebHostOptions(Microsoft.Extensions.Configuration.IConfiguration configuration, string applicationNameFallback) { }
+        public string ApplicationName { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool CaptureStartupErrors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string ContentRootPath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool DetailedErrors { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Environment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyList<string> HostingStartupAssemblies { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IReadOnlyList<string> HostingStartupExcludeAssemblies { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool PreventHostingStartup { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.TimeSpan ShutdownTimeout { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string StartupAssembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public bool SuppressStatusMessages { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string WebRoot { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Collections.Generic.IEnumerable<string> GetFinalHostingStartupAssemblies() { throw null; }
+    }
+}
+
+namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
+{
+    internal partial class StaticWebAssetsFileProvider : Microsoft.Extensions.FileProviders.IFileProvider
+    {
+        public StaticWebAssetsFileProvider(string pathPrefix, string contentRoot) { }
+        public Microsoft.AspNetCore.Http.PathString BasePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.FileProviders.PhysicalFileProvider InnerProvider { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        public Microsoft.Extensions.FileProviders.IDirectoryContents GetDirectoryContents(string subpath) { throw null; }
+        public Microsoft.Extensions.FileProviders.IFileInfo GetFileInfo(string subpath) { throw null; }
+        public Microsoft.Extensions.Primitives.IChangeToken Watch(string filter) { throw null; }
+    }
+    public partial class StaticWebAssetsLoader
+    {
+        internal const string StaticWebAssetsManifestName = "Microsoft.AspNetCore.StaticWebAssets.xml";
+        internal static string GetAssemblyLocation(System.Reflection.Assembly assembly) { throw null; }
+        internal static System.IO.Stream ResolveManifest(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment, Microsoft.Extensions.Configuration.IConfiguration configuration) { throw null; }
+        internal static void UseStaticWebAssetsCore(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment, System.IO.Stream manifest) { }
+    }
+    internal static partial class StaticWebAssetsReader
+    {
+        internal static System.Collections.Generic.IEnumerable<Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsReader.ContentRootMapping> Parse(System.IO.Stream manifest) { throw null; }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        internal readonly partial struct ContentRootMapping
+        {
+            private readonly object _dummy;
+            public ContentRootMapping(string basePath, string path) { throw null; }
+            public string BasePath { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+            public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+        }
+    }
+}

+ 15 - 13
src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj

@@ -5,18 +5,20 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Hosting.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables"  />
-    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions"  />
-    <Reference Include="Microsoft.Extensions.Configuration"  />
-    <Reference Include="Microsoft.Extensions.DependencyInjection"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Physical"  />
-    <Reference Include="Microsoft.Extensions.FileProviders.Composite"  />
-    <Reference Include="Microsoft.Extensions.Hosting.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
-    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources"  />
+    <Compile Include="Microsoft.AspNetCore.Hosting.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
+    <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
+    <Reference Include="Microsoft.Extensions.Configuration.FileExtensions" />
+    <Reference Include="Microsoft.Extensions.Configuration" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Physical" />
+    <Reference Include="Microsoft.Extensions.FileProviders.Composite" />
+    <Reference Include="Microsoft.Extensions.Hosting.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Options" />
+    <Reference Include="Microsoft.Extensions.TypeNameHelper.Sources" />
   </ItemGroup>
 </Project>

+ 2 - 2
src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj

@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Hosting.Server.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Features"  />
-    <Reference Include="Microsoft.Extensions.Configuration.Abstractions"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Features" />
+    <Reference Include="Microsoft.Extensions.Configuration.Abstractions" />
   </ItemGroup>
 </Project>

+ 0 - 12
src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.csproj

@@ -1,12 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.TestHost.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="Microsoft.Extensions.HostFactoryResolver.Sources"  />
-    <Reference Include="System.IO.Pipelines"  />
-  </ItemGroup>
-</Project>

+ 0 - 77
src/Hosting/TestHost/ref/Microsoft.AspNetCore.TestHost.netcoreapp.cs

@@ -1,77 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.TestHost
-{
-    public partial class ClientHandler : System.Net.Http.HttpMessageHandler
-    {
-        internal ClientHandler() { }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        protected override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-    public static partial class HostBuilderTestServerExtensions
-    {
-        public static System.Net.Http.HttpClient GetTestClient(this Microsoft.Extensions.Hosting.IHost host) { throw null; }
-        public static Microsoft.AspNetCore.TestHost.TestServer GetTestServer(this Microsoft.Extensions.Hosting.IHost host) { throw null; }
-    }
-    public partial class HttpResetTestException : System.Exception
-    {
-        public HttpResetTestException(int errorCode) { }
-        public int ErrorCode { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-    }
-    public partial class RequestBuilder
-    {
-        public RequestBuilder(Microsoft.AspNetCore.TestHost.TestServer server, string path) { }
-        public Microsoft.AspNetCore.TestHost.TestServer TestServer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Microsoft.AspNetCore.TestHost.RequestBuilder AddHeader(string name, string value) { throw null; }
-        public Microsoft.AspNetCore.TestHost.RequestBuilder And(System.Action<System.Net.Http.HttpRequestMessage> configure) { throw null; }
-        public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> GetAsync() { throw null; }
-        public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> PostAsync() { throw null; }
-        public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(string method) { throw null; }
-    }
-    public partial class TestServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable
-    {
-        public TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { }
-        public TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
-        public TestServer(System.IServiceProvider services) { }
-        public TestServer(System.IServiceProvider services, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
-        public bool AllowSynchronousIO { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public System.Uri BaseAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public Microsoft.AspNetCore.Hosting.IWebHost Host { get { throw null; } }
-        public bool PreserveExecutionContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public System.IServiceProvider Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        public System.Net.Http.HttpClient CreateClient() { throw null; }
-        public System.Net.Http.HttpMessageHandler CreateHandler() { throw null; }
-        public Microsoft.AspNetCore.TestHost.RequestBuilder CreateRequest(string path) { throw null; }
-        public Microsoft.AspNetCore.TestHost.WebSocketClient CreateWebSocketClient() { throw null; }
-        public void Dispose() { }
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Hosting.Server.IServer.StartAsync<TContext>(Microsoft.AspNetCore.Hosting.Server.IHttpApplication<TContext> application, System.Threading.CancellationToken cancellationToken) { throw null; }
-        System.Threading.Tasks.Task Microsoft.AspNetCore.Hosting.Server.IServer.StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<Microsoft.AspNetCore.Http.HttpContext> SendAsync(System.Action<Microsoft.AspNetCore.Http.HttpContext> configureContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
-    }
-    public static partial class WebHostBuilderExtensions
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureTestContainer<TContainer>(this Microsoft.AspNetCore.Hosting.IWebHostBuilder webHostBuilder, System.Action<TContainer> servicesConfiguration) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder ConfigureTestServices(this Microsoft.AspNetCore.Hosting.IWebHostBuilder webHostBuilder, System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection> servicesConfiguration) { throw null; }
-        public static System.Net.Http.HttpClient GetTestClient(this Microsoft.AspNetCore.Hosting.IWebHost host) { throw null; }
-        public static Microsoft.AspNetCore.TestHost.TestServer GetTestServer(this Microsoft.AspNetCore.Hosting.IWebHost host) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, string solutionRelativePath, string solutionName = "*.sln") { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseSolutionRelativeContentRoot(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, string solutionRelativePath, string applicationBasePath, string solutionName = "*.sln") { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder UseTestServer(this Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { throw null; }
-    }
-    public static partial class WebHostBuilderFactory
-    {
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateFromAssemblyEntryPoint(System.Reflection.Assembly assembly, string[] args) { throw null; }
-        public static Microsoft.AspNetCore.Hosting.IWebHostBuilder CreateFromTypesAssemblyEntryPoint<T>(string[] args) { throw null; }
-    }
-    public partial class WebSocketClient
-    {
-        internal WebSocketClient() { }
-        public System.Action<Microsoft.AspNetCore.Http.HttpRequest> ConfigureRequest { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
-        public System.Collections.Generic.IList<string> SubProtocols { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
-        [System.Diagnostics.DebuggerStepThroughAttribute]
-        public System.Threading.Tasks.Task<System.Net.WebSockets.WebSocket> ConnectAsync(System.Uri uri, System.Threading.CancellationToken cancellationToken) { throw null; }
-    }
-}

+ 0 - 11
src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.csproj

@@ -1,11 +0,0 @@
-<!-- This file is automatically generated. -->
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks>
-  </PropertyGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
-    <Compile Include="Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Hosting"  />
-    <Reference Include="System.ServiceProcess.ServiceController"  />
-  </ItemGroup>
-</Project>

+ 0 - 21
src/Hosting/WindowsServices/ref/Microsoft.AspNetCore.Hosting.WindowsServices.netcoreapp.cs

@@ -1,21 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-namespace Microsoft.AspNetCore.Hosting.WindowsServices
-{
-    [System.ComponentModel.DesignerCategoryAttribute("Code")]
-    public partial class WebHostService : System.ServiceProcess.ServiceBase
-    {
-        public WebHostService(Microsoft.AspNetCore.Hosting.IWebHost host) { }
-        protected sealed override void OnStart(string[] args) { }
-        protected virtual void OnStarted() { }
-        protected virtual void OnStarting(string[] args) { }
-        protected sealed override void OnStop() { }
-        protected virtual void OnStopped() { }
-        protected virtual void OnStopping() { }
-    }
-    public static partial class WebHostWindowsServiceExtensions
-    {
-        public static void RunAsService(this Microsoft.AspNetCore.Hosting.IWebHost host) { }
-    }
-}

+ 13 - 0
src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.Manual.cs

@@ -0,0 +1,13 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Html
+{
+    public partial class HtmlContentBuilder : Microsoft.AspNetCore.Html.IHtmlContent, Microsoft.AspNetCore.Html.IHtmlContentBuilder, Microsoft.AspNetCore.Html.IHtmlContentContainer
+    {
+        internal System.Collections.Generic.IList<object> Entries
+        {
+            [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; }
+        }
+    }
+}

+ 2 - 1
src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj

@@ -5,6 +5,7 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Html.Abstractions.netcoreapp.cs" />
-    
+    <Compile Include="Microsoft.AspNetCore.Html.Abstractions.Manual.cs" />
+    <Compile Include="../src/Properties/AssemblyInfo.cs" />
   </ItemGroup>
 </Project>

+ 3 - 3
src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj

@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.Abstractions.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Http.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Logging.Abstractions"  />
-    <Reference Include="Microsoft.Extensions.Options"  />
+    <Reference Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Logging.Abstractions" />
+    <Reference Include="Microsoft.Extensions.Options" />
   </ItemGroup>
 </Project>

+ 3 - 3
src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj

@@ -5,8 +5,8 @@
   </PropertyGroup>
   <ItemGroup Condition="'$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)'">
     <Compile Include="Microsoft.AspNetCore.Authentication.Core.netcoreapp.cs" />
-    <Reference Include="Microsoft.AspNetCore.Authentication.Abstractions"  />
-    <Reference Include="Microsoft.AspNetCore.Http"  />
-    <Reference Include="Microsoft.AspNetCore.Http.Extensions"  />
+    <Reference Include="Microsoft.AspNetCore.Authentication.Abstractions" />
+    <Reference Include="Microsoft.AspNetCore.Http" />
+    <Reference Include="Microsoft.AspNetCore.Http.Extensions" />
   </ItemGroup>
 </Project>

+ 10 - 0
src/Http/Headers/ref/Microsoft.Net.Http.Headers.Manual.cs

@@ -0,0 +1,10 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.Net.Http.Headers
+{
+    public partial class SetCookieHeaderValue
+    {
+        internal static bool SuppressSameSiteNone;
+    }
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов