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

Remove obsolete build infrastructure (#6995)

Changes:

* Remove obsolete targets which are unnecessary now that this repo no longer builds git submodules in a separate build process
* Remove the need for static analysis of 'ArtifactInfo' items
* Simplify how the code signing task is configured
* Remove unused repo tasks
* Remove duplicate lists of external dependencies and packages to be produced
* Remove obsolete build definition
* Remove obsolete build script parameters
* Add VisualStudioSetupOutputPath
Nate McMaster 7 лет назад
Родитель
Сommit
ac04019e42
100 измененных файлов с 359 добавлено и 1753 удалено
  1. 9 1
      .azure/pipelines/ci.yml
  2. 0 134
      .azure/pipelines/e2e-tests.yml
  3. 0 38
      .azure/pipelines/pr-validation-temp.yml
  4. 3 11
      Directory.Build.props
  5. 0 2
      Directory.Build.targets
  6. 1 10
      build.ps1
  7. 1 8
      build.sh
  8. 1 3
      build/AzureIntegration.targets
  9. 36 76
      build/CodeSign.props
  10. 13 64
      build/CodeSign.targets
  11. 0 160
      build/RepositoryBuild.targets
  12. 1 1
      build/SharedFrameworkOnly.props
  13. 2 58
      build/SharedFx.targets
  14. 0 172
      build/artifacts.props
  15. 0 11
      build/buildorder.props
  16. 0 63
      build/external-dependencies.props
  17. 2 6
      build/repo.props
  18. 7 197
      build/repo.targets
  19. 0 6
      build/runtimes.props
  20. 6 16
      build/sources.props
  21. 0 40
      build/submodules.props
  22. 0 122
      build/tasks/JoinRepoItems.cs
  23. 0 28
      build/tasks/OrderBy.cs
  24. 1 0
      build/tasks/RepoTasks.csproj
  25. 0 2
      build/tasks/RepoTasks.tasks
  26. 4 1
      docs/Artifacts.md
  27. 1 26
      docs/PreparingPatchUpdates.md
  28. 4 3
      docs/ReferenceResolution.md
  29. 3 1
      eng/Dependencies.props
  30. 0 5
      eng/ProjectReferences.props
  31. 0 8
      eng/Version.Details.xml
  32. 0 2
      eng/Versions.props
  33. 16 0
      eng/Workarounds.targets
  34. 2 5
      eng/targets/CSharp.Common.props
  35. 0 12
      eng/targets/Npm.Common.targets
  36. 0 21
      eng/targets/Packaging.targets
  37. 6 8
      eng/targets/ResolveReferences.targets
  38. 1 2
      eng/tools/XplatPackageSigner/XplatPackageSigner.proj
  39. 0 1
      src/Components/Analyzers/src/Microsoft.AspNetCore.Components.Analyzers.csproj
  40. 1 0
      src/Components/Blazor/BlazorExtension/src/Microsoft.VisualStudio.BlazorExtension.csproj
  41. 0 33
      src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
  42. 4 1
      src/Components/Blazor/Cli/src/Microsoft.AspNetCore.Blazor.Cli.csproj
  43. 1 6
      src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.csproj
  44. 1 3
      src/DataProtection/DataProtection/test/Microsoft.AspNetCore.DataProtection.Tests.csproj
  45. 5 8
      src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj
  46. 3 2
      src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/Microsoft.AspNetCore.FunctionalTests.csproj
  47. 6 9
      src/Framework/Directory.Build.props
  48. 132 134
      src/Framework/Microsoft.AspNetCore.App.props
  49. 2 1
      src/Framework/pkg/Metapackage.targets
  50. 1 29
      src/Framework/src/SharedFx.targets
  51. 2 5
      src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
  52. 5 7
      src/Hosting/Server.IntegrationTesting/src/Microsoft.AspNetCore.Server.IntegrationTesting.csproj
  53. 2 1
      src/Hosting/test/FunctionalTests/Microsoft.AspNetCore.Hosting.FunctionalTests.csproj
  54. 2 0
      src/Identity/ApiAuthorization.IdentityServer/src/Microsoft.AspNetCore.ApiAuthorization.IdentityServer.csproj
  55. 0 1
      src/Installers/Archive/Archive.Internal.zipproj
  56. 0 1
      src/Installers/Archive/Archive.Redist.zipproj
  57. 0 1
      src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props
  58. 1 1
      src/Middleware/CORS/test/FunctionalTests/FunctionalTests.csproj
  59. 2 2
      src/Middleware/StaticFiles/test/FunctionalTests/Microsoft.AspNetCore.StaticFiles.FunctionalTests.csproj
  60. 4 11
      src/Middleware/WebSockets/test/ConformanceTests/AutobahnTestApp/AutobahnTestApp.csproj
  61. 2 3
      src/Middleware/WebSockets/test/ConformanceTests/Microsoft.AspNetCore.WebSockets.ConformanceTests.csproj
  62. 2 1
      src/Middleware/WebSockets/test/UnitTests/Microsoft.AspNetCore.WebSockets.Tests.csproj
  63. 1 1
      src/MusicStore/test/MusicStore.E2ETests/MusicStore.E2ETests.csproj
  64. 4 1
      src/Mvc/benchmarkapps/BasicApi/BasicApi.csproj
  65. 4 5
      src/Mvc/benchmarkapps/BasicViews/BasicViews.csproj
  66. 1 1
      src/Mvc/samples/MvcSandbox/MvcSandbox.csproj
  67. 3 1
      src/Mvc/src/GetDocumentInsider/GetDocumentInsider.csproj
  68. 0 4
      src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers/Microsoft.AspNetCore.Mvc.Analyzers.csproj
  69. 0 4
      src/Mvc/src/Microsoft.AspNetCore.Mvc.Api.Analyzers/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj
  70. 2 42
      src/Mvc/src/Microsoft.Extensions.ApiDescription.Design/Microsoft.Extensions.ApiDescription.Design.csproj
  71. 2 0
      src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj
  72. 0 10
      src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj
  73. 0 5
      src/ProjectTemplates/Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj
  74. 1 1
      src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj
  75. 6 3
      src/Servers/IIS/IIS/benchmarks/IIS.Performance/IIS.Performance.csproj
  76. 2 1
      src/Servers/IIS/IIS/samples/NativeIISSample/NativeIISSample.csproj
  77. 1 2
      src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
  78. 0 13
      src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.targets
  79. 1 1
      src/Servers/IIS/IIS/test/Common.Tests/Common.Tests.csproj
  80. 8 4
      src/Servers/IIS/IIS/test/IIS.BackwardsCompatibility.FunctionalTests/IIS.BackwardsCompatibility.FunctionalTests.csproj
  81. 1 1
      src/Servers/IIS/IIS/test/IIS.ForwardsCompatibility.FunctionalTests/IIS.ForwardsCompatibility.FunctionalTests.csproj
  82. 2 2
      src/Servers/IIS/IIS/test/IIS.FunctionalTests/IIS.FunctionalTests.csproj
  83. 1 1
      src/Servers/IIS/IIS/test/IIS.Tests/IIS.Tests.csproj
  84. 2 3
      src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/IISExpress.FunctionalTests.csproj
  85. 4 2
      src/Servers/IIS/IIS/test/testassets/InProcessForwardsCompatWebSite/InProcessWebSite.csproj
  86. 0 5
      src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj
  87. 0 7
      src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.targets
  88. 6 5
      src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
  89. 0 1
      src/Servers/Kestrel/perf/PlatformBenchmarks/PlatformBenchmarks.csproj
  90. 2 1
      src/Servers/Kestrel/test/Interop.FunctionalTests/Interop.FunctionalTests.csproj
  91. 1 3
      src/Servers/Kestrel/tools/CodeGenerator/CodeGenerator.csproj
  92. 1 1
      src/Servers/test/FunctionalTests/Directory.Build.props
  93. 1 1
      src/Servers/test/FunctionalTests/ServerComparison.FunctionalTests.csproj
  94. 1 1
      src/Servers/testassets/ServerComparison.TestSites/Directory.Build.props
  95. 0 8
      src/Shared/Buffers.MemoryPool/Directory.Build.props
  96. 0 8
      src/Shared/Buffers.Testing/Directory.Build.props
  97. 1 1
      src/SignalR/Directory.Build.props
  98. 0 17
      src/SignalR/clients/java/signalr/signalr.javaproj
  99. 1 1
      src/SignalR/clients/ts/signalr-protocol-msgpack/package-lock.json
  100. 1 1
      src/SignalR/clients/ts/signalr-protocol-msgpack/package.json

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

@@ -8,6 +8,14 @@ pr:
     - '*'
 
 jobs:
+- job: Code_check
+  displayName: Code check
+  workspace:
+    clean: all
+  pool:
+    vmImage: vs2017-win2016
+  steps:
+  - powershell: ./eng/scripts/CodeCheck.ps1 -ci
 - template: jobs/default-build.yml
   parameters:
     jobName: Windows_Build
@@ -51,4 +59,4 @@ jobs:
 - template: jobs/iisintegration-job.yml
   parameters:
     TestGroupName: IISBackCompat
-    skipArgs: "/p:SkipIISBackwardsCompatibilityTests=false /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true"
+    skipArgs: "/p:SkipIISBackwardsCompatibilityTests=false /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true"

+ 0 - 134
.azure/pipelines/e2e-tests.yml

@@ -1,134 +0,0 @@
-trigger: none
-phases:
-- phase: Host_Windows
-  queue:
-    name: Hosted VS2017
-    parallel: 8
-    matrix:
-      Portable_Node8:
-        Test.RuntimeIdentifier: none
-        Node.Version: 8.x
-      Portable_Node10:
-        Test.RuntimeIdentifier: none
-        Node.Version: 10.x
-      SelfContainedWindows_Node8:
-        Test.RuntimeIdentifier: win-x64
-        Node.Version: 8.x
-      SelfContainedWindows_Node10:
-        Test.RuntimeIdentifier: win-x64
-        Node.Version: 10.x
-      SelfContainedLinux_Node8:
-        Test.RuntimeIdentifier: linux-x64
-        Node.Version: 8.x
-      SelfContainedLinux_Node10:
-        Test.RuntimeIdentifier: linux-x64
-        Node.Version: 10.x
-      SelfContainedMacOs_Node8:
-        Test.RuntimeIdentifier: osx-x64
-        Node.Version: 8.x
-      SelfContainedMacOs_Node10:
-        Test.RuntimeIdentifier: osx-x64
-        Node.Version: 10.x
-  steps:
-  - task: NodeTool@0
-    displayName: Install Node $(Node.Version)
-    inputs:
-      versionSpec: $(Node.Version)
-  - powershell: |
-      test/Cli.FunctionalTests/run-tests.ps1 -ci -ProdConManifestUrl $env:PRODCONMANIFESTURL -TestRuntimeIdentifier $(Test.RuntimeIdentifier) -AdditionalRestoreSources $env:ADDITIONALRESTORESOURCES
-    condition: ne(variables['PB_SkipTests'], 'true')
-    displayName: Run E2E tests
-  - task: PublishTestResults@2
-    displayName: Publish test results
-    condition: always()
-    inputs:
-      testRunner: vstest
-      testResultsFiles: 'artifacts/logs/**/*.trx'
-- phase: Host_macOS
-  queue:
-    name: Hosted macOS
-    parallel: 8
-    matrix:
-      Portable_Node8:
-        Test.RuntimeIdentifier: none
-        Node.Version: 8.x
-      Portable_Node10:
-        Test.RuntimeIdentifier: none
-        Node.Version: 10.x
-      SelfContainedWindows_Node8:
-        Test.RuntimeIdentifier: win-x64
-        Node.Version: 8.x
-      SelfContainedWindows_Node10:
-        Test.RuntimeIdentifier: win-x64
-        Node.Version: 10.x
-      SelfContainedLinux_Node8:
-        Test.RuntimeIdentifier: linux-x64
-        Node.Version: 8.x
-      SelfContainedLinux_Node10:
-        Test.RuntimeIdentifier: linux-x64
-        Node.Version: 10.x
-      SelfContainedMacOs_Node8:
-        Test.RuntimeIdentifier: osx-x64
-        Node.Version: 8.x
-      SelfContainedMacOs_Node10:
-        Test.RuntimeIdentifier: osx-x64
-        Node.Version: 10.x
-  steps:
-  - task: NodeTool@0
-    displayName: Install Node $(Node.Version)
-    inputs:
-      versionSpec: $(Node.Version)
-  - powershell: |
-      test/Cli.FunctionalTests/run-tests.ps1 -ci -ProdConManifestUrl $env:PRODCONMANIFESTURL -TestRuntimeIdentifier $(Test.RuntimeIdentifier) -AdditionalRestoreSources $env:ADDITIONALRESTORESOURCES
-    condition: ne(variables['PB_SkipTests'], 'true')
-    displayName: Run E2E tests
-  - task: PublishTestResults@2
-    displayName: Publish test results
-    condition: always()
-    inputs:
-      testRunner: vstest
-      testResultsFiles: 'artifacts/logs/**/*.trx'
-- phase: Host_Linux
-  queue:
-    name: Hosted Linux Preview
-    parallel: 8
-    matrix:
-      Portable_Node8:
-        Test.RuntimeIdentifier: none
-        Node.Version: 8.x
-      Portable_Node10:
-        Test.RuntimeIdentifier: none
-        Node.Version: 10.x
-      SelfContainedWindows_Node8:
-        Test.RuntimeIdentifier: win-x64
-        Node.Version: 8.x
-      SelfContainedWindows_Node10:
-        Test.RuntimeIdentifier: win-x64
-        Node.Version: 10.x
-      SelfContainedLinux_Node8:
-        Test.RuntimeIdentifier: linux-x64
-        Node.Version: 8.x
-      SelfContainedLinux_Node10:
-        Test.RuntimeIdentifier: linux-x64
-        Node.Version: 10.x
-      SelfContainedMacOs_Node8:
-        Test.RuntimeIdentifier: osx-x64
-        Node.Version: 8.x
-      SelfContainedMacOs_Node10:
-        Test.RuntimeIdentifier: osx-x64
-        Node.Version: 10.x
-  steps:
-  - task: NodeTool@0
-    displayName: Install Node $(Node.Version)
-    inputs:
-      versionSpec: $(Node.Version)
-  - powershell: |
-      test/Cli.FunctionalTests/run-tests.ps1 -ci -ProdConManifestUrl $env:PRODCONMANIFESTURL -TestRuntimeIdentifier $(Test.RuntimeIdentifier) -AdditionalRestoreSources $env:ADDITIONALRESTORESOURCES
-    condition: ne(variables['PB_SkipTests'], 'true')
-    displayName: Run E2E tests
-  - task: PublishTestResults@2
-    displayName: Publish test results
-    condition: always()
-    inputs:
-      testRunner: vstest
-      testResultsFiles: 'artifacts/logs/**/*.trx'

+ 0 - 38
.azure/pipelines/pr-validation-temp.yml

@@ -1,38 +0,0 @@
-# This configuration is temporary while we work on getting all unit tests to pass on PR checks
-
-# Don't run CI for this config
-trigger: none
-
-# Run PR validation on all branches
-pr:
-  branches:
-    include:
-    - '*'
-
-jobs:
-- template: jobs/default-build.yml
-  parameters:
-    jobName: Windows_Build
-    jobDisplayName: "Build only : Windows"
-    agentOs: Windows
-    buildArgs: -all -pack
-- template: jobs/default-build.yml
-  parameters:
-    jobName: macOs_Build
-    jobDisplayName: "Build only : macOS"
-    agentOs: macOS
-    buildArgs: --all --pack
-- template: jobs/default-build.yml
-  parameters:
-    jobName: Linux_Build
-    jobDisplayName: "Build only : Linux"
-    agentOs: Linux
-    buildArgs: --all --pack
-- job: Code_check
-  displayName: Code check
-  workspace:
-    clean: all
-  pool:
-    vmImage: vs2017-win2016
-  steps:
-  - powershell: ./eng/scripts/CodeCheck.ps1 -ci

+ 3 - 11
Directory.Build.props

@@ -63,17 +63,7 @@
     <BuildProjectReferences Condition=" '$(NoBuild)' == 'true' ">false</BuildProjectReferences>
   </PropertyGroup>
 
-  <!-- Certificate names used for Authenticode signing. -->
-  <PropertyGroup Condition=" '$(DisableCodeSigning)' != 'true' ">
-    <AssemblySigningCertName>Microsoft400</AssemblySigningCertName>
-    <AssemblySigning3rdPartyCertName>3PartySHA2</AssemblySigning3rdPartyCertName>
-    <PowerShellSigningCertName>Microsoft400</PowerShellSigningCertName>
-    <PackageSigningCertName>NuGet</PackageSigningCertName>
-    <VsixSigningCertName>VsixSHA2</VsixSigningCertName>
-    <JarSigningCertName>MicrosoftJAR</JarSigningCertName>
-  </PropertyGroup>
-
-  <Import Project="build\external-dependencies.props" />
+  <Import Project="eng\Versions.props" />
   <Import Project="build\sources.props" />
 
   <!-- Artifacts layout -->
@@ -85,6 +75,7 @@
     <ArtifactsShippingPackagesDir>$(ArtifactsPackagesDir)Shipping\</ArtifactsShippingPackagesDir>
     <ArtifactsNonShippingPackagesDir>$(ArtifactsPackagesDir)NonShipping\</ArtifactsNonShippingPackagesDir>
     <InstallersOutputPath>$(ArtifactsDir)installers\$(Configuration)\</InstallersOutputPath>
+    <VisualStudioSetupOutputPath>$(ArtifactsDir)VSSetup\$(Configuration)\</VisualStudioSetupOutputPath>
   </PropertyGroup>
 
   <!-- Ensure these output paths exist. -->
@@ -92,6 +83,7 @@
     <CreateDirectory Include="$(ArtifactsShippingPackagesDir)" />
     <CreateDirectory Include="$(ArtifactsNonShippingPackagesDir)" />
     <CreateDirectory Include="$(InstallersOutputPath)" />
+    <CreateDirectory Include="$(VisualStudioSetupOutputPath)" />
   </ItemGroup>
 
   <PropertyGroup Condition=" '$(OutputInRepoRoot)' == 'true' ">

+ 0 - 2
Directory.Build.targets

@@ -20,8 +20,6 @@
   <Import Project="eng\Baseline.Designer.props" />
 
   <PropertyGroup Condition=" '$(IsPackable)' != 'false' AND '$(AspNetCorePatchVersion)' != '0' ">
-    <!-- Always include framework metapackages in patch updates. -->
-    <IsPackageInThisPatch Condition="'$(IsFrameworkMetapackage)' == 'true' OR '$(IsSharedSourcePackage)' == 'true' ">true</IsPackageInThisPatch>
     <IsPackageInThisPatch Condition="'$(IsPackageInThisPatch)' == ''">$(PackagesInPatch.Contains(' $(PackageId);'))</IsPackageInThisPatch>
   </PropertyGroup>
 

+ 1 - 10
build.ps1

@@ -9,9 +9,6 @@ This build script installs required tools and runs an MSBuild command on this re
 This script can be used to invoke various targets, such as targets to produce packages,
 build projects, run tests, and generate code.
 
-.PARAMETER RepoPath
-The folder to build. Defaults to the folder containing this script. This will be removed soon.
-
 .PARAMETER CI
 Sets up CI specific settings and variables.
 
@@ -71,10 +68,6 @@ Online version: https://github.com/aspnet/AspNetCore/blob/master/docs/BuildFromS
 #>
 [CmdletBinding(PositionalBinding = $false, DefaultParameterSetName='Groups')]
 param(
-    # Bootstrapper options
-    [Obsolete('This parameter will be removed when we finish https://github.com/aspnet/AspNetCore/issues/4246')]
-    [string]$RepoRoot = $PSScriptRoot,
-
     [switch]$CI,
 
     # Build lifecycle options
@@ -203,7 +196,6 @@ if ($Help) {
     exit 1
 }
 
-$RepoRoot = Resolve-Path $RepoRoot
 $Channel = 'master'
 $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools'
 $ConfigFile = Join-Path $PSScriptRoot 'korebuild.json'
@@ -273,8 +265,7 @@ $MSBuildArguments += "/p:_RunSign=$Sign"
 Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
 
 try {
-    $RepoRoot = Resolve-Path $RepoRoot
-    Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $RepoRoot -ConfigFile $ConfigFile -CI:$CI
+    Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $PSScriptRoot -ConfigFile $ConfigFile -CI:$CI
     if ($ForceCoreMsbuild) {
         $global:KoreBuildSettings.MSBuildType = 'core'
     }

+ 1 - 8
build.sh

@@ -14,7 +14,6 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 verbose=false
 update=false
 reinstall=false
-repo_path="$DIR"
 lockfile_path="$DIR/korebuild-lock.txt"
 config_file="$DIR/korebuild.json"
 channel='master'
@@ -151,12 +150,6 @@ while [[ $# -gt 0 ]]; do
             __usage --no-exit
             exit 0
             ;;
-        --repo-root|-RepoRoot)
-            shift
-            __warn '--repo-root is obsolete and will be removed when we finish https://github.com/aspnet/AspNetCore/issues/4246'
-            repo_path="${1:-}"
-            [ -z "$repo_path" ] && __error "Missing value for parameter --repo-root" && __usage
-            ;;
         --restore|-[Rr]estore)
             run_restore=true
             ;;
@@ -280,7 +273,7 @@ msbuild_args[${#msbuild_args[*]}]="-p:_RunTests=$run_tests"
 # Disable downloading ref assemblies as a tarball. Use netfx refs from the Microsoft.NETFramework.ReferenceAssemblies NuGet package instead.
 [ -z "${KOREBUILD_SKIP_INSTALL_NETFX:-}" ] && KOREBUILD_SKIP_INSTALL_NETFX=1
 
-set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" "$ci"
+set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$DIR" "$config_file" "$ci"
 
 # This incantation avoids unbound variable issues if msbuild_args is empty
 # https://stackoverflow.com/questions/7577052/bash-empty-array-expansion-with-set-u

+ 1 - 3
build/AzureIntegration.targets

@@ -3,13 +3,11 @@
     <AzureIntegrationProjectRoot>$(MSBuildThisFileDirectory)..\src\AzureIntegration\</AzureIntegrationProjectRoot>
   </PropertyGroup>
 
-  <Target Name="BuildAzureIntegration" DependsOnTargets="PrepareOutputPaths;GeneratePropsFiles">
+  <Target Name="BuildAzureIntegration">
     <PropertyGroup>
       <AzureIntegrationProjProperties>
         AspNetUniverseBuildOffline=true;
         RepositoryRoot=$(AzureIntegrationProjectRoot);
-        DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
-        DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
         VersionSuffix=$(VersionSuffix);
         BuildNumberSuffix=$(BuildNumberSuffix);
         Configuration=$(Configuration);

+ 36 - 76
build/CodeSign.props

@@ -1,85 +1,45 @@
 <Project>
 
   <ItemGroup>
-    <!-- We don't need to code sign .js files because they are not used in Windows Script Host. -->
-    <FileExtensionsToSign Include=".js" CertificateName="None" />
-  </ItemGroup>
+    <!-- Use the PublicKeyToken of .NET assemblies to determine 'Microsoft' assemblies. -->
+    <AssemblyToSign Include="AspNetCore" PublicKeyToken="adb9793829ddae60" CertificateName="Microsoft400" />
+    <AssemblyToSign Include="MsSharedLib72" PublicKeyToken="31bf3856ad364e35" CertificateName="Microsoft400" />
+    <AssemblyToSign Include="MsftStrongName" PublicKeyToken="b03f5f7f11d50a3a" CertificateName="Microsoft400" />
+    <AssemblyToSign Include="MsftStrongName2" PublicKeyToken="b77a5c561934e089" CertificateName="Microsoft400" />
+    <AssemblyToSign Include="MsftOpenStrongName" PublicKeyToken="cc7b13ffcd2ddd51" CertificateName="Microsoft400" />
+
+    <!-- Native .dll's. These don't have a public key token, but are from Microsoft and should be signed. -->
+    <FileNamesToSign Include="aspnetcore.dll" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="aspnetcorev2_inprocess.dll" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="aspnetcorev2_outofprocess.dll" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="aspnetcorev2.dll" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="dotnet-blazor.exe" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="dotnet-dev-certs.exe" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="dotnet-sql-cache.exe" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="dotnet-user-secrets.exe" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="dotnet-watch.exe" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="Microsoft.AspNetCore.Blazor.Build.exe" CertificateName="Microsoft400" />
+    <FileNamesToSign Include="sni.dll" CertificateName="Microsoft400" />
 
-  <ItemGroup>
     <!-- Third-party components which should be signed.  -->
-      <!-- Microsoft.AspNetCore.App -->
-      <FilesToSign Include="Newtonsoft.Json.dll"                                           Certificate="$(AssemblySigning3rdPartyCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Newtonsoft.Json.Bson.dll"                                      Certificate="$(AssemblySigning3rdPartyCertName)" Container="Microsoft.AspNetCore.App" />
-
-    <!-- These files came from the aspnet/Extensions build, but have to be re-signed because we crossgen them. -->
-      <FilesToSign Include="Microsoft.Extensions.Caching.Abstractions.dll"                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Caching.Memory.dll"                        Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.Abstractions.dll"            Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.Binder.dll"                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.CommandLine.dll"             Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.dll"                         Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.EnvironmentVariables.dll"    Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.FileExtensions.dll"          Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.Ini.dll"                     Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.Json.dll"                    Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.KeyPerFile.dll"              Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.UserSecrets.dll"             Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Configuration.Xml.dll"                     Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.DependencyInjection.Abstractions.dll"      Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.DependencyInjection.dll"                   Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll" Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Diagnostics.HealthChecks.dll"              Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.FileProviders.Abstractions.dll"            Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.FileProviders.Composite.dll"               Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.FileProviders.Embedded.dll"                Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.FileProviders.Physical.dll"                Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.FileSystemGlobbing.dll"                    Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Hosting.Abstractions.dll"                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Hosting.dll"                               Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Http.dll"                                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Localization.Abstractions.dll"             Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Localization.dll"                          Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.AzureAppServices.dll"              Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.AzureAppServices.SiteExtension" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.Abstractions.dll"                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.Configuration.dll"                 Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.Console.dll"                       Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.Debug.dll"                         Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.EventSource.dll"                   Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.TraceSource.dll"                   Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Logging.dll"                               Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.ObjectPool.dll"                            Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Options.ConfigurationExtensions.dll"       Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Options.DataAnnotations.dll"               Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Options.dll"                               Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.Primitives.dll"                            Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.WebEncoders.dll"                           Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-
-      <!-- ANCM -->
-      <FilesToSign Include="aspnetcore.dll"                                                 Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="aspnetcorev2.dll"                                               Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="aspnetcorev2_inprocess.dll"                                     Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="aspnetcorev2_outofprocess.dll"                                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-
-      <!-- Used as part of site extension -->
-      <FilesToSign Include="Microsoft.Web.Xdt.Extensions.dll"                               Certificate="$(AssemblySigningCertName)" Container="AspNetCoreRuntime.3.0" />
-
-
-      <!-- This is a text file which doesn't need to be code signed, even though some .mof files can be signed. -->
-      <FilesToExcludeFromSigning Include="ancm.mof" />
-
-    <!-- These files came from partner teams. They have to be re-signed because we crossgen them and redistributable them in our installers. -->
+    <FileNamesToSign Include="Newtonsoft.Json.dll" CertificateName="3PartySHA2" />
+    <FileNamesToSign Include="AngleSharp.dll" CertificateName="3PartySHA2" />
+    <FileNamesToSign Include="Mono.Cecil.dll" CertificateName="3PartySHA2" />
+    <FileNamesToSign Include="Mono.Cecil.Mdb.dll" CertificateName="3PartySHA2" />
+    <FileNamesToSign Include="Mono.Cecil.Pdb.dll" CertificateName="3PartySHA2" />
+    <FileNamesToSign Include="Mono.Cecil.Rocks.dll" CertificateName="3PartySHA2" />
+  </ItemGroup>
 
-      <!-- Microsoft.AspNetCore.App -->
-      <FilesToSign Include="Microsoft.DotNet.PlatformAbstractions.dll"                      Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="Microsoft.Extensions.DependencyModel.dll"                       Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.IO.Pipelines.dll"                                        Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Net.WebSockets.WebSocketProtocol.dll"                    Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Runtime.CompilerServices.Unsafe.dll"                     Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Security.Cryptography.Pkcs.dll"                          Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Security.Cryptography.Xml.dll"                           Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Security.Permissions.dll"                                Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Text.Encodings.Web.dll"                                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
-      <FilesToSign Include="System.Threading.Channels.dll"                                  Certificate="$(AssemblySigningCertName)" Container="Microsoft.AspNetCore.App" />
+  <ItemGroup Label="Code sign exclusions">
+    <!-- We don't need to code sign .js files because they are not used in Windows Script Host. -->
+    <FileExtensionsToSign Include=".js" CertificateName="None" />
+    <!-- We don't produce font files. We rebundle some for using the web brower, so they do not need to be signed. -->
+    <FileExtensionsToSign Include=".otf" CertificateName="None" />
+    <FileExtensionsToSign Include=".ttf" CertificateName="None" />
+    <!-- This is a text file which doesn't need to be code signed, even though some .mof files can be signed. -->
+    <FileNamesToSign Include="ancm.mof" CertificateName="None" />
+    <!-- Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it. -->
+    <FileNamesToSign Include="apphost.exe" CertificateName="None" />
   </ItemGroup>
 
 </Project>

+ 13 - 64
build/CodeSign.targets

@@ -2,73 +2,22 @@
 
   <PropertyGroup>
     <CodeSignDependsOn>$(CodeSignDependsOn);CollectFileSignInfo</CodeSignDependsOn>
+    <RedistNetCorePath>$(IntermediateDir)ar\$(SharedFxRid)\</RedistNetCorePath>
   </PropertyGroup>
 
-  <Target Name="CollectFileSignInfo" DependsOnTargets="_PrepareRepositories;GetProjectArtifactInfo;GetFxProjectArtifactInfo">
-
-    <ItemGroup>
-      <_RepositoryProject Remove="@(_RepositoryProject)" />
-      <_RepositoryProject Include="$(MSBuildProjectFullPath)" Condition="'%(Repository.Identity)' != ''">
-        <AdditionalProperties>RepositoryRoot=%(Repository.RootPath)</AdditionalProperties>
-        <Build>%(Repository.Build)</Build>
-      </_RepositoryProject>
-      <_ShippedRepositoryProject Include="$(MSBuildProjectFullPath)" Condition="'%(ShippedRepository.Identity)' != ''">
-        <AdditionalProperties>RepositoryRoot=%(ShippedRepository.RootPath)</AdditionalProperties>
-        <Build>false</Build>
-      </_ShippedRepositoryProject>
-    </ItemGroup>
-
-    <PropertyGroup>
-      <GetFileSignInfoProps>
-        AssemblySigningCertName=$(AssemblySigningCertName);
-        AssemblySigning3rdPartyCertName=$(AssemblySigning3rdPartyCertName);
-        PowerShellSigningCertName=$(PowerShellSigningCertName);
-        PackageSigningCertName=$(PackageSigningCertName);
-        VsixSigningCertName=$(VsixSigningCertName);
-        JarSigningCertName=$(JarSigningCertName);
-        ArtifactsDir=$(ArtifactsDir)
-      </GetFileSignInfoProps>
-    </PropertyGroup>
-
-    <MSBuild Projects="@(_RepositoryProject)"
-             Condition="@(_RepositoryProject->Count()) != 0"
-             Targets="_GetFileSignInfo"
-             Properties="$(GetFileSignInfoProps);$(DesignTimeBuildProps);DesignTimeBuild=true;Configuration=$(Configuration);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix);CustomAfterKoreBuildTargets=$(MSBuildThisFileFullPath)"
-             BuildInParallel="true">
-      <Output TaskParameter="TargetOutputs" ItemName="_RepoFileSignInfo" />
-    </MSBuild>
-    <MSBuild Projects="@(_ShippedRepositoryProject)"
-             Condition="@(_ShippedRepositoryProject->Count()) != 0"
-             Targets="_GetFileSignInfo"
-             Properties="$(GetFileSignInfoProps);$(DesignTimeBuildProps);IsFinalBuild=true;DesignTimeBuild=true;Configuration=$(Configuration);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix);CustomAfterKoreBuildTargets=$(MSBuildThisFileFullPath)"
-             BuildInParallel="true">
-      <Output TaskParameter="TargetOutputs" ItemName="_ShippedRepoFileSignInfo" />
-    </MSBuild>
-
-    <ItemGroup>
-      <!-- If repos were not built, only use this info to collect the mapping of FileName -> Certificate. Otherwise, include .nupkg and .zips in signing. -->
-      <_FilesToSign Include="@(_RepoFileSignInfo)" Condition="'%(_RepoFileSignInfo.IsFileToSign)' == 'true' AND ('$(_ReposWereBuilt)' == 'true' OR '%(_RepoFileSignInfo.Container)' != '' ) " />
-      <_FilesToSign Include="@(_ShippedRepoFileSignInfo)" Condition="'%(_ShippedRepoFileSignInfo.IsFileToSign)' == 'true' AND '%(_ShippedRepoFileSignInfo.Container)' != '' " />
-      <FilesToSign Include="@(_FilesToSign)" />
-
-      <!-- Normalize FilesToExcludeFromSigning to filename + extension. -->
-      <_Temp Remove="@(_Temp)" />
-      <_Temp Include="@(FilesToExcludeFromSigning)" />
-      <FilesToExcludeFromSigning Remove="@(FilesToExcludeFromSigning)" />
-      <FilesToExcludeFromSigning Include="@(_Temp->'%(FileName)%(Extension)')" />
-      <_Temp Remove="@(_Temp)" />
-
-      <FilesToExcludeFromSigning Include="@(_ShippedRepoFileSignInfo->'%(FileName)%(Extension)')" Condition="'%(_ShippedRepoFileSignInfo.IsFileToExcludeFromSign)' == 'true'" />
-      <FilesToExcludeFromSigning Include="@(_RepoFileSignInfo->'%(FileName)%(Extension)')" Condition="'%(_RepoFileSignInfo.IsFileToExcludeFromSign)' == 'true'" />
-      <!-- Workaround for the way we have both repo and Universe builds, crossgen AND uncrossgened outputs. This prevents duplicate configuration between 'exclude' and 'sign' options. -->
-      <FilesToExcludeFromSigning Remove="@(FilesToSign->'%(FileName)%(Extension)')" />
-    </ItemGroup>
-  </Target>
-
-  <Target Name="_GetFileSignInfo" DependsOnTargets="GetArtifactInfo" Returns="@(_FileSignInfo)">
+  <Target Name="CollectFileSignInfo">
     <ItemGroup>
-      <_FileSignInfo Include="@(FilesToSign)" IsFileToSign="true" />
-      <_FileSignInfo Include="@(FilesToExcludeFromSigning)" IsFileToExcludeFromSign="true" />
+      <FilesToSign Include="$(ArtifactsShippingPackagesDir)*.jar" Certificate="MicrosoftJAR" />
+      <FilesToSign Include="$(ArtifactsShippingPackagesDir)*.nupkg" Exclude="$(ArtifactsShippingPackagesDir)*.symbols.nupkg" Certificate="NuGet" />
+      <FilesToSign Include="$(ArtifactsNonShippingPackagesDir)*.nupkg" Exclude="$(ArtifactsNonShippingPackagesDir)*.symbols.nupkg" Certificate="NuGet" />
+      <FilesToSign Include="$(VisualStudioSetupOutputPath)*.vsix" Certificate="VsixSHA2" />
+      <!-- "None" means don't sign the .zip file itself, but still scan the contents of the .zip for signable files. -->
+      <FilesToSign Include="$(InstallersOutputPath)*.zip" Certificate="None" />
+
+      <!-- These files should already be signed by the .NET Core team. They have to be listed again here because we recreate a redistributable which includes the Microsoft.NETCore.App runtime. -->
+      <FilesToExcludeFromSigning Include="$(RedistNetCorePath)shared\Microsoft.NETCore.App\**\*.dll" />
+      <FilesToExcludeFromSigning Include="$(RedistNetCorePath)host\**\*.dll" />
+      <FilesToExcludeFromSigning Include="$(RedistNetCorePath)dotnet.exe" />
     </ItemGroup>
   </Target>
 </Project>

+ 0 - 160
build/RepositoryBuild.targets

@@ -1,160 +0,0 @@
-<Project>
-
-  <PropertyGroup>
-    <!-- Experimental flag to run assemblies AND repos tests in parallel...if you dare. -->
-    <TestReposInParallel>false</TestReposInParallel>
-
-    <_NoBuildRepos>$(NoBuild)</_NoBuildRepos>
-    <_BuildScriptToExecute Condition="'$(OS)'!='Windows_NT'">build.sh</_BuildScriptToExecute>
-    <_BuildScriptToExecute Condition="'$(OS)'=='Windows_NT'">build.cmd</_BuildScriptToExecute>
-  </PropertyGroup>
-
-  <Target Name="GetRepoBatches" DependsOnTargets="GeneratePropsFiles;ComputeGraph">
-    <ItemGroup>
-      <RepositoryBuildOrder Condition="'%(RootPath)' == ''">
-        <RootPath>$(SubmoduleRoot)%(Identity)\</RootPath>
-      </RepositoryBuildOrder>
-      <BatchedRepository Include="$(MSBuildProjectFullPath)">
-        <BuildGroup>%(RepositoryBuildOrder.Order)</BuildGroup>
-        <Repository>%(RepositoryBuildOrder.Identity)</Repository>
-        <AdditionalProperties>
-          RepositoryToBuild=%(RepositoryBuildOrder.Identity);
-          BuildRepositoryRoot=$([MSBuild]::NormalizeDirectory(%(RepositoryBuildOrder.RootPath)))
-        </AdditionalProperties>
-      </BatchedRepository>
-    </ItemGroup>
-  </Target>
-
-  <Target Name="_BuildRepositories" DependsOnTargets="GetRepoBatches" Condition=" @(RepositoryBuildOrder->Count()) != 0 ">
-    <MSBuild
-      Projects="@(BatchedRepository)"
-      BuildInParallel="true"
-      StopOnFirstFailure="true"
-      Targets="_BuildRepository"
-      Properties="BuildGroup=%(BatchedRepository.BuildGroup);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix);IsFinalBuild=$(IsFinalBuild);Configuration=$(Configuration)" />
-
-    <PropertyGroup>
-      <_ReposWereBuilt>true</_ReposWereBuilt>
-      <_NoBuildRepos>true</_NoBuildRepos>
-    </PropertyGroup>
-  </Target>
-
-  <Target Name="_TestRepositories" DependsOnTargets="GetRepoBatches" Condition=" @(RepositoryBuildOrder->Count()) != 0 ">
-    <!--
-      Use the task to sort instead of batching (i.e. using %(BatchedRepository.BuildGroup))
-      When batching, StopOnFirstFailure doesn't help because the MSBuild task would be invoked multiple times
-      instead of invoking once with many projects.
-    -->
-    <RepoTasks.OrderBy Items="@(BatchedRepository)" Key="BuildGroup">
-      <Output TaskParameter="Items" ItemName="_BatchedTestRepo" />
-    </RepoTasks.OrderBy>
-
-    <MSBuild
-      Projects="@(_BatchedTestRepo)"
-      BuildInParallel="$(TestProjectsInParallel)"
-      StopOnFirstFailure="false"
-      Targets="_TestRepository"
-      Properties="VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix);IsFinalBuild=$(IsFinalBuild);Configuration=$(Configuration);_NoBuildRepos=$(_NoBuildRepos)"
-      ContinueOnError="true">
-      <Output TaskParameter="TargetOutputs" ItemName="_RepoTestResults" />
-    </MSBuild>
-
-    <Warning Text="No test results were found from running repos." Condition="@(_RepoTestResults->Count()) == 0"/>
-    <Message Text="Tests passed for the following repos:%0A - @(_RepoTestResults->WithMetadataValue('Success', 'true'), '%0A - ')"
-      Importance="High"
-      Condition="@(_RepoTestResults->WithMetadataValue('Success', 'true')->Count()) != 0 " />
-    <Error Text="Tests failed for the following repos:%0A - @(_RepoTestResults->WithMetadataValue('Success', 'false'), '%0A - ')"
-      Condition="@(_RepoTestResults->WithMetadataValue('Success', 'false')->Count()) != 0 " />
-  </Target>
-
-  <!-- Inner build context -->
-
-  <Target Name="GetRepoBuildProps">
-    <PropertyGroup>
-      <SkipTestsDueToMissingSharedFx Condition="'$(InstallSharedRuntimeFromPreviousBuild)' != 'true' And '$(TestsRequiredTheSharedRuntime)' == 'true' ">true</SkipTestsDueToMissingSharedFx>
-
-      <RepositoryBuildArguments Condition="'$(CI)'== 'true'">$(RepositoryBuildArguments) -ci</RepositoryBuildArguments>
-      <!-- Should reduce allowable package feeds to only nuget.org. -->
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:AspNetUniverseBuildOffline=true</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:IsUniverseBuild=true</RepositoryBuildArguments>
-      <!-- If there are duplicate properties, the properties which are defined later in the order would override the earlier ones -->
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath)</RepositoryBuildArguments>
-      <!-- Unset 'SignType' because we collect all outputs from repo builds and sign them at the end. -->
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:SignType=</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:VersionSuffix=$(VersionSuffix)</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:BuildNumberSuffix=$(BuildNumberSuffix)</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:Configuration=$(Configuration)</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:IsFinalBuild=$(IsFinalBuild)</RepositoryBuildArguments>
-      <!-- Disable broken features of KoreBuild that we're planning to kill off anyways -->
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DisablePackageReferenceRestrictions=true</RepositoryBuildArguments>
-      <!-- We collect all output and code sign at the end. We don't need to code sign when we build each submodule. -->
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) /p:DisableCodeSigning=true</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) '/p:DotNetAssetRootAccessTokenSuffix=$(DotNetAssetRootAccessTokenSuffix)'</RepositoryBuildArguments>
-      <RepositoryBuildArguments>$(RepositoryBuildArguments) '/p:DotNetAssetRootUrl=$(DotNetAssetRootUrl)'</RepositoryBuildArguments>
-      <RepositoryBuildArguments Condition=" '$(SkipTestsDueToMissingSharedFx)' == 'true' ">$(RepositoryBuildArguments) /p:SkipAspNetCoreRuntimeInstall=true</RepositoryBuildArguments>
-    </PropertyGroup>
-  </Target>
-
-  <Target Name="_BuildRepository" DependsOnTargets="GetRepoBuildProps">
-    <PropertyGroup>
-      <BuildArguments>/t:CleanArtifacts /t:Build /p:SkipTests=true $(RepositoryBuildArguments)</BuildArguments>
-      <BuildArguments Condition="'$(ProduceRepoBinLog)' == 'true'">$(BuildArguments) /bl:$(LogOutputDir)$(RepositoryToBuild).build.binlog</BuildArguments>
-      <RepositoryArtifactsMSBuildDirectory>$(BuildRepositoryRoot)artifacts\msbuild\</RepositoryArtifactsMSBuildDirectory>
-    </PropertyGroup>
-
-    <Message Text="============ Building $(RepositoryToBuild) ============" Importance="High" />
-
-    <Exec
-      Command="./$(_BuildScriptToExecute) -RepoRoot $(BuildRepositoryRoot.TrimEnd('\').TrimEnd('/')) $(BuildArguments)"
-      IgnoreStandardErrorWarningFormat="true"
-      WorkingDirectory="$(RepositoryRoot)"
-      IgnoreExitCode="true"
-      ContinueOnError="WarnAndContinue">
-      <Output TaskParameter="ExitCode" PropertyName="BuildExitCode" />
-    </Exec>
-
-    <!-- Fail if build.cmd didn't exit code 0 or process failed to start. -->
-    <Error Text="Building $(RepositoryToBuild) failed: $(_BuildScriptToExecute) exited code $(BuildExitCode)" Condition=" '$(BuildExitCode)' != '0' " />
-
-    <ItemGroup>
-      <RepositoryMSBuildArtifacts Include="$(RepositoryArtifactsMSBuildDirectory)**\*" />
-    </ItemGroup>
-
-    <Move
-       SourceFiles="@(RepositoryMSBuildArtifacts)"
-       DestinationFolder="$(ArtifactsDir)msbuild\$(RepositoryToBuild)\%(RecursiveDir)" />
-
-    <Message Text="============ Done building $(RepositoryToBuild) ============" Importance="High" />
-  </Target>
-
-  <Target Name="_TestRepository" DependsOnTargets="GetRepoBuildProps" Returns="@(RepositoryTestResult)">
-    <PropertyGroup>
-      <BuildArguments>/t:Test /p:NoBuild=$(_NoBuildRepos) $(RepositoryBuildArguments)</BuildArguments>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <RepositoryTestResult Include="$(RepositoryToBuild)" Success="false" />
-    </ItemGroup>
-
-    <!-- To enable this test, either publish the shared runtime to https://dotnetcli.blob.core.windows.net/dotnet, or override the install location by setting AspNetCoreFxFeed. -->
-    <Warning Text="Skipping tests because InstallSharedRuntimeFromPreviousBuild != 'true'." Condition="'$(SkipTestsDueToMissingSharedFx)' == 'true' "/>
-
-    <Message Text="============ Testing $(RepositoryToBuild) ============" Importance="High" />
-
-    <Exec Condition="'$(SkipTestsDueToMissingSharedFx)' != 'true' "
-      Command="./$(_BuildScriptToExecute) -RepoRoot $(BuildRepositoryRoot) $(BuildArguments)"
-      IgnoreStandardErrorWarningFormat="true"
-      WorkingDirectory="$(RepositoryRoot)"
-      IgnoreExitCode="true">
-      <Output TaskParameter="ExitCode" PropertyName="TestExitCode" />
-    </Exec>
-
-    <ItemGroup>
-      <RepositoryTestResult Update="$(RepositoryToBuild)" Success="true" Condition="'$(TestExitCode)' == '0' OR '$(SkipTestsDueToMissingSharedFx)' == 'true' " />
-    </ItemGroup>
-
-    <Message Text="============ Done testing $(RepositoryToBuild) ============" Importance="High" />
-  </Target>
-
-</Project>

+ 1 - 1
build/SharedFrameworkOnly.props

@@ -20,7 +20,7 @@
     <SharedFrameworkAndPackage Include="Microsoft.AspNetCore.Connections.Abstractions" />
     <SharedFrameworkAndPackage Include="Microsoft.AspNetCore.Http.Connections.Common" />
 
-    <SharedFrameworkOnlyPackage Include="@(Dependency)" Exclude="@(SharedFrameworkAndPackage)" />
+    <SharedFrameworkOnlyPackage Include="@(Dependency)" Exclude="@(SharedFrameworkAndPackage);@(ExternalDependency)" />
   </ItemGroup>
 
 </Project>

+ 2 - 58
build/SharedFx.targets

@@ -2,11 +2,8 @@
   <PropertyGroup>
     <UnitTestFxProject>$(RepositoryRoot)src\Framework\test\Microsoft.AspNetCore.App.UnitTests.csproj</UnitTestFxProject>
     <UnitTestFxProject>$([MSBuild]::NormalizePath($(UnitTestFxProject)))</UnitTestFxProject>
-    <CodeSignDependsOn>$(CodeSignDependsOn);GetSharedFxFilesToSign</CodeSignDependsOn>
     <BuildSharedFxDependsOn>_BuildSharedFxProjects;TestSharedFx</BuildSharedFxDependsOn>
     <BuildSharedFxDependsOn Condition="'$(TestOnly)' != 'true'">$(BuildSharedFxDependsOn);CodeSign</BuildSharedFxDependsOn>
-    <RedistNetCorePath>$(IntermediateDir)ar\$(SharedFxRid)\</RedistNetCorePath>
-    <GetArtifactInfoDependsOn>$(GetArtifactInfo);GetFxProjectArtifactInfo</GetArtifactInfoDependsOn>
   </PropertyGroup>
 
   <ItemGroup>
@@ -24,27 +21,7 @@
 
   <Target Name="BuildSharedFx" DependsOnTargets="$(BuildSharedFxDependsOn)" />
 
-  <Target Name="GetSharedFxFilesToSign">
-    <ItemGroup>
-      <FilesToSign Include="$(InstallersOutputPath)aspnetcore-runtime-$(PackageVersion)-$(SharedFxRid).zip" Certificate="None" />
-      <FilesToSign Include="$(InstallersOutputPath)aspnetcore-runtime-internal-$(PackageVersion)-$(SharedFxRid).zip" Certificate="None" />
-      <FilesToSign Include="$(ArtifactsShippingPackagesDir)Microsoft.AspNetCore.App.$(PackageVersion).nupkg" Certificate="$(PackageSigningCertName)" />
-      <FilesToSign Include="$(ArtifactsShippingPackagesDir)runtime.$(SharedFxRid).Microsoft.AspNetCore.App.$(PackageVersion).nupkg" Certificate="$(PackageSigningCertName)" />
-      <FilesToSign Include="$(ArtifactsShippingPackagesDir)runtime.$(SharedFxRid).Microsoft.AspNetCore.App.$(PackageVersion).symbols.nupkg" Certificate="$(PackageSigningCertName)" />
-      <FilesToSign Include="$(ArtifactsShippingPackagesDir)AspNetCoreRuntime.3.0.$(SharedFxArchitecture).$(PackageVersion).nupkg" Condition=" '$(BuildSiteExtensions)' == 'true' " Certificate="$(PackageSigningCertName)" />
-      <FilesToSign Include="$(ArtifactsNonShippingPackagesDir)Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(SharedFxArchitecture).$(PackageVersion).nupkg" Condition=" '$(BuildSiteExtensions)' == 'true' " Certificate="$(PackageSigningCertName)" />
-    </ItemGroup>
-
-    <!-- These files should already be signed by the .NET Core team. They have to be listed again here because we recreate a redistributable which includes the Microsoft.NETCore.App runtime. -->
-    <ItemGroup>
-      <FilesToExcludeFromSigning Include="$(RedistNetCorePath)shared\Microsoft.NETCore.App\**\*.dll" />
-      <FilesToExcludeFromSigning Include="$(RedistNetCorePath)host\**\*.dll" />
-      <FilesToExcludeFromSigning Include="$(RedistNetCorePath)dotnet.exe" />
-    </ItemGroup>
-
-  </Target>
-
-  <Target Name="_BuildSharedFxProjects" DependsOnTargets="GeneratePropsFiles;ResolveCommitHash">
+  <Target Name="_BuildSharedFxProjects" DependsOnTargets="ResolveCommitHash">
 
     <PropertyGroup>
       <_RestoreGraphProjectInput>@(FxProjectToBuild)</_RestoreGraphProjectInput>
@@ -52,8 +29,6 @@
         $(BuildProperties);
         SharedFxRid=$(SharedFxRid);
         SharedFxArchitecture=$(SharedFxArchitecture);
-        DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
-        DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
         PackageVersion=$(PackageVersion)
       </SharedFxBuildProperties>
     </PropertyGroup>
@@ -73,7 +48,7 @@
              SkipNonexistentTargets="true" />
   </Target>
 
-  <Target Name="TestSharedFx" DependsOnTargets="GeneratePropsFiles;InstallDotNet">
+  <Target Name="TestSharedFx" DependsOnTargets="InstallDotNet">
 
     <PropertyGroup>
       <!-- The file path to the log file, from within the container -->
@@ -104,35 +79,4 @@
     <Error Text="SharedFx.UnitTests failed with exit code '$(VsTestExitCode)'." Condition=" $(VsTestExitCode) != 0 " />
   </Target>
 
-  <Target Name="GetFxProjectArtifactInfo" Returns="@(ArtifactInfo)">
-    <PropertyGroup>
-      <_InspectionTargetsFile>$(MSBuildProjectDirectory)\Project.Inspection.targets</_InspectionTargetsFile>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <_Temp Remove="@(_Temp)" />
-    </ItemGroup>
-
-    <MSBuild Targets="GetArtifactInfo"
-             Projects="@(FxProjectToBuild)"
-             Condition="@(FxProjectToBuild->Count()) != 0"
-             Properties="$(BuildProperties);DesignTimeBuild=true;EnableApiCheck=false;NoBuild=true;CustomAfterMicrosoftCommonTargets=$(_InspectionTargetsFile);CustomAfterMicrosoftCommonCrossTargetingTargets=$(_InspectionTargetsFile)"
-             BuildInParallel="$(BuildInParallel)"
-             RemoveProperties="$(_BuildPropertiesToRemove)">
-
-      <Output TaskParameter="TargetOutputs" ItemName="_Temp" />
-    </MSBuild>
-
-    <ItemGroup>
-      <!-- Output from this target may include items representing assemblies inside the nupkg. -->
-      <ArtifactInfo Include="@(_Temp)" Condition="'%(_Temp.Container)' == ''" />
-
-      <!-- Nupkgs or assemblies in the nupkg that should be signed -->
-      <FilesToSign Include="@(_Temp)" Condition=" '%(_Temp.ShouldBeSigned)' == 'true' " />
-
-      <!-- Nupkgs or assemblies in the nupkg that should not be signed -->
-      <FilesToExcludeFromSigning Include="@(_Temp)" Condition=" '%(_Temp.ShouldBeSigned)' != 'true' " />
-    </ItemGroup>
-  </Target>
-
 </Project>

+ 0 - 172
build/artifacts.props

@@ -1,172 +0,0 @@
-<!--
-TODO: remove this file completely and make the .csproj the final arbiter of which 'shipping' category the package belongs in.
-This can be done once #4246 is complete, and done in conjunction with converting our projects to build with FrameworkReference (https://github.com/aspnet/AspNetCore/issues/4257)
--->
-<Project>
-
-  <ItemDefinitionGroup>
-    <PackageArtifact>
-      <!-- Defines how and where the package ships.
-
-        ship = deploys to nuget.org, for production usage
-        noship = internal, experimental, or otherwise.
-      -->
-      <Category></Category>
-    </PackageArtifact>
-  </ItemDefinitionGroup>
-
-  <ItemGroup>
-    <!-- Packages that go to nuget.org -->
-    <PackageArtifact Include="AspNetCoreRuntime.3.0.$(SharedFxArchitecture)" Category="ship" Condition=" '$(BuildSiteExtensions)' == 'true' " />
-    <PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Facebook" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Google" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.JwtBearer" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Twitter" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Authentication.WsFederation" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Blazor" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Blazor.Build" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Blazor.Cli" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Blazor.Server" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Blazor.Templates" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Components.Analyzers" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Components.Browser" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Components.Build" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Components.Server" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Components" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Connections.Abstractions" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Hosting.WindowsServices" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Client" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Common" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Http.Features" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Identity.Specification.Tests" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Identity.UI" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.JsonPatch" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Api.Analyzers" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Testing" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.NodeServices" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Owin" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Client.Core" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Client" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Common" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Specification.Tests" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SpaServices.Extensions" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.SpaServices" Category="ship" />
-    <PackageArtifact Include="Microsoft.AspNetCore.TestHost" Category="ship" />
-    <PackageArtifact Include="Microsoft.DotNet.Web.Client.ItemTemplates" Category="ship" />
-    <PackageArtifact Include="Microsoft.DotNet.Web.ItemTemplates" Category="ship" />
-    <PackageArtifact Include="Microsoft.DotNet.Web.ProjectTemplates.3.0" Category="ship" />
-    <PackageArtifact Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Category="ship" />
-    <PackageArtifact Include="Microsoft.Extensions.ApiDescription.Design" Category="ship" />
-    <PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Category="ship" />
-    <PackageArtifact Include="runtime.$(SharedFxRid).Microsoft.AspNetCore.App" Category="ship" />
-
-    <!-- Experimental packages which are not ready for production yet -->
-      <PackageArtifact Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(SharedFxArchitecture)" Category="noship" Condition=" '$(BuildSiteExtensions)' == 'true' " />
-
-    <!-- Packages for internal use only. -->
-      <!-- These packages contain CLI tools which are bundled in the .NET Core SDK. -->
-      <PackageArtifact Include="dotnet-dev-certs" Category="noship" />
-      <PackageArtifact Include="dotnet-sql-cache" Category="noship" />
-      <PackageArtifact Include="dotnet-user-secrets" Category="noship" />
-      <PackageArtifact Include="dotnet-watch" Category="noship" />
-
-    <!-- This package contains API for the .NET CLI to generate the aspnet HTTPs dev cert during CLI first-run initialization. -->
-      <PackageArtifact Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" Category="noship" />
-
-    <!-- This packages are produce for testing purposes only. -->
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.IntegrationTesting" Category="noship" />
-
-    <!-- These packages are produced temporarily while we finish refactoring the way this repo builds. See https://github.com/aspnet/AspNetCore/issues/4246 -->
-      <PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authentication.Core" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authentication.OAuth" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authentication" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authorization.Policy" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Authorization" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.CookiePolicy" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Cors" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Cryptography.Internal" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Extensions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.DataProtection" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Diagnostics" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.HostFiltering" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Hosting.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Hosting" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Html.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Http.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Http.Connections" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Http.Extensions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Http" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.HttpOverrides" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.HttpsPolicy" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Identity" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Localization.Routing" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Localization" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Cors" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Localization" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.RazorPages" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.TagHelpers" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Mvc" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Razor.Runtime" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Razor" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.ResponseCompression" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Rewrite" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Routing.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Routing" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.HttpSys" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.IIS" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.IISIntegration" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Core" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.Session" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.SignalR.Core" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.SignalR" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.StaticFiles" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.WebSockets" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore.WebUtilities" Category="noship" />
-      <PackageArtifact Include="Microsoft.AspNetCore" Category="noship" />
-      <PackageArtifact Include="Microsoft.Extensions.Identity.Core" Category="noship" />
-      <PackageArtifact Include="Microsoft.Extensions.Identity.Stores" Category="noship" />
-      <PackageArtifact Include="Microsoft.Net.Http.Headers" Category="noship" />
-  </ItemGroup>
-</Project>

+ 0 - 11
build/buildorder.props

@@ -1,11 +0,0 @@
-<Project>
-  <ItemDefinitionGroup>
-    <RepositoryBuildOrder>
-      <Order></Order>
-      <RootPath></RootPath>
-    </RepositoryBuildOrder>
-  </ItemDefinitionGroup>
-
-  <ItemGroup>
-  </ItemGroup>
-</Project>

+ 0 - 63
build/external-dependencies.props

@@ -1,63 +0,0 @@
-<Project>
-  <Import Project="..\eng\Versions.props" />
-
-  <ItemDefinitionGroup>
-    <ExternalDependency>
-      <!-- The NuGet package version. Floating versions not allowed. -->
-      <Version></Version>
-    </ExternalDependency>
-  </ItemDefinitionGroup>
-
-  <ItemGroup>
-    <!-- Packages from aspnet/Extensions -->
-    <ExternalDependency Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="$(MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion)" />
-    <ExternalDependency Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Caching.Abstractions" Version="$(MicrosoftExtensionsCachingAbstractionsPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="$(MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Configuration.UserSecrets" Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.DependencyInjection.Specification.Tests" Version="$(MicrosoftExtensionsDependencyInjectionSpecificationTestsPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.DiagnosticAdapter" Version="$(MicrosoftExtensionsDiagnosticAdapterPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Logging.Configuration" Version="$(MicrosoftExtensionsLoggingConfigurationPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-    <ExternalDependency Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
-    <ExternalDependency Include="Microsoft.JSInterop" Version="$(MicrosoftJSInteropPackageVersion)" />
-
-    <!-- Packages from aspnet/EntityFrameworkCore -->
-    <ExternalDependency Include="dotnet-ef" Version="$(DotNetEfPackageVersion)" />
-    <ExternalDependency Include="Microsoft.EntityFrameworkCore.Design" Version="$(MicrosoftEntityFrameworkCoreDesignPackageVersion)" />
-    <ExternalDependency Include="Microsoft.EntityFrameworkCore.InMemory" Version="$(MicrosoftEntityFrameworkCoreInMemoryPackageVersion)" />
-    <ExternalDependency Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)" />
-    <ExternalDependency Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)" />
-    <ExternalDependency Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftEntityFrameworkCoreToolsPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ExternalDependency Include="AngleSharp" Version="$(AngleSharpPackageVersion)" />
-    <ExternalDependency Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
-    <ExternalDependency Include="Internal.AspNetCore.Sdk" Version="$(InternalAspNetCoreSdkPackageVersion)" />
-    <ExternalDependency Include="Libuv" Version="$(LibuvPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkPackageVersion)" />
-    <ExternalDependency Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
-    <ExternalDependency Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
-    <ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
-    <ExternalDependency Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
-    <ExternalDependency Include="Selenium.Support" Version="$(SeleniumSupportPackageVersion)" />
-    <ExternalDependency Include="Selenium.WebDriver.MicrosoftDriver" Version="$(SeleniumWebDriverMicrosoftDriverPackageVersion)" />
-    <ExternalDependency Include="Selenium.WebDriver" Version="$(SeleniumWebDriverPackageVersion)" />
-    <ExternalDependency Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
-    <ExternalDependency Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" />
-    <ExternalDependency Include="System.Text.Encodings.Web" Version="$(SystemTextEncodingsWebPackageVersion)" />
-    <ExternalDependency Include="xunit.analyzers" Version="$(XunitAnalyzersPackageVersion)" />
-    <ExternalDependency Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualstudioPackageVersion)" />
-    <ExternalDependency Include="xunit" Version="$(XunitPackageVersion)" />
-  </ItemGroup>
-
-</Project>

+ 2 - 6
build/repo.props

@@ -13,11 +13,10 @@
 
     <IsFinalBuild Condition="'$(IsFinalBuild)' == ''">false</IsFinalBuild>
 
-    <SubmoduleRoot>$(RepositoryRoot)src\</SubmoduleRoot>
-
     <ArtifactsShippingPackagesDir>$(ArtifactsDir)packages\$(Configuration)\Shipping\</ArtifactsShippingPackagesDir>
     <ArtifactsNonShippingPackagesDir>$(ArtifactsDir)packages\$(Configuration)\NonShipping\</ArtifactsNonShippingPackagesDir>
     <InstallersOutputPath>$(ArtifactsDir)installers\$(Configuration)\</InstallersOutputPath>
+    <VisualStudioSetupOutputPath>$(ArtifactsDir)VSSetup\$(Configuration)\</VisualStudioSetupOutputPath>
 
     <SignCheckExclusionsFile>$(RepositoryRoot)eng\signcheck.exclusions.txt</SignCheckExclusionsFile>
 
@@ -161,10 +160,7 @@
     </Otherwise>
   </Choose>
 
+  <Import Project="..\eng\Versions.props" />
   <Import Project="runtimes.props" />
-  <Import Project="sources.props" />
-  <Import Project="external-dependencies.props" />
-  <Import Project="artifacts.props" />
-  <Import Project="submodules.props" />
   <Import Project="CodeSign.props" />
 </Project>

+ 7 - 197
build/repo.targets

@@ -1,18 +1,14 @@
 <Project>
-  <Import Project="RepositoryBuild.targets" />
   <Import Project="AzureIntegration.targets" />
   <Import Project="SharedFx.targets" />
   <Import Project="CodeSign.targets" />
   <Import Project="Publish.targets" />
-  <Import Project="buildorder.props" />
+  <Import Project="..\eng\Workarounds.targets" />
 
   <PropertyGroup>
     <!-- Some projects need access to tasks bundled in KoreBuild. -->
     <BuildProperties>$(BuildProperties);BuildToolsTaskAssembly=$(_BuildToolsAssembly)</BuildProperties>
 
-    <GeneratedPackageVersionPropsPath>$(IntermediateDir)dependencies.g.props</GeneratedPackageVersionPropsPath>
-    <GeneratedRestoreSourcesPropsPath>$(IntermediateDir)sources.g.props</GeneratedRestoreSourcesPropsPath>
-
     <!-- Reset the default korebuild lifecycle. -->
     <BuildDependsOn>Prepare</BuildDependsOn>
     <!-- Map bootstrapper flags to KoreBuild targets -->
@@ -23,37 +19,25 @@
     <SkipTests Condition=" '$(_RunTests)' != 'true' ">true</SkipTests>
     <DisableCodeSigning Condition=" '$(_RunSign)' != 'true' OR '$(OS)' != 'Windows_NT' ">true</DisableCodeSigning>
 
-    <PrepareDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(PrepareDependsOn);VerifyPackageArtifactConfig;VerifyExternalDependencyConfig;PrepareOutputPaths</PrepareDependsOn>
-
-    <CleanDependsOn>$(CleanDependsOn);CleanArtifacts;CleanRepoArtifacts</CleanDependsOn>
+    <CleanDependsOn>$(CleanDependsOn);CleanArtifacts</CleanDependsOn>
 
     <RestoreDependsOn>$(RestoreDependsOn);InstallDotNet;RestoreProjects</RestoreDependsOn>
 
     <CompileDependsOn />
     <CompileDependsOn Condition=" '$(_RunRestore)' == 'true' ">Restore</CompileDependsOn>
-    <CompileDependsOn>$(CompileDependsOn);BuildProjects;PackSharedSources</CompileDependsOn>
-    <CompileDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(CompileDependsOn);PackProjects;BuildRepositories;BuildSharedFx</CompileDependsOn>
+    <CompileDependsOn>$(CompileDependsOn);BuildProjects</CompileDependsOn>
 
     <PackageDependsOn>$(PackageDependsOn);PackProjects</PackageDependsOn>
-    <PackageDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(PackageDependsOn);RemoveSharedFrameworkOnlyRefsFromNuspec</PackageDependsOn>
+    <PackageDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(PackageDependsOn);BuildSharedFx;RemoveSharedFrameworkOnlyRefsFromNuspec</PackageDependsOn>
 
     <TestDependsOn />
     <TestDependsOn Condition=" '$(_RunBuild)' == 'true' ">$(TestDependsOn);Compile</TestDependsOn>
     <TestDependsOn>$(TestDependsOn);TestProjects</TestDependsOn>
-    <TestDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(TestDependsOn);_TestRepositories</TestDependsOn>
-
-    <GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);GetProjectArtifactInfo</GetArtifactInfoDependsOn>
-    <GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);ResolveSharedSourcesPackageInfo</GetArtifactInfoDependsOn>
-    <GetArtifactInfoDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(GetArtifactInfoDependsOn);ResolveRepoInfo</GetArtifactInfoDependsOn>
 
     <!-- Package modification must happen before code signing. -->
     <CodeSignDependsOn>$(CodeSignDependsOn);RemoveSharedFrameworkOnlyRefsFromNuspec</CodeSignDependsOn>
   </PropertyGroup>
 
-  <Target Name="PrepareOutputPaths">
-    <MakeDir Directories="$(ArtifactsDir);$(ArtifactsShippingPackagesDir);$(ArtifactsNonShippingPackagesDir)" />
-  </Target>
-
   <Target Name="GenerateProjectList" DependsOnTargets="ResolveProjects">
     <MSBuild Projects="@(ProjectToBuild)"
              Targets="GetReferencesProvided"
@@ -85,190 +69,16 @@
     <WriteLinesToFile File="$(ProjectListFile)" Lines="$(ProjectListContent)" Overwrite="true" />
   </Target>
 
-  <Target Name="_ResolveProjectArtifactsInfoShipped" AfterTargets="GetProjectArtifactInfo">
-    <ItemGroup>
-      <ShippedArtifactInfo Include="@(ArtifactInfo)" Condition="'%(ArtifactInfo.IsShipped)' == 'true'" />
-      <ArtifactInfo Remove="@(ShippedArtifactInfo)" />
-    </ItemGroup>
-  </Target>
-
-  <Target Name="ResolveRepoInfo" DependsOnTargets="_ResolveProjectArtifactsInfoShipped;_PrepareRepositories">
-    <!-- We need to pass the NETCoreApp package versions to msbuild so that it doesn't complain about us using a different one than it was restored against.  -->
-    <PropertyGroup>
-      <DesignTimeBuildProps>$(BuildProperties);MicrosoftNETCoreAppPackageVersion=$(MicrosoftNETCoreAppPackageVersion);</DesignTimeBuildProps>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <_RepositoryProject Include="$(MSBuildProjectFullPath)" Condition="'%(Repository.Identity)' != ''">
-        <AdditionalProperties>RepositoryRoot=%(Repository.RootPath)</AdditionalProperties>
-        <Build>%(Repository.Build)</Build>
-      </_RepositoryProject>
-    </ItemGroup>
-
-    <MSBuild Projects="@(_RepositoryProject)"
-             Targets="GetArtifactInfo"
-             Properties="$(DesignTimeBuildProps);Configuration=$(Configuration);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix);DesignTimeBuild=true;"
-             BuildInParallel="true">
-      <Output TaskParameter="TargetOutputs" ItemName="ArtifactInfo" />
-    </MSBuild>
-
-    <MSBuild Projects="@(_RepositoryProject)"
-             Targets="ResolveSolutions"
-             Properties="$(DesignTimeBuildProps);Configuration=$(Configuration);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix)"
-             ContinueOnError="WarnAndContinue"
-             BuildInParallel="true"
-             Condition="@(_RepositoryProject->Count()) != 0">
-      <Output TaskParameter="TargetOutputs" ItemName="Solution" Condition="'%(_RepositoryProject.Build)' == 'true'" />
-      <Output TaskParameter="TargetOutputs" ItemName="_NoBuildSolution" Condition="'%(_RepositoryProject.Build)' != 'true'" />
-    </MSBuild>
-
-    <!--
-      Analyze what was shipped in these repos.
-      This is required so we can verify that cascading versions are consistent.
-    -->
-    <MSBuild Projects="$(MSBuildProjectFullPath)"
-             Targets="GetArtifactInfo"
-             Properties="$(DesignTimeBuildProps);RepositoryRoot=%(ShippedRepository.RootPath);Configuration=$(Configuration);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix);IsFinalBuild=true;DesignTimeBuild=true"
-             ContinueOnError="WarnAndContinue"
-             Condition="'%(ShippedRepository.Identity)' != ''">
-      <Output TaskParameter="TargetOutputs" ItemName="ShippedArtifactInfo" />
-    </MSBuild>
-    <MSBuild Projects="$(MSBuildProjectFullPath)"
-             Targets="ResolveSolutions"
-             Properties="RepositoryRoot=%(ShippedRepository.RootPath);Configuration=$(Configuration);VersionSuffix=$(VersionSuffix);BuildNumberSuffix=$(BuildNumberSuffix)"
-             ContinueOnError="WarnAndContinue"
-             Condition="'%(ShippedRepository.Identity)' != ''">
-      <Output TaskParameter="TargetOutputs" ItemName="_ShippedSolution" />
-    </MSBuild>
-
-    <ItemGroup>
-      <_Temp Remove="@(_Temp)" />
-      <_Temp Include="@(PackageArtifact)" />
-      <PackageArtifact Remove="@(PackageArtifact)" />
-    </ItemGroup>
-
-    <Move SourceFiles="%(SubmoduleGlobalJsonFiles.BackupPath)" DestinationFiles="%(SubmoduleGlobalJsonFiles.Identity)" Condition="Exists(%(SubmoduleGlobalJsonFiles.BackupPath))" />
-
-    <!-- Join required because shipping category is stored in artifact.props (PackageArtifact), but information about package ID and version comes from repos (ArtifactInfo). -->
-    <RepoTasks.JoinRepoItems
-      Left="@(_Temp)"
-      LeftMetadata="*"
-      Right="@(ArtifactInfo->WithMetadataValue('ArtifactType','NuGetPackage'));@(ShippedArtifactInfo->WithMetadataValue('ArtifactType','NuGetPackage'))"
-      RightKey="PackageId"
-      RightMetadata="Version">
-      <Output TaskParameter="JoinResult" ItemName="PackageArtifact" />
-    </RepoTasks.JoinRepoItems>
-
-    <ItemGroup>
-      <_PackageArtifactWithoutMatchingInfo Include="@(_Temp)" Exclude="@(PackageArtifact)" />
-    </ItemGroup>
-
-    <Error Text="Could not detect version information for package id:%0A * @(_PackageArtifactWithoutMatchingInfo, '%0A * ')"
-           Condition="@(_PackageArtifactWithoutMatchingInfo->Count()) != 0" />
-
-    <ItemGroup>
-      <!-- Adjust the list of what is considered external vs locally built. -->
-      <ExternalDependency Include="%(ShippedArtifactInfo.PackageId)" Condition="'%(ShippedArtifactInfo.ArtifactType)' == 'NuGetPackage'">
-        <Version>%(ShippedArtifactInfo.Version)</Version>
-      </ExternalDependency>
-
-      <!-- capture the original list of PackageArtifacts -->
-      <_PackageArtifactSpec Include="@(PackageArtifact)" />
-
-      <PackageArtifact Remove="%(ShippedArtifactInfo.PackageId)" Condition="'%(ShippedArtifactInfo.ArtifactType)' == 'NuGetPackage'" />
-
-      <Solution Update="@(Solution)" Build="true" IsPatching="true" />
-      <_ShippedSolution Update="@(_ShippedSolution)" Build="false" IsPatching="false" />
-      <_NoBuildSolution Update="@(_NoBuildSolution)" Build="false" />
-      <Solution Include="@(_NoBuildSolution);@(_ShippedSolution)" />
-    </ItemGroup>
-  </Target>
-
-  <Target Name="GeneratePropsFiles" DependsOnTargets="PrepareOutputPaths;GetArtifactInfo">
-    <ItemGroup>
-      <_LineupPackages Include="@(ExternalDependency)" />
-      <_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
-
-      <_RestoreSources Include="$(ArtifactsShippingPackagesDir)" />
-      <_RestoreSources Include="$(ArtifactsNonShippingPackagesDir)"  />
-      <_RestoreSources Include="$(RestoreSources)" />
-    </ItemGroup>
-
-    <GeneratePackageVersionPropsFile
-      Packages="@(_LineupPackages)"
-      OutputPath="$(GeneratedPackageVersionPropsPath)" />
-
-    <RepoTasks.GenerateRestoreSourcesPropsFile
-      Sources="@(_RestoreSources)"
-      OutputPath="$(GeneratedRestoreSourcesPropsPath)" />
-  </Target>
-
-  <Target Name="CleanRepoArtifacts">
-    <RemoveDir Directories="$(RepositoryRoot)obj" Condition="Exists('$(RepositoryRoot)obj')" />
-  </Target>
-
-  <Target Name="_PrepareRepositories">
-    <ItemGroup>
-      <Repository Update="%(Identity)" RootPath="$(SubmoduleRoot)%(Identity)\" Condition="'%(Identity)' != '' AND '%(RootPath)' == ''"  />
-      <ShippedRepository Update="%(Identity)" RootPath="$(SubmoduleRoot)%(Identity)\" Condition="'%(Identity)' != '' AND '%(RootPath)' == ''" />
-
-      <SubmoduleGlobalJsonFiles Include="%(Repository.RootPath)global.json" BackupPath="$(IntermediateDir)%(Repository.Identity)-global.json" Condition="'%(Repository.Identity)' != ''"/>
-      <SubmoduleGlobalJsonFiles Include="%(ShippedRepository.RootPath)global.json" BackupPath="$(IntermediateDir)%(ShippedRepository.Identity)-global.json" Condition="'%(ShippedRepository.Identity)' != ''"/>
-    </ItemGroup>
-
-    <Move SourceFiles="%(SubmoduleGlobalJsonFiles.Identity)" DestinationFiles="%(SubmoduleGlobalJsonFiles.BackupPath)" Condition="Exists(%(SubmoduleGlobalJsonFiles.Identity))" />
-  </Target>
-
-  <Target Name="BuildRepositories"
-     DependsOnTargets="_PrepareRepositories;GeneratePropsFiles;ComputeGraph;_BuildRepositories" />
-
-  <Target Name="ComputeGraph" DependsOnTargets="ResolveSharedSourcesPackageInfo;GetProjectArtifactInfo;GetFxProjectArtifactInfo;ResolveRepoInfo;GeneratePropsFiles">
-    <ItemGroup>
-      <_UndeclaredPackageArtifact Include="%(ArtifactInfo.PackageId)" Condition="'%(ArtifactInfo.ArtifactType)' == 'NuGetPackage'" />
-      <_UndeclaredPackageArtifact Remove="@(PackageArtifact)" />
-      <RepositoryBuildOrder Remove="@(ShippedRepository)" />
-    </ItemGroup>
-
-    <Error Text="Undeclared package artifacts. Add these to artifacts.props:%0A  - @(_UndeclaredPackageArtifact, '%0A  - ')"
-      Condition=" @(_UndeclaredPackageArtifact->Count()) != 0 " />
-
-    <Message Text="Repository build order:" Importance="high" />
-    <Message Text="%(RepositoryBuildOrder.Order). @(RepositoryBuildOrder, ', ')" Importance="high" />
-  </Target>
-
-  <Target Name="VerifyPackageArtifactConfig">
-    <Error Text="Invalid configuration of %(PackageArtifact.Identity). PackageArtifact must have the 'Category' metadata."
-           Condition="'%(PackageArtifact.Category)' == '' " />
-
-    <ItemGroup>
-      <ExternalDependencyInSharedFx Include="@(Dependency)" Exclude="@(PackageArtifact)" />
-      <SharedFrameworkShippingPackage Include="@(SharedFrameworkOnlyPackage)" Exclude="@(SharedFrameworkAndPackage);@(ExternalDependencyInSharedFx);@(PackageArtifact->WithMetadataValue('Category','noship'))" />
-    </ItemGroup>
-
-    <Error Text="Assemblies which ship in the shared framework should not also ship as NuGet packages, unless explicitly allowed. Please update the following to 'noship': %0A - @(SharedFrameworkShippingPackage, '%0A - '). "
-           Condition=" @(SharedFrameworkShippingPackage->Count()) != 0 " />
-  </Target>
-
   <!-- This is temporary until we can use FrameworkReference to build our own packages. -->
   <Target Name="RemoveSharedFrameworkOnlyRefsFromNuspec">
     <ItemGroup>
-      <_BuildOutput Include="$(ArtifactsShippingPackagesDir)%(PackageArtifact.Identity).*.nupkg"
-                    Condition=" '%(PackageArtifact.Category)' == 'ship' " />
-
-      <SharedFxPackageRefToHide Include="@(SharedFrameworkOnlyPackage)" Exclude="@(ExternalDependency)" />
+      <_BuildOutput Include="$(ArtifactsShippingPackagesDir)*.nupkg"
+                    Exclude="$(ArtifactsShippingPackagesDir)*.symbols.nupkg" />
     </ItemGroup>
 
     <RepoTasks.RemoveSharedFrameworkDependencies Condition="@(_BuildOutput->Count()) != 0"
       Files="@(_BuildOutput)"
-      FrameworkOnlyPackages="@(SharedFxPackageRefToHide)" />
-  </Target>
-
-  <Target Name="VerifyExternalDependencyConfig">
-    <Error Text="Missing Version metadata for the following external dependencies: %0A - @(ExternalDependency->WithMetadataValue('Version', ''), '%0A - '). "
-           Condition=" @(ExternalDependency->WithMetadataValue('Version', '')->Count()) != 0 " />
+      FrameworkOnlyPackages="@(SharedFrameworkOnlyPackage)" />
   </Target>
 
-  <Target Name="FastCheck"
-    DependsOnTargets="ComputeGraph;VerifyPackageArtifactConfig" />
-
 </Project>

+ 0 - 6
build/runtimes.props

@@ -13,12 +13,6 @@
       Arch="x86"
       Feed="$(DotNetAssetRootUrl)"
       FeedCredential="$(DotNetAssetRootAccessTokenSuffix)" />
-
-      <!--
-        The build doesn't support compiling the shared runtime on one machine along with running tests,
-        so this is enables installing the shared runtime from a previous build.
-      -->
-      <AspNetCoreRuntime Include="$(PackageVersion)" Feed="$(AspNetCoreFxFeed)" Condition="'$(InstallSharedRuntimeFromPreviousBuild)' == 'true'" />
   </ItemGroup>
 
 </Project>

+ 6 - 16
build/sources.props

@@ -12,29 +12,19 @@
       $(RestoreSources);
       https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
       https://api.nuget.org/v3/index.json;
-    </RestoreSources>
-    <RestoreSources Condition=" '$(DotNetBuildOffline)' != 'true' AND '$(DisableMyGetRestoreSources)' != 'true' ">
-      $(RestoreSources);
-      https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
       https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
-      https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json;
       https://dotnet.myget.org/F/aspnetcore-master/api/v3/index.json;
+      https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json;
       https://dotnet.myget.org/F/blazor-dev/api/v3/index.json;
-      https://dotnet.myget.org/F/roslyn/api/v3/index.json;
+      https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
       https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json;
-      https://vside.myget.org/F/vssdk/api/v3/index.json;
+      https://dotnet.myget.org/F/roslyn/api/v3/index.json;
+      https://vside.myget.org/F/devcore/api/v3/index.json;
       https://vside.myget.org/F/vsmac/api/v3/index.json;
-      https://vside.myget.org/F/devcore/api/v3/index.json
-    </RestoreSources>
-    <!-- Temporary until we can replace PackageRef with ProjectRef -->
-    <RestoreSources Condition=" '$(SubFolderRepoBuild)' == 'true' AND '$(DotNetBuildOffline)' != 'true' AND '$(DisableMyGetRestoreSources)' != 'true' ">
-      $(RestoreSources);
-      https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
+      https://vside.myget.org/F/vssdk/api/v3/index.json;
     </RestoreSources>
 
-    <PublicCoreFeedPrefix>https://dotnetcli.blob.core.windows.net/dotnet/</PublicCoreFeedPrefix>
-
     <!-- In an orchestrated build, this may be overriden to other Azure feeds. -->
-    <DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">$(PublicCoreFeedPrefix)</DotNetAssetRootUrl>
+    <DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">https://dotnetcli.blob.core.windows.net/dotnet/</DotNetAssetRootUrl>
   </PropertyGroup>
 </Project>

+ 0 - 40
build/submodules.props

@@ -1,40 +0,0 @@
-<Project>
-  <ItemDefinitionGroup>
-    <Repository>
-      <Build>true</Build>
-
-      <!--
-        Specifies the ruleset used to determine if a repo should build in a patch update, or not.
-        The default is ProductChangesOnly.
-
-        Rulesets:
-          ProductChangeOnly
-            Only produce new package versions if there were changes to product code.
-            Examples: this is the default. Most repos should use this policy.
-
-          CascadeVersion
-            Produce new package versions if there were changes to product code, or if one of the package dependencies has updated.
-            Examples: metapackages which are not top-level, but should still be used to help users get the latest transitive set of dependencies
-
-          AlwaysUpdate
-            Packages should update in every patch.
-            Examples: top-level metapackages and templates.
-
-       -->
-      <PatchPolicy>ProductChangesOnly</PatchPolicy>
-      <RootPath></RootPath>
-    </Repository>
-    <ShippedRepository>
-      <Build>false</Build>
-      <PatchPolicy>ProductChangesOnly</PatchPolicy>
-      <RootPath></RootPath>
-    </ShippedRepository>
-  </ItemDefinitionGroup>
-
-  <PropertyGroup>
-    <TestsRequiredTheSharedRuntime Condition="'$(RepositoryToBuild)' == 'Templating'">true</TestsRequiredTheSharedRuntime>
-  </PropertyGroup>
-
-  <ItemGroup>
-  </ItemGroup>
-</Project>

+ 0 - 122
build/tasks/JoinRepoItems.cs

@@ -1,122 +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.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-
-namespace RepoTasks
-{
-    public class JoinRepoItems : Task
-    {
-        [Required]
-        public ITaskItem[] Left { get; set; }
-
-        [Required]
-        public ITaskItem[] Right { get; set; }
-
-        // The metadata to use as the new item spec. If not specified, LeftKey is used.
-        public string LeftItemSpec { get; set; }
-
-        //  LeftKey and RightKey: The metadata to join on.  If not set, then use the ItemSpec
-        public string LeftKey { get; set; }
-
-        public string RightKey { get; set; }
-
-
-        //  LeftMetadata and RightMetadata: The metadata names to include in the result.  Specify "*" to include all metadata
-        public string[] LeftMetadata { get; set; }
-
-        public string[] RightMetadata { get; set; }
-
-
-        [Output]
-        public ITaskItem[] JoinResult { get; private set; }
-
-        public override bool Execute()
-        {
-            bool useAllLeftMetadata = LeftMetadata != null && LeftMetadata.Length == 1 && LeftMetadata[0] == "*";
-            bool useAllRightMetadata = RightMetadata != null && RightMetadata.Length == 1 && RightMetadata[0] == "*";
-            var newItemSpec = string.IsNullOrEmpty(LeftItemSpec)
-                ? LeftKey
-                : LeftItemSpec;
-
-            JoinResult = Left.Join(Right,
-                item => GetKeyValue(LeftKey, item),
-                item => GetKeyValue(RightKey, item),
-                (left, right) =>
-                {
-                    //  If including all metadata from left items and none from right items, just return left items directly
-                    if (useAllLeftMetadata &&
-                        string.IsNullOrEmpty(LeftKey) &&
-                        string.IsNullOrEmpty(LeftItemSpec) &&
-                        (RightMetadata == null || RightMetadata.Length == 0))
-                    {
-                        return left;
-                    }
-
-                    //  If including all metadata from right items and none from left items, just return the right items directly
-                    if (useAllRightMetadata &&
-                        string.IsNullOrEmpty(RightKey) &&
-                        string.IsNullOrEmpty(LeftItemSpec) &&
-                        (LeftMetadata == null || LeftMetadata.Length == 0))
-                    {
-                        return right;
-                    }
-
-                    var ret = new TaskItem(GetKeyValue(newItemSpec, left));
-
-                    //  Weird ordering here is to prefer left metadata in all cases, as CopyToMetadata doesn't overwrite any existing metadata
-                    if (useAllLeftMetadata)
-                    {
-                        //  CopyMetadata adds an OriginalItemSpec, which we don't want.  So we subsequently remove it
-                        left.CopyMetadataTo(ret);
-                        ret.RemoveMetadata("OriginalItemSpec");
-                    }
-
-                    if (!useAllRightMetadata && RightMetadata != null)
-                    {
-                        foreach (string name in RightMetadata)
-                        {
-                            ret.SetMetadata(name, right.GetMetadata(name));
-                        }
-                    }
-
-                    if (!useAllLeftMetadata && LeftMetadata != null)
-                    {
-                        foreach (string name in LeftMetadata)
-                        {
-                            ret.SetMetadata(name, left.GetMetadata(name));
-                        }
-                    }
-
-                    if (useAllRightMetadata)
-                    {
-                        //  CopyMetadata adds an OriginalItemSpec, which we don't want.  So we subsequently remove it
-                        right.CopyMetadataTo(ret);
-                        ret.RemoveMetadata("OriginalItemSpec");
-                    }
-
-                    return (ITaskItem)ret;
-                },
-                StringComparer.OrdinalIgnoreCase).ToArray();
-
-            return true;
-        }
-
-        static string GetKeyValue(string key, ITaskItem item)
-        {
-            if (string.IsNullOrEmpty(key))
-            {
-                return item.ItemSpec;
-            }
-            else
-            {
-                return item.GetMetadata(key);
-            }
-        }
-    }
-}

+ 0 - 28
build/tasks/OrderBy.cs

@@ -1,28 +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.Linq;
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-
-namespace RepoTasks
-{
-    public class OrderBy : Task
-    {
-        [Required]
-        [Output]
-        public ITaskItem[] Items { get; set; }
-
-        public string Key { get; set; }
-
-        public override bool Execute()
-        {
-            var key = string.IsNullOrEmpty(Key)
-                ? "Identity"
-                : Key;
-            Items = Items.OrderBy(k => k.GetMetadata(key)).ToArray();
-            return true;
-        }
-    }
-}

+ 1 - 0
build/tasks/RepoTasks.csproj

@@ -6,6 +6,7 @@
     <TargetFramework Condition="'$(MSBuildRuntimeType)' != 'Core' ">net461</TargetFramework>
     <DefineConstants Condition="'$(BuildWindowsInstallers)' == 'true'">$(DefineConstants);BUILD_MSI_TASKS</DefineConstants>
     <DefineConstants Condition="'$(PublishToAzureFeed)' == 'true'">$(DefineConstants);BUILD_AZ_TASKS</DefineConstants>
+    <DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
   </PropertyGroup>
 
   <ItemGroup>

+ 0 - 2
build/tasks/RepoTasks.tasks

@@ -6,8 +6,6 @@
   <UsingTask TaskName="RepoTasks.GenerateRestoreSourcesPropsFile" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.GenerateGuid" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.GetMsiProperty" AssemblyFile="$(_RepoTaskAssembly)" />
-  <UsingTask TaskName="RepoTasks.JoinRepoItems" AssemblyFile="$(_RepoTaskAssembly)" />
-  <UsingTask TaskName="RepoTasks.OrderBy" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.GenerateSharedFrameworkMetadataFiles" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.PublishToAzureBlob" AssemblyFile="$(_RepoTaskAssembly)" Condition="'$(PublishToAzureFeed)' == 'true'" />
   <UsingTask TaskName="RepoTasks.RemoveSharedFrameworkDependencies" AssemblyFile="$(_RepoTaskAssembly)" />

+ 4 - 1
docs/Artifacts.md

@@ -12,10 +12,13 @@ artifacts/
         *.zip, *.tar.gz  = archives versions of installers
   packages/
     $(Configuration)/
-        Shipping/         = Packages which are intended for use by customers. These, along with installers, represent the 'product'.
+        Shipping/        = Packages which are intended for use by customers. These, along with installers, represent the 'product'.
             *.nupkg      = NuGet packages which ship to nuget.org
             *.jar        = Java packages which ship to Maven Central and others
             *.tgz        = NPM packages which ship to npmjs.org
         NonShipping/
             *.nupkg      = NuGet packages for internal use only. Used to hand off bits to Microsoft partner teams. Not intended for use by customers.
+  VSSetup/
+    $(Configuration)/
+        *.vsix           = Visual Studio extensions
 ```

+ 1 - 26
docs/PreparingPatchUpdates.md

@@ -10,32 +10,7 @@ In order to prepare this repo to build a new servicing update, the following cha
     +  <AspNetCorePatchVersion>8</AspNetCorePatchVersion>
     ```
 
-* Update the package archive baselines. This is used to make sure each build of the package archives we give to Azure only contains new files and does
-  not require overwriting existing files. See [src/PackageArchive/ZipManifestGenerator/](/src/PackageArchive/ZipManifestGenerator/README.md) for instructions on how to run this tool.
-
 * 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.
 
-* **For packages with source code in this repo (not a submodule):** Update the list of packages in [eng/PatchConfig.props](/eng/PatchConfig.props) to list which packages should be patching in this release.
-
-* **For packages still building from submodules:** Update the list of repositories which will contain changes in [build/submodules.props](/build/submodules.props).
-
-    * `<ShippedRepository>` items represent repos which were released in a previous patch, and will not contain servicing updates in the next patch.
-    * `<Repository>` items represent repos which will produce new packages in this patch.
-    * It is usually best to move everything to `<ShippedRepository>` and then iteratively add them back to `<Repository>` as new repos receive approval to patch.
-    * Don't change the `PatchPolicy` attribute. The build system uses this to ensure patching rules are obeyed.
-
-* For each repository still listed as a `<Repository>`, update the version.props file in that submodule. For example, https://github.com/aspnet/Templating/pull/824
-
-    * The version prefix in repos should match the version of ASP.NET Core.
-        * Exception: SignalR, which is "1.1", not "2.1".
-    * This leaves holes in versioning, which is okay. This may mean you increment the patch value by more than one. Example:
-        * EF Core ships patches in 2.1.4 as "2.1.4"
-        * EF Core does not ship patches in 2.1.5 or 2.1.6
-        * EF Core ships in 2.1.7, therefore, EFCore's version.props file should jump from 2.1.4 to 2.1.7.
-
-        ```diff
-        <!-- Example change to modules/EntityFrameworkCore/version.props -->
-        - <VersionPrefix>2.1.4</VersionPrefix>
-        + <VersionPrefix>2.1.7</VersionPrefix>
-        ```
+* Update the list of packages in [eng/PatchConfig.props](/eng/PatchConfig.props) to list which packages should be patching in this release.

+ 4 - 3
docs/ReferenceResolution.md

@@ -18,9 +18,10 @@ The requirements that led to this system are:
 
 ## Recommendations for writing a .csproj
 
-* Use `<Reference>`
-* Do not use `<PackageReference>`
-* Only use `<ProjectReference>` in test projects
+* Use `<Reference>`.
+* Do not use `<PackageReference>`.
+* If you need to use a new package, add it to `eng/Dependencies.props` and `eng/Versions.props`.
+* Only use `<ProjectReference>` in test projects.
 * Name the .csproj file to match the assembly name.
 * Run `build.cmd /t:GenerateProjectList` when adding new projects
 * Use [eng/tools/BaseLineGenerator/](/eng/tools/BaselineGenerator/README.md) if you need to update baselines.

+ 3 - 1
eng/Dependencies.props

@@ -76,9 +76,9 @@ and are generated based on the last package release.
     <LatestPackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="$(MicrosoftExtensionsFileSystemGlobbingPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.HashCodeCombiner.Sources" Version="$(MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Extensions.HostFactoryResolver.Sources" Version="$(MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingPackageVersion)" />
-    <LatestPackageReference Include="Microsoft.Extensions.HostFactoryResolver.Sources" Version="$(MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Localization" Version="$(MicrosoftExtensionsLocalizationPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
@@ -108,6 +108,7 @@ and are generated based on the last package release.
     <LatestPackageReference Include="Microsoft.Owin.Security.Cookies" Version="$(MicrosoftOwinSecurityCookiesPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Owin.Testing" Version="$(MicrosoftOwinTestingPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Web.Administration" Version="$(MicrosoftWebAdministrationPackageVersion)" />
+    <LatestPackageReference Include="Microsoft.Web.Xdt" Version="$(MicrosoftWebXdtPackageVersion)" />
     <LatestPackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
     <LatestPackageReference Include="Mono.Cecil" Version="$(MonoCecilPackageVersion)" />
     <LatestPackageReference Include="Mono.WebAssembly.Interop" Version="$(MonoWebAssemblyInteropPackageVersion)" />
@@ -131,6 +132,7 @@ and are generated based on the last package release.
     <LatestPackageReference Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
     <LatestPackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
     <LatestPackageReference Include="System.Net.Http.WinHttpHandler" Version="$(SystemNetHttpWinHttpHandlerPackageVersion)" />
+    <LatestPackageReference Include="System.Net.Http" Version="$(SystemNetHttpPackageVersion)" />
     <LatestPackageReference Include="System.Net.WebSockets.WebSocketProtocol" Version="$(SystemNetWebSocketsWebSocketProtocolPackageVersion)" />
     <LatestPackageReference Include="System.Numerics.Vectors" Version="$(SystemNumericsVectorsPackageVersion)" />
     <LatestPackageReference Include="System.Reactive.Linq" Version="$(SystemReactiveLinqPackageVersion)" />

+ 0 - 5
eng/ProjectReferences.props

@@ -20,7 +20,6 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.Abstractions" ProjectPath="$(RepositoryRoot)src\Hosting\Abstractions\src\Microsoft.AspNetCore.Hosting.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting" ProjectPath="$(RepositoryRoot)src\Hosting\Hosting\src\Microsoft.AspNetCore.Hosting.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" ProjectPath="$(RepositoryRoot)src\Hosting\Server.Abstractions\src\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IntegrationTesting" ProjectPath="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.TestHost" ProjectPath="$(RepositoryRoot)src\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Hosting.WindowsServices" ProjectPath="$(RepositoryRoot)src\Hosting\WindowsServices\src\Microsoft.AspNetCore.Hosting.WindowsServices.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Abstractions" ProjectPath="$(RepositoryRoot)src\Http\Authentication.Abstractions\src\Microsoft.AspNetCore.Authentication.Abstractions.csproj" />
@@ -46,11 +45,8 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.HttpSys" ProjectPath="$(RepositoryRoot)src\Servers\HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IISIntegration" ProjectPath="$(RepositoryRoot)src\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IIS" ProjectPath="$(RepositoryRoot)src\Servers\IIS\IIS\src\Microsoft.AspNetCore.Server.IIS.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" ProjectPath="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Core" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Core\src\Microsoft.AspNetCore.Server.Kestrel.Core.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj" />
-    <ProjectReferenceProvider Include="PlatformBenchmarks" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\perf\PlatformBenchmarks\PlatformBenchmarks.csproj" />
-    <ProjectReferenceProvider Include="CodeGenerator" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\tools\CodeGenerator\CodeGenerator.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Transport.Abstractions\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" ProjectPath="$(RepositoryRoot)src\Servers\Kestrel\Transport.Sockets\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj" />
@@ -128,7 +124,6 @@
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor" ProjectPath="$(RepositoryRoot)src\Components\Blazor\Blazor\src\Microsoft.AspNetCore.Blazor.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Build" ProjectPath="$(RepositoryRoot)src\Components\Blazor\Build\src\Microsoft.AspNetCore.Blazor.Build.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Server" ProjectPath="$(RepositoryRoot)src\Components\Blazor\Server\src\Microsoft.AspNetCore.Blazor.Server.csproj" />
-    <ProjectReferenceProvider Include="Microsoft.AspNetCore.Blazor.Templates" ProjectPath="$(RepositoryRoot)src\Components\Blazor\Templates\src\Microsoft.AspNetCore.Blazor.Templates.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Browser.JS" ProjectPath="$(RepositoryRoot)src\Components\Browser.JS\src\Microsoft.AspNetCore.Components.Browser.JS.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Browser" ProjectPath="$(RepositoryRoot)src\Components\Browser\src\Microsoft.AspNetCore.Components.Browser.csproj" />
     <ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Build" ProjectPath="$(RepositoryRoot)src\Components\Build\src\Microsoft.AspNetCore.Components.Build.csproj" />

+ 0 - 8
eng/Version.Details.xml

@@ -21,10 +21,6 @@
       <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
       <Sha>3d1e08eb08789a9dde3ac20851d3c82fdf9272e5</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="3.0.0-preview.19074.3">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>3d1e08eb08789a9dde3ac20851d3c82fdf9272e5</Sha>
-    </Dependency>
     <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview.19074.3">
       <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
       <Sha>3d1e08eb08789a9dde3ac20851d3c82fdf9272e5</Sha>
@@ -133,10 +129,6 @@
       <Uri>https://github.com/aspnet/Extensions</Uri>
       <Sha>0de62ae930da31048ba7e54c8cd0c6c0bcbd9095</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection.Specification.Tests" Version="3.0.0-preview.19074.2">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>0de62ae930da31048ba7e54c8cd0c6c0bcbd9095</Sha>
-    </Dependency>
     <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview.19074.2">
       <Uri>https://github.com/aspnet/Extensions</Uri>
       <Sha>0de62ae930da31048ba7e54c8cd0c6c0bcbd9095</Sha>

+ 0 - 2
eng/Versions.props

@@ -58,7 +58,6 @@
     <MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsConfigurationXmlPackageVersion>
     <MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
     <MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsDependencyInjectionPackageVersion>
-    <MicrosoftExtensionsDependencyInjectionSpecificationTestsPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsDependencyInjectionSpecificationTestsPackageVersion>
     <MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
     <MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
     <MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview.19074.2</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
@@ -95,7 +94,6 @@
     <MicrosoftJSInteropPackageVersion>3.0.0-preview.19074.2</MicrosoftJSInteropPackageVersion>
     <!-- Packages from aspnet/EntityFrameworkCore -->
     <dotnetefPackageVersion>3.0.0-preview.19074.3</dotnetefPackageVersion>
-    <MicrosoftEntityFrameworkCoreDesignPackageVersion>3.0.0-preview.19074.3</MicrosoftEntityFrameworkCoreDesignPackageVersion>
     <MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview.19074.3</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
     <MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview.19074.3</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
     <MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview.19074.3</MicrosoftEntityFrameworkCoreSqlitePackageVersion>

+ 16 - 0
eng/Workarounds.targets

@@ -0,0 +1,16 @@
+<!-- Use this file to workaround issues. List the issue tracking the item to fix so we can remove the workaround when the issue is resolved. -->
+<Project>
+
+  <!-- Workaround https://github.com/dotnet/arcade/issues/1876. Cross-gen assemblies aren't matched by public key token's. -->
+  <ItemGroup>
+    <!-- This lists files by name to be signed. Dependency items are imported from src/Framework/Microsoft.AspNetCore.App.props -->
+    <FileNamesToSign Include="@(Dependency->'%(Identity).dll')" CertificateName="Microsoft400" />
+    <!-- These dependencies come from external teams, but we crossgen them so they need to be re-signed. -->
+    <FileNamesToSign Include="@(ExternalDependency->'%(Identity).dll')" Exclude="Newtonsoft.Json.dll" CertificateName="Microsoft400" />
+  </ItemGroup>
+
+  <!-- Workaround https://github.com/aspnet/AspNetCore-Internal/issues/1501. dotnet-blazor.dll isn't strong-named signed. -->
+  <ItemGroup>
+    <FileNamesToSign Include="dotnet-blazor.dll" CertificateName="Microsoft400" />
+  </ItemGroup>
+</Project>

+ 2 - 5
eng/targets/CSharp.Common.props

@@ -2,17 +2,14 @@
 
   <PropertyGroup>
     <LangVersion>7.3</LangVersion>
-
-    <!-- Instructs the compiler to use SHA256 instead of SHA1 when adding file hashes to PDBs. -->
-    <ChecksumAlgorithm>SHA256</ChecksumAlgorithm>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
+    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" AllowExplicitReference="true" />
   </ItemGroup>
 
   <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' AND '$(OS)' != 'Windows_NT' ">
-    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="$(MicrosoftNETFrameworkReferenceAssembliesPackageVersion)" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="$(MicrosoftNETFrameworkReferenceAssembliesPackageVersion)" PrivateAssets="All" AllowExplicitReference="true" />
   </ItemGroup>
 
   <ItemGroup Condition=" '$(AddImplicitReferences)' != 'false' AND '$(IsTestProject)' == 'true' ">

+ 0 - 12
eng/targets/Npm.Common.targets

@@ -69,16 +69,4 @@
     <Exec Command="npm $(NpmTestArgs)" IgnoreStandardErrorWarningFormat="true" />
   </Target>
 
-  <Target Name="GetArtifactInfo" Condition="'$(IsPackable)' == 'true'" Returns="@(ArtifactInfo)">
-    <ItemGroup>
-      <ArtifactInfo Include="$(TargetPath)" >
-        <ArtifactType>NpmPackage</ArtifactType>
-        <PackageId>$(PackageId)</PackageId>
-        <Version>$(PackageVersion)</Version>
-      </ArtifactInfo>
-
-      <FilesToExcludeFromSigning Include="$(TargetPath)" />
-    </ItemGroup>
-  </Target>
-
 </Project>

+ 0 - 21
eng/targets/Packaging.targets

@@ -7,27 +7,6 @@
                  See $(RepositoryRoot)eng\tools\BaselineGenerator\README.md for instructions on updating this baseline." />
   </Target>
 
-  <!-- Temporary: this target is used to gather version information to pass to submodule builds. This can be removed after we finish merging submodules. -->
-  <Target Name="GetBaselineArtifactInfo"
-          Condition="'$(IsPackableInNonServicingBuild)' == 'true' AND '$(IsSubfolderBuild)' != 'true' AND '$(IsPackable)' != 'true' "
-          Returns="@(ArtifactInfo)"
-          BeforeTargets="GetArtifactInfo">
-
-    <PropertyGroup>
-      <FullPackageOutputPath>$(PackageOutputPath)$(PackageId).$(PackageVersion).nupkg</FullPackageOutputPath>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <ArtifactInfo Include="$(FullPackageOutputPath)">
-        <ArtifactType>NuGetPackage</ArtifactType>
-        <PackageId>$(PackageId)</PackageId>
-        <Version>$(PackageVersion)</Version>
-        <RepositoryRoot>$(RepositoryRoot)</RepositoryRoot>
-        <IsShipped>true</IsShipped>
-      </ArtifactInfo>
-    </ItemGroup>
-  </Target>
-
   <!-- This target is used to get the package versions of projects -->
   <Target Name="_GetPackageVersionInfo" DependsOnTargets="$(GetPackageVersionDependsOn)"
           Returns="@(_ProjectPathWithVersion)">

+ 6 - 8
eng/targets/ResolveReferences.targets

@@ -52,10 +52,9 @@
     <!-- Packages which are implicitly defined by the .NET Core SDK. -->
     <_ImplicitPackageReference Include="@(PackageReference->WithMetadataValue('IsImplicitlyDefined', 'true'))" />
     <!-- Capture a list of references which were set explicitly in the project. -->
-    <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference)" />
-    <!-- Special case: ignore the reference to Internal.AspNetCore.Sdk, which is defined in eng/targets/Cpp.Common.props. -->
-    <_ExplicitPackageReference Remove="Internal.AspNetCore.Sdk" />
-    <_ExplicitPackageReference Remove="Microsoft.NETFramework.ReferenceAssemblies" />
+    <_AllowedExplicitPackageReference Include="@(PackageReference->WithMetadataValue('AllowExplicitReference', 'true'))" />
+    <_AllowedExplicitPackageReference Include="FSharp.Core" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
+    <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
 
     <_UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
 
@@ -133,9 +132,8 @@
       <_ImplicitPackageReference Remove="@(_ImplicitPackageReference)" />
     </ItemGroup>
 
-<!-- TODO: when we finish https://github.com/aspnet/AspNetCore/issues/4246, introduce errors to force projects to use custom resolution.
-    <Error Condition="@(_ExplicitPackageReference->Count()) != 0"
-           Text="PackageReference items are not allowed. Use &lt;Reference&gt; instead. " /> -->
+    <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)" />
@@ -146,7 +144,7 @@
 
     <Error Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework' AND '%(Reference.Identity)' != '' AND ! Exists('%(Reference.Identity)')"
            Code="MSB3245"
-           Text="Could not resolve this reference. Could not locate the package or project for &quot;%(Reference.Identity)&quot;" />
+           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>
 
   <!-- These targets are used to generate the map of assembly name to project files. See also the /t:GenerateProjectList target in build/repo.targets. -->

+ 1 - 2
eng/tools/XplatPackageSigner/XplatPackageSigner.proj

@@ -22,13 +22,12 @@
   <ItemGroup Condition="'$(DirectoryToSign)' != ''">
     <SymbolsPackages Include="$([MSBuild]::NormalizeDirectory($(DirectoryToSign)))**\*.symbols.nupkg" />
     <FilesToSign Include="$([MSBuild]::NormalizeDirectory($(DirectoryToSign)))**\*.nupkg">
-      <Authenticode>$(PackageSigningCertName)</Authenticode>
+      <Authenticode>NuGet</Authenticode>
     </FilesToSign>
   </ItemGroup>
 
   <Target Name="CheckForRequiredProperties">
     <Error Text="Missing required property: DirectoryToSign" Condition="'$(DirectoryToSign)' == ''"/>
-    <Error Text="Missing required property: PackageSigningCertName" Condition="'$(PackageSigningCertName)' == ''"/>
     <Error Text="Could not find any packages to sign in $(DirectoryToSign)" Condition="@(FilesToSign->Count()) == 0"/>
   </Target>
 

+ 0 - 1
src/Components/Analyzers/src/Microsoft.AspNetCore.Components.Analyzers.csproj

@@ -18,7 +18,6 @@
 
   <ItemGroup>
     <None Include="$(TargetPath)" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
-    <SignedPackageFile Include="$(TargetPath)" Certificate="$(AssemblySigningCertName)" />
   </ItemGroup>
 
   <ItemGroup>

+ 1 - 0
src/Components/Blazor/BlazorExtension/src/Microsoft.VisualStudio.BlazorExtension.csproj

@@ -15,6 +15,7 @@
     <EnableSourceLink>false</EnableSourceLink>
     <GenerateSourceLinkFile>false</GenerateSourceLinkFile>
     <DeployExtension Condition="'$(CI)' == 'true'">false</DeployExtension>
+    <DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
   </PropertyGroup>
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
 

+ 0 - 33
src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj

@@ -16,39 +16,6 @@
     <PublishDir>$(IntermediatePackDir)$(TargetFramework)/</PublishDir>
   </PropertyGroup>
 
-  <ItemGroup>
-    <!-- Assemblies built by this project -->
-    <SignedPackageFile Include="$(TargetFileName)" Certificate="$(AssemblySigningCertName)" />
-    <SignedPackageFile Include="Microsoft.AspNetCore.Components.Browser.JS.dll" Certificate="$(AssemblySigningCertName)" />
-    <SignedPackageFile Include="Microsoft.AspNetCore.Blazor.Build.exe" Certificate="$(AssemblySigningCertName)" />
-
-    <!-- 1st party assembly we redistribute (part of the CLI tool) -->
-    <SignedPackageFile Include="Microsoft.JSInterop.dll" Certificate="$(AssemblySigningCertName)" />
-
-    <!-- 3rd party assemblies we redistribute. -->
-    <SignedPackageFile Include="AngleSharp.dll" Certificate="$(AssemblySigning3rdPartyCertName)" />
-    <SignedPackageFile Include="Mono.Cecil.dll" Certificate="$(AssemblySigning3rdPartyCertName)" />
-    <SignedPackageFile Include="Mono.Cecil.Mdb.dll" Certificate="$(AssemblySigning3rdPartyCertName)" />
-    <SignedPackageFile Include="Mono.Cecil.Pdb.dll" Certificate="$(AssemblySigning3rdPartyCertName)" />
-    <SignedPackageFile Include="Mono.Cecil.Rocks.dll" Certificate="$(AssemblySigning3rdPartyCertName)" />
-
-    <!-- Assemblies which should be signed by other build. -->
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.CommandLineUtils.dll" />
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.FileProviders.Abstractions.dll" />
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.FileProviders.Composite.dll" />
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.FileProviders.Embedded.dll" />
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.FileProviders.Physical.dll" />
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.FileSystemGlobbing.dll" />
-    <ExcludePackageFileFromSigning Include="Microsoft.Extensions.Primitives.dll" />
-    <ExcludePackageFileFromSigning Include="System.CodeDom.dll" />
-    <ExcludePackageFileFromSigning Include="System.Runtime.CompilerServices.Unsafe.dll" />
-    <ExcludePackageFileFromSigning Include="System.Text.Encoding.CodePages.dll" />
-
-    <!-- JS files -->
-    <ExcludePackageFileFromSigning Include="components.server.js" />
-    <ExcludePackageFileFromSigning Include="components.webassembly.js" />
-  </ItemGroup>
-
   <!-- Executes /t:Publish for all target frameworks before packing-->
   <Target Name="PublishAll" BeforeTargets="_IntermediatePack">
     <PropertyGroup>

+ 4 - 1
src/Components/Blazor/Cli/src/Microsoft.AspNetCore.Blazor.Cli.csproj

@@ -7,7 +7,10 @@
     <PackageId>Microsoft.AspNetCore.Blazor.Cli</PackageId>
     <IsShippingPackage>true</IsShippingPackage>
     <StartupObject>Microsoft.AspNetCore.Blazor.Cli.Program</StartupObject>
-    <!-- Disabled because E2ETest.csproj needs to WebDriver which is not strong named signed, and InternalsVisibleTo must specify a strong-name token -->
+    <!--
+      Disabled because E2ETest.csproj needs to WebDriver which is not strong named signed, and InternalsVisibleTo must specify a strong-name token.
+      See also eng/Workarounds.targets.
+    -->
     <SignAssembly>false</SignAssembly>
     <Description>Development server for use when building Blazor applications.</Description>
     <!-- Set this to false because assemblies should not reference this assembly directly, (except for tests, of course). -->

+ 1 - 6
src/Components/Blazor/Templates/src/Microsoft.AspNetCore.Blazor.Templates.csproj

@@ -8,14 +8,9 @@
     <IncludeBuildOutput>False</IncludeBuildOutput>
     <NoWarn>2008</NoWarn>
     <Description>Templates for ASP.NET Core Blazor projects.</Description>
+    <IsProjectReferenceProvider>false</IsProjectReferenceProvider>
   </PropertyGroup>
 
-  <ItemGroup>
-    <ExcludePackageFileFromSigning Include="content/**/*.js" />
-    <ExcludePackageFileFromSigning Include="content/**/*.otf" />
-    <ExcludePackageFileFromSigning Include="content/**/*.ttf" />
-  </ItemGroup>
-
   <Target Name="TransformTemplateConfigs" BeforeTargets="CoreBuild" DependsOnTargets="SetTemplateJsonSymbolReplacements">
     <!--
       For each template, copy its '.template.config.src' directory to '.template.config',

+ 1 - 3
src/DataProtection/DataProtection/test/Microsoft.AspNetCore.DataProtection.Tests.csproj

@@ -11,9 +11,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <!-- TODO replace all PackageReference with ProjectReference once aspnet/Hosting has merged to this repo -->
-    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.1.1" />
-
+    <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.AspNetCore.Cryptography.Internal" />
     <Reference Include="Microsoft.AspNetCore.DataProtection" />
     <Reference Include="Microsoft.Extensions.DependencyInjection" />

+ 5 - 8
src/DataProtection/samples/EntityFrameworkCoreSample/EntityFrameworkCoreSample.csproj

@@ -6,14 +6,11 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
-    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="$(MicrosoftEntityFrameworkCoreInMemoryPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\..\EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj" />
+    <Reference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" />
+    <Reference Include="Microsoft.EntityFrameworkCore.InMemory" />
+    <Reference Include="Microsoft.EntityFrameworkCore.SqlServer" />
+    <Reference Include="Microsoft.Extensions.DependencyInjection" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
   </ItemGroup>
 
 </Project>

+ 3 - 2
src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/Microsoft.AspNetCore.FunctionalTests.csproj

@@ -9,9 +9,10 @@
   </ItemGroup>
 
   <ItemGroup>
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
+
     <Reference Include="Microsoft.AspNetCore" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
   </ItemGroup>
 </Project>

+ 6 - 9
src/Framework/Directory.Build.props

@@ -1,15 +1,12 @@
-<Project>
-  <!--
-    Currently, the shared framework builds by using PackageReference to internally generate the deps.json files and move bits between projects.
-    For local builds, this import is required to point to packages which actually exists. Run "build.cmd /t:GeneratePropsFiles /p:BuildNumberSuffix=xyz" to
-    build the shared framework against a particular set of packages.
-  -->
-  <Import Condition="Exists('..\..\obj\dependencies.g.props') AND '$(DotNetPackageVersionPropsPath)' == ''" Project="..\..\obj\dependencies.g.props" />
-  <Import Condition="'$(DotNetPackageVersionPropsPath)' != ''" Project="$(DotNetPackageVersionPropsPath)" />
 
+<Project>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
 
   <PropertyGroup>
-    <IsFrameworkMetapackage>true</IsFrameworkMetapackage>
+    <RestoreSources>
+      $(RestoreSources);
+      $(ArtifactsShippingPackagesDir);
+      $(ArtifactsNonShippingPackagesDir)
+    </RestoreSources>
   </PropertyGroup>
 </Project>

+ 132 - 134
src/Framework/Microsoft.AspNetCore.App.props

@@ -3,141 +3,139 @@
 -->
 <Project>
 
-  <ItemDefinitionGroup>
-    <Dependency>
-      <!-- Only specified if it differs from PackageId -->
-      <AssemblyName></AssemblyName>
-    </Dependency>
-  </ItemDefinitionGroup>
-
   <ItemGroup>
-    <Dependency Include="Microsoft.AspNetCore.Antiforgery"                             Version="$(MicrosoftAspNetCoreAntiforgeryPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authentication.Abstractions"             Version="$(MicrosoftAspNetCoreAuthenticationAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authentication.Cookies"                  Version="$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authentication.Core"                     Version="$(MicrosoftAspNetCoreAuthenticationCorePackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authentication.OAuth"                    Version="$(MicrosoftAspNetCoreAuthenticationOAuthPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authentication"                          Version="$(MicrosoftAspNetCoreAuthenticationPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authorization.Policy"                    Version="$(MicrosoftAspNetCoreAuthorizationPolicyPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Authorization"                           Version="$(MicrosoftAspNetCoreAuthorizationPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Components"                              Version="$(MicrosoftAspNetCoreComponentsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Components.Browser"                      Version="$(MicrosoftAspNetCoreComponentsBrowserPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Connections.Abstractions"                Version="$(MicrosoftAspNetCoreConnectionsAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.CookiePolicy"                            Version="$(MicrosoftAspNetCoreCookiePolicyPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Cors"                                    Version="$(MicrosoftAspNetCoreCorsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Cryptography.Internal"                   Version="$(MicrosoftAspNetCoreCryptographyInternalPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Cryptography.KeyDerivation"              Version="$(MicrosoftAspNetCoreCryptographyKeyDerivationPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.DataProtection.Abstractions"             Version="$(MicrosoftAspNetCoreDataProtectionAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.DataProtection.Extensions"               Version="$(MicrosoftAspNetCoreDataProtectionExtensionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.DataProtection"                          Version="$(MicrosoftAspNetCoreDataProtectionPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Diagnostics.Abstractions"                Version="$(MicrosoftAspNetCoreDiagnosticsAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Diagnostics.HealthChecks"                Version="$(MicrosoftAspNetCoreDiagnosticsHealthChecksPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Diagnostics"                             Version="$(MicrosoftAspNetCoreDiagnosticsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.HostFiltering"                           Version="$(MicrosoftAspNetCoreHostFilteringPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Hosting.Abstractions"                    Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Hosting.Server.Abstractions"             Version="$(MicrosoftAspNetCoreHostingServerAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Hosting"                                 Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Html.Abstractions"                       Version="$(MicrosoftAspNetCoreHtmlAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Http.Abstractions"                       Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Http.Connections.Common"                 Version="$(MicrosoftAspNetCoreHttpConnectionsCommonPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Http.Connections"                        Version="$(MicrosoftAspNetCoreHttpConnectionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Http.Extensions"                         Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Http.Features"                           Version="$(MicrosoftAspNetCoreHttpFeaturesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Http"                                    Version="$(MicrosoftAspNetCoreHttpPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.HttpOverrides"                           Version="$(MicrosoftAspNetCoreHttpOverridesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.HttpsPolicy"                             Version="$(MicrosoftAspNetCoreHttpsPolicyPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Identity"                                Version="$(MicrosoftAspNetCoreIdentityPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Localization.Routing"                    Version="$(MicrosoftAspNetCoreLocalizationRoutingPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Localization"                            Version="$(MicrosoftAspNetCoreLocalizationPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.Abstractions"                        Version="$(MicrosoftAspNetCoreMvcAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.ApiExplorer"                         Version="$(MicrosoftAspNetCoreMvcApiExplorerPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.Core"                                Version="$(MicrosoftAspNetCoreMvcCorePackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.Cors"                                Version="$(MicrosoftAspNetCoreMvcCorsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.DataAnnotations"                     Version="$(MicrosoftAspNetCoreMvcDataAnnotationsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.Formatters.Xml"                      Version="$(MicrosoftAspNetCoreMvcFormattersXmlPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.Localization"                        Version="$(MicrosoftAspNetCoreMvcLocalizationPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.Razor"                               Version="$(MicrosoftAspNetCoreMvcRazorPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.RazorPages"                          Version="$(MicrosoftAspNetCoreMvcRazorPagesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.TagHelpers"                          Version="$(MicrosoftAspNetCoreMvcTagHelpersPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc.ViewFeatures"                        Version="$(MicrosoftAspNetCoreMvcViewFeaturesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Mvc"                                     Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Razor.Runtime"                           Version="$(MicrosoftAspNetCoreRazorRuntimePackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Razor"                                   Version="$(MicrosoftAspNetCoreRazorPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.ResponseCaching.Abstractions"            Version="$(MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.ResponseCaching"                         Version="$(MicrosoftAspNetCoreResponseCachingPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.ResponseCompression"                     Version="$(MicrosoftAspNetCoreResponseCompressionPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Rewrite"                                 Version="$(MicrosoftAspNetCoreRewritePackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Routing.Abstractions"                    Version="$(MicrosoftAspNetCoreRoutingAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Routing"                                 Version="$(MicrosoftAspNetCoreRoutingPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.HttpSys"                          Version="$(MicrosoftAspNetCoreServerHttpSysPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.IIS"                              Version="$(MicrosoftAspNetCoreServerIISPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.IISIntegration"                   Version="$(MicrosoftAspNetCoreServerIISIntegrationPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Core"                     Version="$(MicrosoftAspNetCoreServerKestrelCorePackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions"   Version="$(MicrosoftAspNetCoreServerKestrelTransportAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets"        Version="$(MicrosoftAspNetCoreServerKestrelTransportSocketsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel"                          Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.Session"                                 Version="$(MicrosoftAspNetCoreSessionPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.SignalR.Common"                          Version="$(MicrosoftAspNetCoreSignalRCommonPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.SignalR.Core"                            Version="$(MicrosoftAspNetCoreSignalRCorePackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"        Version="$(MicrosoftAspNetCoreSignalRProtocolsNewtonsoftJsonPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.SignalR"                                 Version="$(MicrosoftAspNetCoreSignalRPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.StaticFiles"                             Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.WebSockets"                              Version="$(MicrosoftAspNetCoreWebSocketsPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore.WebUtilities"                            Version="$(MicrosoftAspNetCoreWebUtilitiesPackageVersion)" />
-    <Dependency Include="Microsoft.AspNetCore"                                         Version="$(MicrosoftAspNetCorePackageVersion)" />
-    <Dependency Include="Microsoft.DotNet.PlatformAbstractions"                        Version="$(MicrosoftDotNetPlatformAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Caching.Abstractions"                    Version="$(MicrosoftExtensionsCachingAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Caching.Memory"                          Version="$(MicrosoftExtensionsCachingMemoryPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.Abstractions"              Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.Binder"                    Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.CommandLine"               Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.EnvironmentVariables"      Version="$(MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.FileExtensions"            Version="$(MicrosoftExtensionsConfigurationFileExtensionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.Ini"                       Version="$(MicrosoftExtensionsConfigurationIniPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.Json"                      Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.KeyPerFile"                Version="$(MicrosoftExtensionsConfigurationKeyPerFilePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.UserSecrets"               Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration.Xml"                       Version="$(MicrosoftExtensionsConfigurationXmlPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Configuration"                           Version="$(MicrosoftExtensionsConfigurationPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.DependencyInjection.Abstractions"        Version="$(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.DependencyInjection"                     Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.DependencyModel"                         Version="$(MicrosoftExtensionsDependencyModelPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"   Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Diagnostics.HealthChecks"                Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)"  />
-    <Dependency Include="Microsoft.Extensions.FileProviders.Abstractions"              Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.FileProviders.Composite"                 Version="$(MicrosoftExtensionsFileProvidersCompositePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.FileProviders.Embedded"                  Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.FileProviders.Physical"                  Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.FileSystemGlobbing"                      Version="$(MicrosoftExtensionsFileSystemGlobbingPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Hosting.Abstractions"                    Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Hosting"                                 Version="$(MicrosoftExtensionsHostingPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Http"                                    Version="$(MicrosoftExtensionsHttpPackageVersion)"  />
-    <Dependency Include="Microsoft.Extensions.Identity.Core"                           Version="$(MicrosoftExtensionsIdentityCorePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Identity.Stores"                         Version="$(MicrosoftExtensionsIdentityStoresPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Localization.Abstractions"               Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Localization"                            Version="$(MicrosoftExtensionsLocalizationPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging.Abstractions"                    Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging.Configuration"                   Version="$(MicrosoftExtensionsLoggingConfigurationPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging.Console"                         Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging.Debug"                           Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging.EventSource"                     Version="$(MicrosoftExtensionsLoggingEventSourcePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging.TraceSource"                     Version="$(MicrosoftExtensionsLoggingTraceSourcePackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Logging"                                 Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.ObjectPool"                              Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Options.ConfigurationExtensions"         Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Options.DataAnnotations"                 Version="$(MicrosoftExtensionsOptionsDataAnnotationsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Options"                                 Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.Primitives"                              Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
-    <Dependency Include="Microsoft.Extensions.WebEncoders"                             Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
-    <Dependency Include="Microsoft.JSInterop"                                          Version="$(MicrosoftJSInteropPackageVersion)" />
-    <Dependency Include="Microsoft.Net.Http.Headers"                                   Version="$(MicrosoftNetHttpHeadersPackageVersion)" />
-    <Dependency Include="Newtonsoft.Json"                                              Version="$(NewtonsoftJsonPackageVersion)" />
-    <Dependency Include="System.IO.Pipelines"                                          Version="$(SystemIOPipelinesPackageVersion)" />
-    <Dependency Include="System.Runtime.CompilerServices.Unsafe"                       Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
-    <Dependency Include="System.Security.Cryptography.Pkcs"                            Version="$(SystemSecurityCryptographyPkcsPackageVersion)" />
-    <Dependency Include="System.Security.Cryptography.Xml"                             Version="$(SystemSecurityCryptographyXmlPackageVersion)" />
-    <Dependency Include="System.Security.Permissions"                                  Version="$(SystemSecurityPermissionsPackageVersion)" />
-    <Dependency Include="System.Text.Encodings.Web"                                    Version="$(SystemTextEncodingsWebPackageVersion)" />
-    <Dependency Include="System.Threading.Channels"                                    Version="$(SystemThreadingChannelsPackageVersion)" />
+    <Dependency Include="Microsoft.AspNetCore.Antiforgery" />
+    <Dependency Include="Microsoft.AspNetCore.Authentication.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Authentication.Cookies" />
+    <Dependency Include="Microsoft.AspNetCore.Authentication.Core" />
+    <Dependency Include="Microsoft.AspNetCore.Authentication.OAuth" />
+    <Dependency Include="Microsoft.AspNetCore.Authentication" />
+    <Dependency Include="Microsoft.AspNetCore.Authorization.Policy" />
+    <Dependency Include="Microsoft.AspNetCore.Authorization" />
+    <Dependency Include="Microsoft.AspNetCore.Components.Browser" />
+    <Dependency Include="Microsoft.AspNetCore.Components" />
+    <Dependency Include="Microsoft.AspNetCore.Connections.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.CookiePolicy" />
+    <Dependency Include="Microsoft.AspNetCore.Cors" />
+    <Dependency Include="Microsoft.AspNetCore.Cryptography.Internal" />
+    <Dependency Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" />
+    <Dependency Include="Microsoft.AspNetCore.DataProtection.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.DataProtection.Extensions" />
+    <Dependency Include="Microsoft.AspNetCore.DataProtection" />
+    <Dependency Include="Microsoft.AspNetCore.Diagnostics.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" />
+    <Dependency Include="Microsoft.AspNetCore.Diagnostics" />
+    <Dependency Include="Microsoft.AspNetCore.HostFiltering" />
+    <Dependency Include="Microsoft.AspNetCore.Hosting.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Hosting" />
+    <Dependency Include="Microsoft.AspNetCore.Html.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Http.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Http.Connections.Common" />
+    <Dependency Include="Microsoft.AspNetCore.Http.Connections" />
+    <Dependency Include="Microsoft.AspNetCore.Http.Extensions" />
+    <Dependency Include="Microsoft.AspNetCore.Http.Features" />
+    <Dependency Include="Microsoft.AspNetCore.Http" />
+    <Dependency Include="Microsoft.AspNetCore.HttpOverrides" />
+    <Dependency Include="Microsoft.AspNetCore.HttpsPolicy" />
+    <Dependency Include="Microsoft.AspNetCore.Identity" />
+    <Dependency Include="Microsoft.AspNetCore.Localization.Routing" />
+    <Dependency Include="Microsoft.AspNetCore.Localization" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.ApiExplorer" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Core" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Cors" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.DataAnnotations" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Localization" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.Razor" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.RazorPages" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.TagHelpers" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc.ViewFeatures" />
+    <Dependency Include="Microsoft.AspNetCore.Mvc" />
+    <Dependency Include="Microsoft.AspNetCore.Razor.Runtime" />
+    <Dependency Include="Microsoft.AspNetCore.Razor" />
+    <Dependency Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.ResponseCaching" />
+    <Dependency Include="Microsoft.AspNetCore.ResponseCompression" />
+    <Dependency Include="Microsoft.AspNetCore.Rewrite" />
+    <Dependency Include="Microsoft.AspNetCore.Routing.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Routing" />
+    <Dependency Include="Microsoft.AspNetCore.Server.HttpSys" />
+    <Dependency Include="Microsoft.AspNetCore.Server.IIS" />
+    <Dependency Include="Microsoft.AspNetCore.Server.IISIntegration" />
+    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Core" />
+    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" />
+    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" />
+    <Dependency Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Dependency Include="Microsoft.AspNetCore.Session" />
+    <Dependency Include="Microsoft.AspNetCore.SignalR.Common" />
+    <Dependency Include="Microsoft.AspNetCore.SignalR.Core" />
+    <Dependency Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" />
+    <Dependency Include="Microsoft.AspNetCore.SignalR" />
+    <Dependency Include="Microsoft.AspNetCore.StaticFiles" />
+    <Dependency Include="Microsoft.AspNetCore.WebSockets" />
+    <Dependency Include="Microsoft.AspNetCore.WebUtilities" />
+    <Dependency Include="Microsoft.AspNetCore" />
+    <Dependency Include="Microsoft.Extensions.Identity.Core" />
+    <Dependency Include="Microsoft.Extensions.Identity.Stores" />
+    <Dependency Include="Microsoft.Net.Http.Headers" />
+
+    <!-- We still be the shared framework but running restore against packages we just built. This sets the version to match the current build number. -->
+    <Dependency Update="@(Dependency)" Version="$(PackageVersion)" />
+
+    <!-- Dependencies build as packages in other repos. -->
+    <ExternalDependency Include="Microsoft.DotNet.PlatformAbstractions"                        Version="$(MicrosoftDotNetPlatformAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Caching.Abstractions"                    Version="$(MicrosoftExtensionsCachingAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Caching.Memory"                          Version="$(MicrosoftExtensionsCachingMemoryPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.Abstractions"              Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.Binder"                    Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.CommandLine"               Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.EnvironmentVariables"      Version="$(MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.FileExtensions"            Version="$(MicrosoftExtensionsConfigurationFileExtensionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.Ini"                       Version="$(MicrosoftExtensionsConfigurationIniPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.Json"                      Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.KeyPerFile"                Version="$(MicrosoftExtensionsConfigurationKeyPerFilePackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.UserSecrets"               Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration.Xml"                       Version="$(MicrosoftExtensionsConfigurationXmlPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Configuration"                           Version="$(MicrosoftExtensionsConfigurationPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.DependencyInjection.Abstractions"        Version="$(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.DependencyInjection"                     Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.DependencyModel"                         Version="$(MicrosoftExtensionsDependencyModelPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"   Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Diagnostics.HealthChecks"                Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)"  />
+    <ExternalDependency Include="Microsoft.Extensions.FileProviders.Abstractions"              Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.FileProviders.Composite"                 Version="$(MicrosoftExtensionsFileProvidersCompositePackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.FileProviders.Embedded"                  Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.FileProviders.Physical"                  Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.FileSystemGlobbing"                      Version="$(MicrosoftExtensionsFileSystemGlobbingPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Hosting.Abstractions"                    Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Hosting"                                 Version="$(MicrosoftExtensionsHostingPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Http"                                    Version="$(MicrosoftExtensionsHttpPackageVersion)"  />
+    <ExternalDependency Include="Microsoft.Extensions.Localization.Abstractions"               Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Localization"                            Version="$(MicrosoftExtensionsLocalizationPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging.Abstractions"                    Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging.Configuration"                   Version="$(MicrosoftExtensionsLoggingConfigurationPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging.Console"                         Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging.Debug"                           Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging.EventSource"                     Version="$(MicrosoftExtensionsLoggingEventSourcePackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging.TraceSource"                     Version="$(MicrosoftExtensionsLoggingTraceSourcePackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Logging"                                 Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.ObjectPool"                              Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Options.ConfigurationExtensions"         Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Options.DataAnnotations"                 Version="$(MicrosoftExtensionsOptionsDataAnnotationsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Options"                                 Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.Primitives"                              Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
+    <ExternalDependency Include="Microsoft.Extensions.WebEncoders"                             Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
+    <ExternalDependency Include="Microsoft.JSInterop"                                          Version="$(MicrosoftJSInteropPackageVersion)" />
+    <ExternalDependency Include="Newtonsoft.Json"                                              Version="$(NewtonsoftJsonPackageVersion)" />
+    <ExternalDependency Include="System.IO.Pipelines"                                          Version="$(SystemIOPipelinesPackageVersion)" />
+    <ExternalDependency Include="System.Runtime.CompilerServices.Unsafe"                       Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
+    <ExternalDependency Include="System.Security.Cryptography.Pkcs"                            Version="$(SystemSecurityCryptographyPkcsPackageVersion)" />
+    <ExternalDependency Include="System.Security.Cryptography.Xml"                             Version="$(SystemSecurityCryptographyXmlPackageVersion)" />
+    <ExternalDependency Include="System.Security.Permissions"                                  Version="$(SystemSecurityPermissionsPackageVersion)" />
+    <ExternalDependency Include="System.Text.Encodings.Web"                                    Version="$(SystemTextEncodingsWebPackageVersion)" />
+    <ExternalDependency Include="System.Threading.Channels"                                    Version="$(SystemThreadingChannelsPackageVersion)" />
   </ItemGroup>
 
 </Project>

+ 2 - 1
src/Framework/pkg/Metapackage.targets

@@ -18,6 +18,7 @@
 
     <PackageId>$(MSBuildProjectName)</PackageId>
     <TargetPath>$(PackageOutputPath)$(PackageId).$(PackageVersion).nupkg</TargetPath>
+
   </PropertyGroup>
 
   <ItemGroup>
@@ -29,7 +30,7 @@
       <AllowExplicitVersion>true</AllowExplicitVersion>
     </PackageReference>
 
-    <PackageReference Include="@(Dependency)" />
+    <PackageReference Include="@(Dependency);@(ExternalDependency)" />
   </ItemGroup>
 
   <ItemDefinitionGroup>

+ 1 - 29
src/Framework/src/SharedFx.targets

@@ -139,7 +139,7 @@ This targets file should only be imported by .shfxproj files.
       <AllowExplicitVersion>true</AllowExplicitVersion>
     </PackageReference>
 
-    <PackageReference Include="@(Dependency)">
+    <PackageReference Include="@(Dependency);@(ExternalDependency)">
       <IncludeAssets>Runtime;Native</IncludeAssets>
       <Publish>true</Publish>
     </PackageReference>
@@ -333,34 +333,6 @@ This targets file should only be imported by .shfxproj files.
 
   <Target Name="CreateManifestResourceNames" />
 
-  <Target Name="GetArtifactInfo" Returns="@(ArtifactInfo)">
-    <PropertyGroup>
-      <FullPackageOutputPath>$(PackageOutputPath)$(PackageId).$(PackageVersion).nupkg</FullPackageOutputPath>
-      <SymbolsPackageOutputPath>$(PackageOutputPath)$(PackageId).$(PackageVersion).symbols.nupkg</SymbolsPackageOutputPath>
-    </PropertyGroup>
-
-    <ItemGroup>
-      <ArtifactInfo Include="$(FullPackageOutputPath)">
-        <ArtifactType>NuGetPackage</ArtifactType>
-        <PackageId>$(PackageId)</PackageId>
-        <Version>$(PackageVersion)</Version>
-        <RepositoryRoot>$(RepositoryRoot)</RepositoryRoot>
-        <Certificate>$(PackageSigningCertName)</Certificate>
-        <ShouldBeSigned>true</ShouldBeSigned>
-        <IsContainer>true</IsContainer>
-      </ArtifactInfo>
-      <ArtifactInfo Include="$(SymbolsPackageOutputPath)" Condition="'$(IncludeSymbols)' != 'false'">
-        <ArtifactType>NuGetSymbolsPackage</ArtifactType>
-        <PackageId>$(PackageId)</PackageId>
-        <Version>$(PackageVersion)</Version>
-        <RepositoryRoot>$(RepositoryRoot)</RepositoryRoot>
-        <Certificate>$(PackageSigningCertName)</Certificate>
-        <ShouldBeSigned>true</ShouldBeSigned>
-        <IsContainer>true</IsContainer>
-      </ArtifactInfo>
-    </ItemGroup>
-  </Target>
-
   <Target Name="PopulateNuspec" BeforeTargets="GenerateNuspec">
     <PropertyGroup>
       <NuspecProperties>

+ 2 - 5
src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj

@@ -3,7 +3,6 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.0</TargetFramework>
     <RootNamespace>Microsoft.AspNetCore</RootNamespace>
-    <IsPackable>false</IsPackable>
   </PropertyGroup>
 
   <Import Project="..\Microsoft.AspNetCore.App.props" />
@@ -28,7 +27,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
+    <Reference Include="Newtonsoft.Json" />
   </ItemGroup>
 
   <ItemGroup>
@@ -40,11 +39,9 @@
 
   <Target Name="GenerateTestData" BeforeTargets="GetAssemblyAttributes" DependsOnTargets="ResolveProjectReferences">
     <ItemGroup>
-      <ExpectedAssemblyNames Include="%(Dependency.AssemblyName)" />
-      <ExpectedAssemblyNames Include="@(Dependency)" Condition="'%(Dependency.AssemblyName)' == '' " />
       <AssemblyAttribute Include="Microsoft.AspNetCore.TestData">
         <_Parameter1>SharedFxDependencies</_Parameter1>
-        <_Parameter2>@(ExpectedAssemblyNames)</_Parameter2>
+        <_Parameter2>@(Dependency);@(ExternalDependency)</_Parameter2>
       </AssemblyAttribute>
       <AssemblyAttribute Include="Microsoft.AspNetCore.TestData">
         <_Parameter1>MetadataOutputPath</_Parameter1>

+ 5 - 7
src/Hosting/Server.IntegrationTesting/src/Microsoft.AspNetCore.Server.IntegrationTesting.csproj

@@ -2,17 +2,15 @@
 
   <PropertyGroup>
     <Description>ASP.NET Core helpers to deploy applications to IIS Express, IIS, WebListener and Kestrel for testing.</Description>
-    <VersionPrefix Condition="'$(ExperimentalVersionPrefix)' != ''">$(ExperimentalVersionPrefix)</VersionPrefix>
-    <VersionSuffix Condition="'$(ExperimentalVersionSuffix)' != ''">$(ExperimentalVersionSuffix)</VersionSuffix>
-    <VerifyVersion Condition="'$(ExperimentalVersionPrefix)' != ''">false</VerifyVersion>
-    <PackageVersion Condition="'$(ExperimentalPackageVersion)' != ''">$(ExperimentalPackageVersion)</PackageVersion>
     <TargetFramework>netcoreapp3.0</TargetFramework>
+    <EnableApiCheck>false</EnableApiCheck>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;testing</PackageTags>
-    <EnableApiCheck>false</EnableApiCheck>
-    <UseLatestPackageReferences>true</UseLatestPackageReferences>
-    <UseProjectReferences>true</UseProjectReferences>
+    <IsTestAssetProject>true</IsTestAssetProject>
+    <!-- This is used as a package by aspnet benchmarking infrastructure. It is meant for internal-use only. -->
+    <IsShippingPackage>false</IsShippingPackage>
+    <IsPackable>true</IsPackable>
   </PropertyGroup>
 
   <ItemGroup>

+ 2 - 1
src/Hosting/test/FunctionalTests/Microsoft.AspNetCore.Hosting.FunctionalTests.csproj

@@ -9,7 +9,8 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
+
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />

+ 2 - 0
src/Identity/ApiAuthorization.IdentityServer/src/Microsoft.AspNetCore.ApiAuthorization.IdentityServer.csproj

@@ -6,6 +6,8 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;apiauth;identity</PackageTags>
     <EnableApiCheck>false</EnableApiCheck>
+    <!-- Experimental package which is not ready for production yet -->
+    <IsShippingPackage>false</IsShippingPackage>
   </PropertyGroup>
 
   <ItemGroup>

+ 0 - 1
src/Installers/Archive/Archive.Internal.zipproj

@@ -47,5 +47,4 @@
       Overwrite="true" />
   </Target>
 
-  <Target Name="GetArtifactInfo" />
 </Project>

+ 0 - 1
src/Installers/Archive/Archive.Redist.zipproj

@@ -106,5 +106,4 @@
       Overwrite="true" />
   </Target>
 
-  <Target Name="GetArtifactInfo" />
 </Project>

+ 0 - 1
src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props

@@ -1,6 +1,5 @@
 <Project>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
-  <Import Project="$(RepositoryRoot)\.deps\dependencies.g.props" Condition="Exists('$(RepositoryRoot)\.deps\dependencies.g.props')" />
 
   <PropertyGroup>
 

+ 1 - 1
src/Middleware/CORS/test/FunctionalTests/FunctionalTests.csproj

@@ -14,10 +14,10 @@
     <!-- We don't need anything in this assembly, we just want to make sure it's built -->
     <ProjectReference Include="..\..\samples\SampleOrigin\SampleOrigin.csproj" ReferenceOutputAssembly="false" />
     <ProjectReference Include="..\..\samples\SampleDestination\SampleDestination.csproj" ReferenceOutputAssembly="false" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
   </ItemGroup>
 

+ 2 - 2
src/Middleware/StaticFiles/test/FunctionalTests/Microsoft.AspNetCore.StaticFiles.FunctionalTests.csproj

@@ -22,12 +22,12 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.StaticFiles" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
   </ItemGroup>
 
   <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.StaticFiles" />
     <Reference Include="Microsoft.AspNetCore.Server.HttpSys" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
   </ItemGroup>

+ 4 - 11
src/Middleware/WebSockets/test/ConformanceTests/AutobahnTestApp/AutobahnTestApp.csproj

@@ -10,20 +10,13 @@
   </ItemGroup>
 
   <ItemGroup>
-    <!-- TODO replace with Reference items when the containing submodules merge. -->
-    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="$(MicrosoftAspNetCoreDiagnosticsPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.HttpSys" Version="$(MicrosoftAspNetCoreServerHttpSysPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="$(MicrosoftAspNetCoreServerIISIntegrationPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="$(MicrosoftAspNetCoreServerKestrelHttpsPackageVersion)" />
-
+    <Reference Include="Microsoft.AspNetCore.Diagnostics" />
+    <Reference Include="Microsoft.AspNetCore.Server.HttpSys" />
+    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
     <Reference Include="Microsoft.AspNetCore.WebSockets" />
     <Reference Include="Microsoft.Extensions.Configuration.CommandLine"  />
     <Reference Include="Microsoft.Extensions.Logging.Console"  />
   </ItemGroup>
 
-  <ItemGroup Condition="'$(OS)' == 'Windows_NT'">
-    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModule" Version="$(MicrosoftAspNetCoreAspNetCoreModulePackageVersion)" />
-  </ItemGroup>
-
 </Project>

+ 2 - 3
src/Middleware/WebSockets/test/ConformanceTests/Microsoft.AspNetCore.WebSockets.ConformanceTests.csproj

@@ -6,11 +6,10 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
-
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
-    <Content Include="AutobahnTestApp\**\*" CopyToOutputDirectory="PreserveNewest" />
+    <Content Include="AutobahnTestApp\**\*" Exclude="AutobahnTestApp\obj\**\*.commit" CopyToOutputDirectory="PreserveNewest" />
   </ItemGroup>
 
 </Project>

+ 2 - 1
src/Middleware/WebSockets/test/UnitTests/Microsoft.AspNetCore.WebSockets.Tests.csproj

@@ -5,7 +5,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
+
     <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
     <Reference Include="Microsoft.AspNetCore.WebSockets" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />

+ 1 - 1
src/MusicStore/test/MusicStore.E2ETests/MusicStore.E2ETests.csproj

@@ -20,7 +20,7 @@
     <Reference Include="Microsoft.AspNetCore.Authentication.Cookies" />
     <Reference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" />
     <Reference Include="Microsoft.AspNetCore.Identity" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
     <Reference Include="Microsoft.AspNetCore.WebUtilities" />
     <Reference Include="Microsoft.Extensions.CommandLineUtils.Sources" />
     <Reference Include="Microsoft.Extensions.Configuration.Binder" />

+ 4 - 1
src/Mvc/benchmarkapps/BasicApi/BasicApi.csproj

@@ -6,7 +6,8 @@
     <DefineConstants Condition=" '$(GenerateSqlScripts)'=='true' ">$(DefineConstants);GENERATE_SQL_SCRIPTS</DefineConstants>
     <DefineConstants>$(DefineConstants);__RemoveThisBitTo__GENERATE_SQL_SCRIPTS</DefineConstants>
 
-    <WarningsNotAsErrors>CS8002;$(WarningsNotAsErrors)</WarningsNotAsErrors>
+    <!-- Pomelo.EntityFrameworkCore.MySql is not strong named, so this test assembly cannot be strong-named signed either. -->
+    <SignAssembly>false</SignAssembly>
     <IsTestAssetProject>true</IsTestAssetProject>
   </PropertyGroup>
 
@@ -17,6 +18,8 @@
     <PackageReference Include="MySqlConnector" Version="0.43.0" />
     <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.1.1.1" />
     <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.1" />
+    <!-- This suppresses errors about using PackageReference instead of Reference. For unclear reasons, this project has pinned dependencies. -->
+    <PackageReference Update="@(PackageReference)" AllowExplicitReference="true" />
   </ItemGroup>
 
   <!-- These references are used when building locally or on CI. -->

+ 4 - 5
src/Mvc/benchmarkapps/BasicViews/BasicViews.csproj

@@ -6,21 +6,20 @@
     <DefineConstants Condition=" '$(GenerateSqlScripts)'=='true' ">$(DefineConstants);GENERATE_SQL_SCRIPTS</DefineConstants>
     <DefineConstants>$(DefineConstants);__RemoveThisBitTo__GENERATE_SQL_SCRIPTS</DefineConstants>
 
-    <WarningsNotAsErrors>CS8002;$(WarningsNotAsErrors)</WarningsNotAsErrors>
+    <!-- Pomelo.EntityFrameworkCore.MySql is not strong named, so this test assembly cannot be strong-named signed either. -->
+    <SignAssembly>false</SignAssembly>
     <IsTestAssetProject>true</IsTestAssetProject>
   </PropertyGroup>
 
   <ItemGroup>
     <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.1.1.1" />
-  </ItemGroup>
-
-  <ItemGroup Condition="'$(TargetFramework)' != 'net461'">
     <PackageReference Include="MySqlConnector" Version="0.43.0" />
     <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.1" />
-
     <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.1" PrivateAssets="All" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.1" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1" />
+    <!-- This suppresses errors about using PackageReference instead of Reference. For unclear reasons, this project has pinned dependencies. -->
+    <PackageReference Update="@(PackageReference)" AllowExplicitReference="true" />
   </ItemGroup>
 
   <!-- These references are used when running locally -->

+ 1 - 1
src/Mvc/samples/MvcSandbox/MvcSandbox.csproj

@@ -14,7 +14,7 @@
     <Reference Include="Microsoft.Extensions.Configuration.Json" />
     <Reference Include="Microsoft.Extensions.Logging.Console" />
     <Reference Include="Microsoft.Extensions.Logging.Debug" />
-    <PackageReference Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" PrivateAssets="All" />
+    <Reference Include="Microsoft.NET.Sdk.Razor" PrivateAssets="All" />
   </ItemGroup>
 
 </Project>

+ 3 - 1
src/Mvc/src/GetDocumentInsider/GetDocumentInsider.csproj

@@ -18,7 +18,9 @@
 
   <ItemGroup>
     <!-- Hard-coded to 2.0 because this project currently targets netcoreapp2.0 -->
-    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.0.0" />
+    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.0.0">
+      <AllowExplicitReference>true</AllowExplicitReference>
+    </PackageReference>
   </ItemGroup>
 
   <Target Name="BuildX86" AfterTargets="Build" Condition=" '$(TargetFramework)' == 'net461' And '$(Platform)' != 'x86' ">

+ 0 - 4
src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers/Microsoft.AspNetCore.Mvc.Analyzers.csproj

@@ -15,10 +15,6 @@
     <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" PrivateAssets="All" />
   </ItemGroup>
 
-  <ItemGroup>
-    <SignedPackageFile Include="$(TargetPath)" PackagePath="analyzers/dotnet/cs/$(TargetFileName)" Certificate="$(AssemblySigningCertName)" />
-  </ItemGroup>
-
   <Target Name="PopulateNuspec" BeforeTargets="GenerateNuspec" DependsOnTargets="Build">
 
     <PropertyGroup>

+ 0 - 4
src/Mvc/src/Microsoft.AspNetCore.Mvc.Api.Analyzers/Microsoft.AspNetCore.Mvc.Api.Analyzers.csproj

@@ -20,10 +20,6 @@
     <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" PrivateAssets="All" />
   </ItemGroup>
 
-  <ItemGroup>
-    <SignedPackageFile Include="$(TargetPath)" PackagePath="analyzers/dotnet/cs/$(TargetFileName)" Certificate="$(AssemblySigningCertName)" />
-  </ItemGroup>
-
   <Target Name="PopulateNuspec" BeforeTargets="GenerateNuspec" DependsOnTargets="Build">
 
     <PropertyGroup>

+ 2 - 42
src/Mvc/src/Microsoft.Extensions.ApiDescription.Design/Microsoft.Extensions.ApiDescription.Design.csproj

@@ -25,48 +25,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.Build.Utilities.Core"
-        Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
-    <PackageReference Include="System.Net.Http"
-        Condition="'$(TargetFramework)' == 'net461'"
-        Version="$(SystemNetHttpPackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup Condition="'$(TargetFramework)' != ''">
-    <SignedPackageFile Include="$(TargetPath)">
-      <Certificate>$(AssemblySigningCertName)</Certificate>
-      <PackagePath>tasks/$(TargetFramework)/$(TargetFileName)</PackagePath>
-      <StrongName>$(AssemblySigningStrongName)</StrongName>
-    </SignedPackageFile>
-  </ItemGroup>
-
-  <!-- Add other signed files in a single inner build, avoiding duplications in this multi-TFM project. -->
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <SignedPackageFile Include="../dotnet-getdocument/bin/$(Configuration)/netcoreapp2.1/publish/dotnet-getdocument.dll">
-      <Certificate>$(AssemblySigningCertName)</Certificate>
-      <PackagePath>tools/dotnet-getdocument.dll</PackagePath>
-      <StrongName>$(AssemblySigningStrongName)</StrongName>
-    </SignedPackageFile>
-    <SignedPackageFile Include="../GetDocumentInsider/bin/$(Configuration)/net461/GetDocument.Insider.exe">
-      <Certificate>$(AssemblySigningCertName)</Certificate>
-      <PackagePath>tools/net461/GetDocument.Insider.exe</PackagePath>
-      <StrongName>$(AssemblySigningStrongName)</StrongName>
-    </SignedPackageFile>
-    <SignedPackageFile Include="../GetDocumentInsider/bin/x86/$(Configuration)/net461/GetDocument.Insider.exe">
-      <Certificate>$(AssemblySigningCertName)</Certificate>
-      <PackagePath>tools/net461-x86/GetDocument.Insider.exe</PackagePath>
-      <StrongName>$(AssemblySigningStrongName)</StrongName>
-    </SignedPackageFile>
-    <SignedPackageFile Include="../GetDocumentInsider/bin/$(Configuration)/netcoreapp2.0/GetDocument.Insider.dll">
-      <Certificate>$(AssemblySigningCertName)</Certificate>
-      <PackagePath>tools/netcoreapp2.0/GetDocument.Insider.exe</PackagePath>
-      <StrongName>$(AssemblySigningStrongName)</StrongName>
-    </SignedPackageFile>
-
-    <SignedPackageFile Include="../dotnet-getdocument/bin/$(Configuration)/netcoreapp2.1/publish/Newtonsoft.Json.dll">
-      <PackagePath>tools/Newtonsoft.Json.dll"</PackagePath>
-      <Certificate>$(AssemblySigning3rdPartyCertName)</Certificate>
-    </SignedPackageFile>
+    <Reference Include="Microsoft.Build.Utilities.Core" />
+    <Reference Include="System.Net.Http" Condition="'$(TargetFramework)' == 'net461'" />
   </ItemGroup>
 
   <Target Name="PopulateNuspec">

+ 2 - 0
src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj

@@ -6,6 +6,8 @@
 
     <DefineConstants Condition="'$(GenerateBaselines)'=='true'">$(DefineConstants);GENERATE_BASELINES</DefineConstants>
     <DefineConstants>$(DefineConstants);__RemoveThisBitTo__GENERATE_BASELINES</DefineConstants>
+    <!-- The test asset projects this depends on are not strong-named. -->
+    <SignAssembly>false</SignAssembly>
   </PropertyGroup>
 
   <ItemGroup>

+ 0 - 10
src/ProjectTemplates/Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj

@@ -9,16 +9,6 @@
     <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
-  <ItemGroup>
-    <!-- We don't need to code sign these .js files because they are not used in Windows Script Host. -->
-    <ExcludePackageFileFromSigning Include="content\**\*.js" />
-
-    <!-- Similarly, not applicable to sign fonts -->
-    <ExcludePackageFileFromSigning Include="content\**\*.ttf" />
-    <ExcludePackageFileFromSigning Include="content\**\*.otf" />
-  </ItemGroup>
-
-
   <PropertyGroup>
     <!-- Lists the versions of dependencies not built in this repo. Packages produced from this repo should be listed as a PackageVersionVariableReference.  -->
     <GeneratedContentProperties>

+ 0 - 5
src/ProjectTemplates/Web.Spa.ProjectTemplates/Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj

@@ -9,11 +9,6 @@
     <IsShippingPackage>true</IsShippingPackage>
   </PropertyGroup>
 
-  <ItemGroup>
-    <!-- We don't need to code sign these .js files because they are not used in Windows Script Host. -->
-    <ExcludePackageFileFromSigning Include="content\**\*.js" />
-  </ItemGroup>
-
   <ItemGroup>
     <!-- These projects product packages that the templates depend on. See GenerateContent.targets -->
     <PackageVersionVariableReference Include="$(RepositoryRoot)src\Mvc\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" />

+ 1 - 1
src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj

@@ -9,6 +9,7 @@
   <Import Project="$(MvcTestingTargets)" Condition="'$(MvcTestingTargets)' != ''" />
 
   <ItemGroup>
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
     <ProjectReference Include="..\..\samples\Cookies\Cookies.csproj" />
     <ProjectReference Include="..\..\samples\ClaimsTransformation\ClaimsTransformation.csproj" />
     <ProjectReference Include="..\..\samples\CustomPolicyProvider\CustomPolicyProvider.csproj" />
@@ -21,7 +22,6 @@
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore" />
     <Reference Include="Microsoft.AspNetCore.Hosting" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.AspNetCore.TestHost" />
     <Reference Include="Microsoft.AspNetCore.Mvc.Testing" />
     <Reference Include="AngleSharp" />

+ 6 - 3
src/Servers/IIS/IIS/benchmarks/IIS.Performance/IIS.Performance.csproj

@@ -23,7 +23,6 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
     <ProjectReference Include="..\..\test\IISExpress.FunctionalTests\IISExpress.FunctionalTests.csproj" />
     <ProjectReference Include="..\..\test\IIS.Tests\IIS.Tests.csproj" />
     <ProjectReference Include="..\..\test\testassets\InProcessWebSite\InProcessWebSite.csproj">
@@ -35,9 +34,13 @@
     <ProjectReference Include="..\..\test\testassets\StressTestWebSite\StressTestWebSite.csproj">
       <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
     <Reference Include="BenchmarkDotNet" />
     <Reference Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" PrivateAssets="All" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
+    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
   </ItemGroup>
 
-</Project>
+</Project>

+ 2 - 1
src/Servers/IIS/IIS/samples/NativeIISSample/NativeIISSample.csproj

@@ -8,10 +8,11 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
+
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.AspNetCore.Server.IIS" />
     <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
     <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
   </ItemGroup>
 

+ 1 - 2
src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj

@@ -16,7 +16,6 @@
   <ItemGroup>
     <Compile Include="$(SharedSourceRoot)Buffers.MemoryPool\**\*.cs" />
     <Compile Include="$(SharedSourceRoot)HttpSys\**\*.cs" />
-    <Content Include="$(PackageId).targets" PackagePath="build/$(TargetFramework)/" />
   </ItemGroup>
 
   <Target Name="ValidateNativeComponentsBuilt" AfterTargets="Build" >
@@ -39,7 +38,7 @@
 
   <Import Project="..\..\build\assets.props" />
 
-  <Target Name="AddPackNativeComponents" BeforeTargets="_GetPackageFiles;GetSignedPackageFiles" Condition="$(PackNativeAssets) == 'true'">
+  <Target Name="AddPackNativeComponents" BeforeTargets="_GetPackageFiles" Condition="$(PackNativeAssets) == 'true'">
     <ItemGroup>
       <None Include="%(InProcessComponents.DllLocation)"
             Pack="true"

+ 0 - 13
src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.targets

@@ -1,13 +0,0 @@
-<Project>
-  <!--
-    Capability that enables Visual Studio support for hosting Asp.Net Core applications in the IIS process
-  -->
-  <ItemGroup>
-    <ProjectCapability Include="AspNetCoreInProcessHosting" />
-  </ItemGroup>
-
-  <PropertyGroup>
-    <AspNetCoreModuleName Condition=" '$(AspNetCoreModuleName)' == '' ">AspNetCoreModuleV2</AspNetCoreModuleName>
-  </PropertyGroup>
-
-</Project>

+ 1 - 1
src/Servers/IIS/IIS/test/Common.Tests/Common.Tests.csproj

@@ -5,7 +5,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />

+ 8 - 4
src/Servers/IIS/IIS/test/IIS.BackwardsCompatibility.FunctionalTests/IIS.BackwardsCompatibility.FunctionalTests.csproj

@@ -18,18 +18,22 @@
     <ProjectReference Include="..\WebSites\**\*.csproj">
       <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
   </ItemGroup>
 
   <ItemGroup>
     <!-- The versions on these references are hard-coded because we want to ensure we maintain backwards compatibility with ANCM 2.2.0 -->
-    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModule" Version="2.2.0" />
-    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModuleV2" Version="2.2.0" />
+    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModule" Version="2.2.0">
+      <AllowExplicitReference>true</AllowExplicitReference>
+    </PackageReference>
+    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModuleV2" Version="2.2.0">
+      <AllowExplicitReference>true</AllowExplicitReference>
+    </PackageReference>
   </ItemGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Hosting" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="System.Diagnostics.EventLog" />

+ 1 - 1
src/Servers/IIS/IIS/test/IIS.ForwardsCompatibility.FunctionalTests/IIS.ForwardsCompatibility.FunctionalTests.csproj

@@ -16,6 +16,7 @@
     <ProjectReference Include="..\WebSites\**\*.csproj">
       <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
   </ItemGroup>
 
   <ItemGroup>
@@ -24,7 +25,6 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />

+ 2 - 2
src/Servers/IIS/IIS/test/IIS.FunctionalTests/IIS.FunctionalTests.csproj

@@ -16,6 +16,8 @@
     <ProjectReference Include="..\WebSites\**\*.csproj">
       <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
   </ItemGroup>
 
   <ItemGroup>
@@ -25,8 +27,6 @@
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Hosting" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="System.Diagnostics.EventLog" />

+ 1 - 1
src/Servers/IIS/IIS/test/IIS.Tests/IIS.Tests.csproj

@@ -9,12 +9,12 @@
 
   <ItemGroup>
     <ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
   </ItemGroup>
 
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.AspNetCore.Server.IIS" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="System.Diagnostics.EventLog" />

+ 2 - 3
src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/IISExpress.FunctionalTests.csproj

@@ -12,11 +12,12 @@
   </ItemGroup>
 
   <ItemGroup>
-    <!-- <ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" /> -->
     <ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
     <ProjectReference Include="..\WebSites\**\*.csproj">
       <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
   </ItemGroup>
 
   <ItemGroup>
@@ -24,8 +25,6 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
     <Reference Include="Microsoft.AspNetCore.Hosting" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />

+ 4 - 2
src/Servers/IIS/IIS/test/testassets/InProcessForwardsCompatWebSite/InProcessWebSite.csproj

@@ -18,8 +18,10 @@
   </ItemGroup>
 
   <ItemGroup>
-    <!-- This package is hard-coded to 2.2.0 as a part of ensuring ANCM stays forward compatible.  -->
-    <PackageReference Include="Microsoft.AspNetCore.Server.IIS" Version="2.2.0" />
+    <!-- This package is hard-coded to the 2.2.0 package as a part of ensuring ANCM stays forward compatible.  -->
+    <PackageReference Include="Microsoft.AspNetCore.Server.IIS" Version="2.2.0">
+      <AllowExplicitReference>true</AllowExplicitReference>
+    </PackageReference>
   </ItemGroup>
 
   <ItemGroup>

+ 0 - 5
src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj

@@ -1,6 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <!-- <Import Project="..\..\build\repo.targets" /> -->
   <PropertyGroup>
     <Description>ASP.NET Core components for working with the IIS AspNetCoreModule.</Description>
     <TargetFramework>netcoreapp3.0</TargetFramework>
@@ -10,10 +9,6 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
 
-  <ItemGroup>
-    <Content Include="$(PackageId).targets" PackagePath="build/$(TargetFramework)/" />
-  </ItemGroup>
-
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Authentication.Core" />
     <Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />

+ 0 - 7
src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.targets

@@ -1,7 +0,0 @@
-<Project>
-
-  <PropertyGroup>
-    <AspNetCoreModuleName Condition=" '$(AspNetCoreModuleName)' == '' ">AspNetCoreModuleV2</AspNetCoreModuleName>
-  </PropertyGroup>
-
-</Project>

+ 6 - 5
src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj

@@ -8,10 +8,11 @@
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <PackageTags>aspnetcore;iis</PackageTags>
     <DisableFastUpToDateCheck>True</DisableFastUpToDateCheck>
-    <UseLatestPackageReferences>true</UseLatestPackageReferences>
-    <UseProjectReferences>true</UseProjectReferences>
-    <IsPackable>true</IsPackable>
     <AspNetCoreModuleOutOfProcessVersion>2.0.0</AspNetCoreModuleOutOfProcessVersion>
+    <IsTestAssetProject>true</IsTestAssetProject>
+    <!-- This is used as a package by aspnet benchmarking infrastructure. It is meant for internal-use only. -->
+    <IsPackable>true</IsPackable>
+    <IsShippingPackage>false</IsShippingPackage>
   </PropertyGroup>
 
   <Import Project="..\..\build\assets.props" />
@@ -43,7 +44,7 @@
     </ItemGroup>
   </Target>
 
-  <Target Name="AddPackNativeComponents" BeforeTargets="_GetPackageFiles;GetSignedPackageFiles" Condition="$(PackNativeAssets) == 'true'">
+  <Target Name="AddPackNativeComponents" BeforeTargets="_GetPackageFiles" Condition="$(PackNativeAssets) == 'true'">
     <ItemGroup>
       <Content Include="%(ShimComponents.DllLocation)" PackageCopyToOutput="true" PackagePath="contentFiles/any/any/%(ShimComponents.Platform)/%(ShimComponents.PackageSubPath)" />
       <SignedPackageFile Include="%(ShimComponents.DllLocation)" PackagePath="contentFiles/any/any/%(ShimComponents.Platform)/%(ShimComponents.PackageSubPath)%(ShimComponents.NativeAsset).dll" Certificate="$(AssemblySigningCertName)" />
@@ -52,8 +53,8 @@
 
   <ItemGroup>
     <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IIS\test\testassets\TestTasks\TestTasks.csproj" ReferenceOutputAssembly="false" />
+    <ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
 
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.NETCore.Windows.ApiSets" />
     <Reference Include="Microsoft.Web.Administration" />
     <Reference Include="System.ServiceProcess.ServiceController" />

+ 0 - 1
src/Servers/Kestrel/perf/PlatformBenchmarks/PlatformBenchmarks.csproj

@@ -7,7 +7,6 @@
     <LangVersion>latest</LangVersion>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <IsTestAssetProject>true</IsTestAssetProject>
-    <IsProjectReferenceProvider>true</IsProjectReferenceProvider>
   </PropertyGroup>
 
   <ItemGroup>

+ 2 - 1
src/Servers/Kestrel/test/Interop.FunctionalTests/Interop.FunctionalTests.csproj

@@ -4,7 +4,8 @@
     <TargetFramework>netcoreapp3.0</TargetFramework>
     <ServerGarbageCollection>true</ServerGarbageCollection>
     <TestGroupName>Interop.FunctionalTests</TestGroupName>
-    <WarningsNotAsErrors>CS8002;$(WarningsNotAsErrors)</WarningsNotAsErrors>
+    <!-- WebDriver is not strong named, so this test assembly cannot be strong-named either. -->
+    <SignAssembly>false</SignAssembly>
   </PropertyGroup>
 
   <ItemGroup>

+ 1 - 3
src/Servers/Kestrel/tools/CodeGenerator/CodeGenerator.csproj

@@ -3,10 +3,8 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.0</TargetFramework>
     <OutputType>Exe</OutputType>
-    <IsPackable>false</IsPackable>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <IsImplementationProject>false</IsImplementationProject>
-    <IsProjectReferenceProvider>true</IsProjectReferenceProvider>
+    <IsTestAssetProject>true</IsTestAssetProject>
   </PropertyGroup>
 
   <ItemGroup>

+ 1 - 1
src/Servers/test/FunctionalTests/Directory.Build.props

@@ -8,6 +8,6 @@
   </PropertyGroup>
 
   <ItemGroup Condition="'$(IsImplementationProject)' == 'true'">
-    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
+    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" AllowExplicitReference="true" />
   </ItemGroup>
 </Project>

+ 1 - 1
src/Servers/test/FunctionalTests/ServerComparison.FunctionalTests.csproj

@@ -9,7 +9,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
+    <ProjectReference Include="$(RepositoryRoot)src\Servers\IIS\IntegrationTesting.IIS\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
     <Reference Include="Microsoft.Extensions.Logging" />
     <Reference Include="Microsoft.Extensions.Logging.Testing" />
     <Reference Include="Microsoft.Net.Http.Headers" />

+ 1 - 1
src/Servers/testassets/ServerComparison.TestSites/Directory.Build.props

@@ -8,6 +8,6 @@
   </PropertyGroup>
 
   <ItemGroup Condition="'$(IsImplementationProject)' == 'true'">
-    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
+    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" AllowExplicitReference="true" />
   </ItemGroup>
 </Project>

+ 0 - 8
src/Shared/Buffers.MemoryPool/Directory.Build.props

@@ -1,8 +0,0 @@
-<Project>
-
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
-
-  <PropertyGroup>
-    <PackageId>Microsoft.Extensions.Buffers.MemoryPool.Sources</PackageId>
-  </PropertyGroup>
-</Project>

+ 0 - 8
src/Shared/Buffers.Testing/Directory.Build.props

@@ -1,8 +0,0 @@
-<Project>
-
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
-
-  <PropertyGroup>
-    <PackageId>Microsoft.Extensions.Buffers.Testing.Sources</PackageId>
-  </PropertyGroup>
-</Project>

+ 1 - 1
src/SignalR/Directory.Build.props

@@ -20,6 +20,6 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
+    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" AllowExplicitReference="true" />
   </ItemGroup>
 </Project>

+ 0 - 17
src/SignalR/clients/java/signalr/signalr.javaproj

@@ -52,22 +52,5 @@
     <Exec Command="./gradlew $(GradleOptions) test" IgnoreStandardErrorWarningFormat="true" />
   </Target>
 
-  <Target Name="GetArtifactInfo" Condition="'$(IsPackable)' == 'true' " Returns="@(ArtifactInfo)">
-    <ItemGroup>
-      <ArtifactInfo Include="$(PackageOutputPath)%(Jars.Identity)">
-        <ArtifactType>JavaJar</ArtifactType>
-        <Version>$(PackageVersion)</Version>
-        <Category>ship</Category>
-        <ShouldBeSigned>true</ShouldBeSigned>
-        <Certificate>$(JarSigningCertName)</Certificate>
-      </ArtifactInfo>
-      <ArtifactInfo Include="$(PackageOutputPath)%(PomFile.Identity)">
-        <ArtifactType>MavenPOM</ArtifactType>
-        <Version>$(PackageVersion)</Version>
-        <Category>ship</Category>
-      </ArtifactInfo>
-    </ItemGroup>
-  </Target>
-
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
 </Project>

+ 1 - 1
src/SignalR/clients/ts/signalr-protocol-msgpack/package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "@aspnet/signalr-protocol-msgpack",
-  "version": "1.1.0-rtm-t000",
+  "version": "3.0.0-preview-t000",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {

+ 1 - 1
src/SignalR/clients/ts/signalr-protocol-msgpack/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@aspnet/signalr-protocol-msgpack",
-  "version": "1.1.0-rtm-t000",
+  "version": "3.0.0-preview-t000",
   "description": "MsgPack Protocol support for ASP.NET Core SignalR",
   "main": "./dist/cjs/index.js",
   "module": "./dist/esm/index.js",

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