Explorar o código

Merged PR 4703: [internal/release/3.1] Update dependencies from 1 repositories

This pull request updates the following dependencies

[marker]: <> (Begin:48752c90-f78c-49ee-575f-08d76e1d56cb)
## From https://github.com/aspnet/EntityFrameworkCore
- **Build**: 20191210.7
- **Date Produced**: 12/10/2019 8:25 PM
- **Commit**: 813358a5fb4e1f35e5d82463d2bad6616ca6f594
- **Branch**: refs/heads/internal/release/3.1
- **Updates**:
  - **Microsoft.EntityFrameworkCore.Tools** -> 3.1.1-servicing.19610.7
  - **Microsoft.EntityFrameworkCore.SqlServer** -> 3.1.1-servicing.19610.7
  - **dotnet-ef** -> 3.1.1-servicing.19610.7
  - **Microsoft.EntityFrameworkCore** -> 3.1.1-servicing.19610.7
  - **Microsoft.EntityFrameworkCore.InMemory** -> 3.1.1-servicing.19610.7
  - **Microsoft.EntityFrameworkCore.Relational** -> 3.1.1-servicing.19610.7
  - **Microsoft.EntityFrameworkCore.Sqlite** -> 3.1.1-servicing.19610.7

[marker]: <> (End:48752c90-f78c-49ee-575f-08d76e1d56cb)
DotNet Bot %!s(int64=6) %!d(string=hai) anos
pai
achega
1324674163

+ 84 - 7
.azure/pipelines/ci.yml

@@ -38,6 +38,19 @@ variables:
     value: ''
   - name: _SignType
     value: ''
+  - name: _InternalRuntimeDownloadArgs
+    value: ''
+  - name: _InternalRuntimeDownloadCodeSignArgs
+    value: ''
+- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+  - group: DotNet-MSRC-Storage
+  - name: _InternalRuntimeDownloadArgs
+    value: -DotNetRuntimeSourceFeed https://dotnetclimsrc.blob.core.windows.net/dotnet -DotNetRuntimeSourceFeedKey $(dotnetclimsrc-read-sas-token-base64) /p:DotNetAssetRootAccessTokenSuffix='$(dotnetclimsrc-read-sas-token-base64)'
+  # The code signing doesn't use the aspnet build scripts, so the msbuild parameers have
+  # to be passed directly. This is awkward, since we pass the same info above, but we have
+  # to have it in two different forms
+  - name: _InternalRuntimeDownloadCodeSignArgs
+    value: /p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64)
 - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
   - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
     # DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
@@ -81,7 +94,15 @@ stages:
       jobDisplayName: Code check
       agentOs: Windows
       steps:
-      - powershell: ./eng/scripts/CodeCheck.ps1 -ci
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: PowerShell@2
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+            arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
+      - powershell: ./eng/scripts/CodeCheck.ps1 -ci $(_InternalRuntimeDownloadArgs)
         displayName: Run eng/scripts/CodeCheck.ps1
       artifacts:
       - name: Code_Check_Logs
@@ -108,6 +129,14 @@ stages:
       # This is intentional to workaround https://github.com/dotnet/arcade/issues/1957 which always re-submits for code-signing, even
       # if they have already been signed. This results in slower builds due to re-submitting the same .nupkg many times for signing.
       # The sign settings have been configured to
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: PowerShell@2
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+            arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
 
       - script: ./build.cmd
                 -ci
@@ -117,6 +146,7 @@ stages:
                 -buildNative
                 /bl:artifacts/log/build.x64.binlog
                 $(_BuildArgs)
+                $(_InternalRuntimeDownloadArgs)
         displayName: Build x64
 
       # Build the x86 shared framework
@@ -132,6 +162,7 @@ stages:
                 /p:OnlyPackPlatformSpecificPackages=true
                 /bl:artifacts/log/build.x86.binlog
                 $(_BuildArgs)
+                $(_InternalRuntimeDownloadArgs)
         displayName: Build x86
 
       # This is in a separate build step with -forceCoreMsbuild to workaround MAX_PATH limitations - https://github.com/Microsoft/msbuild/issues/53
@@ -140,6 +171,7 @@ stages:
                 -pack
                 -noBuildDeps
                 $(_BuildArgs)
+                $(_InternalRuntimeDownloadArgs)
         displayName: Build SiteExtension
 
       # This runs code-signing on all packages, zips, and jar files as defined in build/CodeSign.targets. If https://github.com/dotnet/arcade/issues/1957 is resolved,
@@ -165,6 +197,7 @@ stages:
                 /p:AssetManifestFileName=aspnetcore-win-x64-x86.xml
                 $(_BuildArgs)
                 $(_PublishArgs)
+                $(_InternalRuntimeDownloadArgs)
                 /p:PublishInstallerBaseVersion=true
         displayName: Build Installers
 
@@ -205,6 +238,7 @@ stages:
         /p:AssetManifestFileName=aspnetcore-win-arm.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -231,6 +265,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-MacOS_x64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -251,6 +286,14 @@ stages:
       jobDisplayName: "Build: Linux x64"
       agentOs: Linux
       steps:
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: Bash@3
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
+            arguments: $(Build.SourcesDirectory)/NuGet.config $Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
       - script: ./build.sh
             --ci
             --arch x64
@@ -261,6 +304,7 @@ stages:
             -p:OnlyPackPlatformSpecificPackages=true
             -bl:artifacts/log/build.linux-x64.binlog
             $(_BuildArgs)
+            $(_InternalRuntimeDownloadArgs)
         displayName: Run build.sh
       - script: |
           git clean -xfd src/**/obj/
@@ -274,7 +318,8 @@ stages:
             -p:BuildRuntimeArchive=false \
             -p:LinuxInstallerType=deb \
             -bl:artifacts/log/build.deb.binlog \
-            $(_BuildArgs)
+            $(_BuildArgs) \
+            $(_InternalRuntimeDownloadArgs)
         displayName: Build Debian installers
       - script: |
           git clean -xfd src/**/obj/
@@ -290,7 +335,8 @@ stages:
             -bl:artifacts/log/build.rpm.binlog \
             -p:AssetManifestFileName=aspnetcore-Linux_x64.xml \
             $(_BuildArgs) \
-            $(_PublishArgs)
+            $(_PublishArgs) \
+            $(_InternalRuntimeDownloadArgs)
         displayName: Build RPM installers
       installNodeJs: false
       installJdk: false
@@ -322,6 +368,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_arm.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -352,6 +399,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_arm64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -385,6 +433,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_musl_x64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -418,6 +467,7 @@ stages:
         -p:AssetManifestFileName=aspnetcore-Linux_musl_arm64.xml
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadArgs)
       installNodeJs: false
       installJdk: false
       artifacts:
@@ -439,7 +489,7 @@ stages:
       jobDisplayName: "Test: Windows Server 2016 x64"
       agentOs: Windows
       isTestingJob: true
-      buildArgs: -all -pack -test -BuildNative "/p:SkipIISNewHandlerTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false"
+      buildArgs: -all -pack -test -BuildNative "/p:SkipIISNewHandlerTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false" $(_InternalRuntimeDownloadArgs)
       beforeBuild:
       - powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
         displayName: Setup IISExpress test certificates and schema
@@ -475,7 +525,15 @@ stages:
       agentOs: Windows
       isTestingJob: true
       steps:
-      - script: ./build.cmd -ci -all -pack
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: PowerShell@2
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+            arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
+      - script: ./build.cmd -ci -all -pack $(_InternalRuntimeDownloadArgs)
         displayName: Build Repo
       - script: ./src/ProjectTemplates/build.cmd -ci -pack -NoRestore -NoBuilddeps "/p:RunTemplateTests=true /bl:artifacts/log/template.pack.binlog"
         displayName: Pack Templates
@@ -502,7 +560,7 @@ stages:
       jobDisplayName: "Test: macOS 10.13"
       agentOs: macOS
       isTestingJob: true
-      buildArgs: --all --test "/p:RunTemplateTests=false"
+      buildArgs: --all --test "/p:RunTemplateTests=false" $(_InternalRuntimeDownloadArgs)
       beforeBuild:
       - bash: "./eng/scripts/install-nginx-mac.sh"
         displayName: Installing Nginx
@@ -537,7 +595,7 @@ stages:
       jobDisplayName: "Test: Ubuntu 16.04 x64"
       agentOs: Linux
       isTestingJob: true
-      buildArgs: --all --test "/p:RunTemplateTests=false"
+      buildArgs: --all --test "/p:RunTemplateTests=false"  $(_InternalRuntimeDownloadArgs)
       beforeBuild:
       - bash: "./eng/scripts/install-nginx-linux.sh"
         displayName: Installing Nginx
@@ -584,6 +642,25 @@ stages:
         chmod +x $HOME/bin/jq
         echo "##vso[task.prependpath]$HOME/bin"
       displayName: Install jq
+    - task: UseDotNet@2
+      displayName: 'Use .NET Core sdk'
+      inputs:
+        packageType: sdk
+        # The SDK version selected here is intentionally supposed to use the latest release
+        # For the purpose of building Linux distros, we can't depend on features of the SDK
+        # which may not exist in pre-built versions of the SDK
+        # Pinning to preview 8 since preview 9 has breaking changes
+        version: 3.1.100
+        installationPath: $(DotNetCoreSdkDir)
+        includePreviewVersions: true
+    - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - task: Bash@3
+          displayName: Setup Private Feeds Credentials
+          inputs:
+            filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
+            arguments: $(Build.SourcesDirectory)/NuGet.config $Token
+          env:
+            Token: $(dn-bot-dnceng-artifact-feeds-rw)
     - script: ./eng/scripts/ci-source-build.sh --ci --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false
       displayName: Run ci-source-build.sh
     - task: PublishBuildArtifacts@1

+ 9 - 0
.azure/pipelines/jobs/codesign-xplat.yml

@@ -28,6 +28,14 @@ jobs:
         contents: '**/*.nupkg'
         targetFolder: $(Build.SourcesDirectory)/artifacts/packages/$(BuildConfiguration)/shipping/
         flattenFolders: true
+    - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+      - task: PowerShell@2
+        displayName: Setup Private Feeds Credentials
+        inputs:
+          filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+          arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+        env:
+          Token: $(dn-bot-dnceng-artifact-feeds-rw)
     - powershell: .\eng\common\build.ps1
         -ci
         -restore
@@ -39,6 +47,7 @@ jobs:
         /p:DotNetSignType=$(_SignType)
         $(_BuildArgs)
         $(_PublishArgs)
+        $(_InternalRuntimeDownloadCodeSignArgs)
       displayName: Sign and publish packages
     artifacts:
     - name: CodeSign_Xplat_${{ parameters.inputName }}_Logs

+ 18 - 0
.azure/pipelines/jobs/default-build.yml

@@ -161,6 +161,24 @@ jobs:
     - ${{ if ne(parameters.steps, '')}}:
       - ${{ parameters.steps }}
     - ${{ if eq(parameters.steps, '')}}:
+      - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+        - ${{ if eq(parameters.agentOs, 'Windows') }}:
+          - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+            - task: PowerShell@2
+              displayName: Setup Private Feeds Credentials
+              inputs:
+                filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
+                arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+              env:
+                Token: $(dn-bot-dnceng-artifact-feeds-rw)
+        - ${{ if ne(parameters.agentOs, 'Windows') }}:
+          - task: Bash@3
+            displayName: Setup Private Feeds Credentials
+            inputs:
+              filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
+              arguments: $(Build.SourcesDirectory)/NuGet.config $Token
+            env:
+              Token: $(dn-bot-dnceng-artifact-feeds-rw)
       - ${{ if eq(parameters.buildScript, '') }}:
         - ${{ if eq(parameters.agentOs, 'Windows') }}:
           - script: .\$(BuildDirectory)\build.cmd -ci /p:DotNetSignType=$(_SignType) -Configuration $(BuildConfiguration) $(BuildScriptArgs)

+ 3 - 0
NuGet.config

@@ -6,6 +6,9 @@
     <add key="darc-pub-dotnet-core-setup-7d57652" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-core-setup-7d57652f/nuget/v3/index.json" />
     <add key="darc-pub-dotnet-core-setup-65f04fb" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-core-setup-65f04fb6/nuget/v3/index.json" />
     <add key="darc-pub-dotnet-corefx-0f7f38c" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-corefx-0f7f38c4/nuget/v3/index.json" />
+    <add key="darc-int-dotnet-core-setup-a1388f1" value="https://pkgs.dev.azure.com/dnceng/_packaging/darc-int-dotnet-core-setup-a1388f19/nuget/v3/index.json" />
+    <add key="darc-int-aspnet-Extensions-d00c382" value="https://pkgs.dev.azure.com/dnceng/_packaging/darc-int-aspnet-Extensions-d00c382e/nuget/v3/index.json" />
+    <add key="darc-int-aspnet-EntityFrameworkCore-fde8a73" value="https://pkgs.dev.azure.com/dnceng/_packaging/darc-int-aspnet-EntityFrameworkCore-fde8a73d/nuget/v3/index.json" />
     <!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
     <add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
     <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />

+ 23 - 1
build.ps1

@@ -77,6 +77,12 @@ MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
 .PARAMETER MSBuildArguments
 Additional MSBuild arguments to be passed through.
 
+.PARAMETER DotNetRuntimeSourceFeed
+Additional feed that can be used when downloading .NET runtimes
+
+.PARAMETER DotNetRuntimeSourceFeedKey
+Key for feed that can be used when downloading .NET runtimes
+
 .EXAMPLE
 Building both native and managed projects.
 
@@ -151,6 +157,11 @@ param(
 
     # Other lifecycle targets
     [switch]$Help, # Show help
+    
+    # Optional arguments that enable downloading an internal
+    # runtime or runtime from a non-default location
+    [string]$DotNetRuntimeSourceFeed,
+    [string]$DotNetRuntimeSourceFeedKey,
 
     # Capture the rest
     [Parameter(ValueFromRemainingArguments = $true)]
@@ -251,6 +262,16 @@ if (-not $Configuration) {
 }
 $MSBuildArguments += "/p:Configuration=$Configuration"
 
+[string[]]$ToolsetBuildArguments = @()
+if ($DotNetRuntimeSourceFeed -or $DotNetRuntimeSourceFeedKey) {
+    $runtimeFeedArg = "/p:DotNetRuntimeSourceFeed=$DotNetRuntimeSourceFeed"
+    $runtimeFeedKeyArg = "/p:DotNetRuntimeSourceFeedKey=$DotNetRuntimeSourceFeedKey"
+    $MSBuildArguments += $runtimeFeedArg
+    $MSBuildArguments += $runtimeFeedKeyArg
+    $ToolsetBuildArguments += $runtimeFeedArg
+    $ToolsetBuildArguments += $runtimeFeedKeyArg
+}
+
 $foundJdk = $false
 $javac = Get-Command javac -ErrorAction Ignore -CommandType Application
 $localJdkPath = "$PSScriptRoot\.tools\jdk\win-x64\"
@@ -375,7 +396,8 @@ try {
             /p:Configuration=Release `
             /p:Restore=$RunRestore `
             /p:Build=true `
-            /clp:NoSummary
+            /clp:NoSummary `
+            @ToolsetBuildArguments
     }
 
     MSBuild $toolsetBuildProj `

+ 56 - 29
build.sh

@@ -29,6 +29,8 @@ build_installers=''
 build_projects=''
 target_arch='x64'
 configuration=''
+dotnet_runtime_source_feed=''
+dotnet_runtime_source_feed_key=''
 
 if [ "$(uname)" = "Darwin" ]; then
     target_os_name='osx'
@@ -45,33 +47,36 @@ __usage() {
     echo "Usage: $(basename "${BASH_SOURCE[0]}") [options] [[--] <Arguments>...]
 
 Arguments:
-    <Arguments>...            Arguments passed to the command. Variable number of arguments allowed.
+    <Arguments>...                    Arguments passed to the command. Variable number of arguments allowed.
 
 Options:
-    --configuration|-c        The build configuration (Debug, Release). Default=Debug
-    --arch                    The CPU architecture to build for (x64, arm, arm64). Default=$target_arch
-    --os-name                 The base runtime identifier to build for (linux, osx, linux-musl). Default=$target_os_name
-
-    --[no-]restore            Run restore.
-    --[no-]build              Compile projects. (Implies --no-restore)
-    --[no-]pack               Produce packages.
-    --[no-]test               Run tests.
-
-    --projects                A list of projects to build. (Must be an absolute path.)
-                              Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
-    --no-build-deps           Do not build project-to-project references and only build the specified project.
-    --no-build-repo-tasks     Suppress building RepoTasks.
-
-    --all                     Build all project types.
-    --[no-]build-native       Build native projects (C, C++).
-    --[no-]build-managed      Build managed projects (C#, F#, VB).
-    --[no-]build-nodejs       Build NodeJS projects (TypeScript, JS).
-    --[no-]build-java         Build Java projects.
-    --[no-]build-installers   Build Java projects.
-
-    --ci                      Apply CI specific settings and environment variables.
-    --binarylog|-bl           Use a binary logger
-    --verbosity|-v            MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
+    --configuration|-c                The build configuration (Debug, Release). Default=Debug
+    --arch                            The CPU architecture to build for (x64, arm, arm64). Default=$target_arch
+    --os-name                         The base runtime identifier to build for (linux, osx, linux-musl). Default=$target_os_name
+
+    --[no-]restore                    Run restore.
+    --[no-]build                      Compile projects. (Implies --no-restore)
+    --[no-]pack                       Produce packages.
+    --[no-]test                       Run tests.
+
+    --projects                        A list of projects to build. (Must be an absolute path.)
+                                      Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
+    --no-build-deps                   Do not build project-to-project references and only build the specified project.
+    --no-build-repo-tasks             Suppress building RepoTasks.
+
+    --all                             Build all project types.
+    --[no-]build-native               Build native projects (C, C++).
+    --[no-]build-managed              Build managed projects (C#, F#, VB).
+    --[no-]build-nodejs               Build NodeJS projects (TypeScript, JS).
+    --[no-]build-java                 Build Java projects.
+    --[no-]build-installers           Build Java projects.
+
+    --ci                              Apply CI specific settings and environment variables.
+    --binarylog|-bl                   Use a binary logger
+    --verbosity|-v                    MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
+    
+    --dotnet-runtime-source-feed      Additional feed that can be used when downloading .NET runtimes
+    --dotnet-runtime-source-feed-key  Key for feed that can be used when downloading .NET runtimes
 
 Description:
     This build script installs required tools and runs an MSBuild command on this repository
@@ -188,16 +193,26 @@ while [[ $# -gt 0 ]]; do
         -no-build-repo-tasks|-nobuildrepotasks)
             build_repo_tasks=false
             ;;
+        -arch)
+            shift
+            target_arch="${1:-}"
+            [ -z "$target_arch" ] && __error "Missing value for parameter --arch" && __usage
+            ;;
         -ci)
             ci=true
             ;;
         -binarylog|-bl)
             use_default_binary_log=true
             ;;
-        -verbosity|-v)
+        -dotnet-runtime-source-feed|-dotnetruntimesourcefeed)
             shift
-            [ -z "${1:-}" ] && __error "Missing value for parameter --verbosity" && __usage
-            verbosity="${1:-}"
+            [ -z "${1:-}" ] && __error "Missing value for parameter --dotnet-runtime-source-feed" && __usage
+            dotnet_runtime_source_feed="${1:-}"
+            ;;
+        -dotnet-runtime-source-feed-key|-dotnetruntimesourcefeedkey)
+            shift
+            [ -z "${1:-}" ] && __error "Missing value for parameter --dotnet-runtime-source-feed-key" && __usage
+            dotnet_runtime_source_feed_key="${1:-}"
             ;;
         *)
             msbuild_args[${#msbuild_args[*]}]="$1"
@@ -270,6 +285,17 @@ msbuild_args[${#msbuild_args[*]}]="-p:Configuration=$configuration"
 echo "Setting msbuild verbosity to $verbosity"
 msbuild_args[${#msbuild_args[*]}]="-verbosity:$verbosity"
 
+# Set up additional runtime args
+toolset_build_args=()
+if [ ! -z "$dotnet_runtime_source_feed" ] || [ ! -z "$dotnet_runtime_source_feed_key" ]; then
+    runtimeFeedArg="/p:DotNetRuntimeSourceFeed=$dotnet_runtime_source_feed"
+    runtimeFeedKeyArg="/p:DotNetRuntimeSourceFeedKey=$dotnet_runtime_source_feed_key"
+    msbuild_args[${#msbuild_args[*]}]=$runtimeFeedArg
+    msbuild_args[${#msbuild_args[*]}]=$runtimeFeedKeyArg
+    toolset_build_args[${#toolset_build_args[*]}]=$runtimeFeedArg
+    toolset_build_args[${#toolset_build_args[*]}]=$runtimeFeedKeyArg
+fi
+
 # Initialize global variables need to be set before the import of Arcade is imported
 restore=$run_restore
 
@@ -325,7 +351,8 @@ if [ "$build_repo_tasks" = true ]; then
         -p:Configuration=Release \
         -p:Restore=$run_restore \
         -p:Build=true \
-        -clp:NoSummary
+        -clp:NoSummary \
+        ${toolset_build_args[@]+"${toolset_build_args[@]}"}
 fi
 
 # This incantation avoids unbound variable issues if msbuild_args is empty

+ 210 - 210
eng/Version.Details.xml

@@ -29,265 +29,265 @@
       <Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
       <Sha>9cf15bed711983d35362d62972ab87ccc88ba8ca</Sha>
     </Dependency>
-    <Dependency Name="dotnet-ef" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="dotnet-ef" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore" Version="3.1.1-servicing.19605.1">
-      <Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
-      <Sha>7f59c0bb92fb33698232f0d7007ebcb0a428b543</Sha>
+    <Dependency Name="Microsoft.EntityFrameworkCore" Version="3.1.1">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-EntityFrameworkCore</Uri>
+      <Sha>fde8a73d63ea11e1f2bdc690cf1b16ba0a449649</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Configuration" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Hosting" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Hosting" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Http" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Http" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Localization" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Localization" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Logging" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Options" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Primitives" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.Primitives" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.JSInterop" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.JSInterop" Version="3.1.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
-    <Dependency Name="Mono.WebAssembly.Interop" Version="3.1.1-preview4.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Mono.WebAssembly.Interop" Version="3.1.1-preview4.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
     <Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.1.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
       <Uri>https://github.com/dotnet/corefx</Uri>
@@ -377,25 +377,25 @@
       <Uri>https://github.com/dotnet/corefx</Uri>
       <Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.1.1-servicing.19576.9" CoherentParentDependency="Microsoft.Extensions.Logging">
-      <Uri>https://github.com/dotnet/core-setup</Uri>
-      <Sha>f3f2dd583fffa254015fc21ff0e45784b333256d</Sha>
+    <Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.1.1" CoherentParentDependency="Microsoft.Extensions.Logging">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup</Uri>
+      <Sha>a1388f194c30cb21b36b75982962cb5e35954e4e</Sha>
     </Dependency>
     <!--
          Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
          All Runtime.$rid packages should have the same version.
     -->
-    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.1.1-servicing.19576.9" CoherentParentDependency="Microsoft.Extensions.Logging">
-      <Uri>https://github.com/dotnet/core-setup</Uri>
-      <Sha>f3f2dd583fffa254015fc21ff0e45784b333256d</Sha>
+    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.1.1" CoherentParentDependency="Microsoft.Extensions.Logging">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup</Uri>
+      <Sha>a1388f194c30cb21b36b75982962cb5e35954e4e</Sha>
     </Dependency>
     <Dependency Name="NETStandard.Library.Ref" Version="2.1.0" Pinned="true">
       <Uri>https://github.com/dotnet/core-setup</Uri>
       <Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.App.Internal" Version="3.1.1-servicing.19576.9" CoherentParentDependency="Microsoft.Extensions.Logging">
-      <Uri>https://github.com/dotnet/core-setup</Uri>
-      <Sha>f3f2dd583fffa254015fc21ff0e45784b333256d</Sha>
+    <Dependency Name="Microsoft.NETCore.App.Internal" Version="3.1.1-servicing.19608.4" CoherentParentDependency="Microsoft.Extensions.Logging">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup</Uri>
+      <Sha>a1388f194c30cb21b36b75982962cb5e35954e4e</Sha>
     </Dependency>
     <!-- Keep these dependencies at the bottom of ProductDependencies, else they will be picked as the parent for CoherentParentDependencies -->
     <Dependency Name="Microsoft.NETCore.App.Ref" Version="3.1.0" Pinned="true">
@@ -413,9 +413,9 @@
       <Uri>https://github.com/dotnet/corefx</Uri>
       <Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
     </Dependency>
-    <Dependency Name="Internal.AspNetCore.Analyzers" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Internal.AspNetCore.Analyzers" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
     <Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19607.3">
       <Uri>https://github.com/dotnet/arcade</Uri>
@@ -429,9 +429,9 @@
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Sha>4d80b9cfa53e309c8f685abff3512f60c3d8a3d1</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.AspNetCore.Testing" Version="3.1.1-servicing.19604.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
-      <Uri>https://github.com/aspnet/Extensions</Uri>
-      <Sha>d40e21ccc14908a054b2181b1d6aeb22c49c630d</Sha>
+    <Dependency Name="Microsoft.AspNetCore.Testing" Version="3.1.1-servicing.19614.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
+      <Uri>https://dev.azure.com/dnceng/internal/_git/aspnet-Extensions</Uri>
+      <Sha>d00c382ec5d68a85d2eb4a49ab4559b8db7a2390</Sha>
     </Dependency>
     <Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.4.0-beta4-19569-03" CoherentParentDependency="Microsoft.Extensions.Logging">
       <Uri>https://github.com/dotnet/roslyn</Uri>

+ 71 - 70
eng/Versions.props

@@ -66,10 +66,10 @@
     <!-- Packages from dotnet/roslyn -->
     <MicrosoftNetCompilersToolsetPackageVersion>3.4.0-beta4-19569-03</MicrosoftNetCompilersToolsetPackageVersion>
     <!-- Packages from dotnet/core-setup -->
-    <MicrosoftExtensionsDependencyModelPackageVersion>3.1.1-servicing.19576.9</MicrosoftExtensionsDependencyModelPackageVersion>
-    <MicrosoftNETCoreAppInternalPackageVersion>3.1.1-servicing.19576.9</MicrosoftNETCoreAppInternalPackageVersion>
+    <MicrosoftExtensionsDependencyModelPackageVersion>3.1.1</MicrosoftExtensionsDependencyModelPackageVersion>
+    <MicrosoftNETCoreAppInternalPackageVersion>3.1.1-servicing.19608.4</MicrosoftNETCoreAppInternalPackageVersion>
     <MicrosoftNETCoreAppRefPackageVersion>3.1.0</MicrosoftNETCoreAppRefPackageVersion>
-    <MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.1.1-servicing.19576.9</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
+    <MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.1.1</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
     <NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
     <!-- Packages from dotnet/corefx -->
     <MicrosoftBclAsyncInterfacesPackageVersion>1.1.0</MicrosoftBclAsyncInterfacesPackageVersion>
@@ -99,75 +99,75 @@
     <!-- Packages from aspnet/Blazor -->
     <MicrosoftAspNetCoreBlazorMonoPackageVersion>3.1.0-preview4.19605.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
     <!-- Packages from aspnet/Extensions -->
-    <InternalAspNetCoreAnalyzersPackageVersion>3.1.1-servicing.19604.6</InternalAspNetCoreAnalyzersPackageVersion>
-    <MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.1.1-servicing.19604.6</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
-    <MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
-    <MicrosoftAspNetCoreTestingPackageVersion>3.1.1-servicing.19604.6</MicrosoftAspNetCoreTestingPackageVersion>
-    <MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
-    <MicrosoftExtensionsCachingAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsCachingAbstractionsPackageVersion>
-    <MicrosoftExtensionsCachingMemoryPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsCachingMemoryPackageVersion>
-    <MicrosoftExtensionsCachingSqlServerPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsCachingSqlServerPackageVersion>
-    <MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
-    <MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
-    <MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
-    <MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
-    <MicrosoftExtensionsConfigurationBinderPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationBinderPackageVersion>
-    <MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
-    <MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
-    <MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
-    <MicrosoftExtensionsConfigurationIniPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationIniPackageVersion>
-    <MicrosoftExtensionsConfigurationJsonPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationJsonPackageVersion>
-    <MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
-    <MicrosoftExtensionsConfigurationPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationPackageVersion>
-    <MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
-    <MicrosoftExtensionsConfigurationXmlPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsConfigurationXmlPackageVersion>
-    <MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
-    <MicrosoftExtensionsDependencyInjectionPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsDependencyInjectionPackageVersion>
-    <MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
-    <MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
-    <MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
-    <MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
-    <MicrosoftExtensionsFileProvidersCompositePackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsFileProvidersCompositePackageVersion>
-    <MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
-    <MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
-    <MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
-    <MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
-    <MicrosoftExtensionsHostingAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsHostingAbstractionsPackageVersion>
-    <MicrosoftExtensionsHostingPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsHostingPackageVersion>
-    <MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
-    <MicrosoftExtensionsHttpPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsHttpPackageVersion>
-    <MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
-    <MicrosoftExtensionsLocalizationPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLocalizationPackageVersion>
-    <MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
-    <MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
-    <MicrosoftExtensionsLoggingConfigurationPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingConfigurationPackageVersion>
-    <MicrosoftExtensionsLoggingConsolePackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingConsolePackageVersion>
-    <MicrosoftExtensionsLoggingDebugPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingDebugPackageVersion>
-    <MicrosoftExtensionsLoggingEventSourcePackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingEventSourcePackageVersion>
-    <MicrosoftExtensionsLoggingEventLogPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingEventLogPackageVersion>
-    <MicrosoftExtensionsLoggingPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingPackageVersion>
-    <MicrosoftExtensionsLoggingTestingPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingTestingPackageVersion>
-    <MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
-    <MicrosoftExtensionsObjectPoolPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsObjectPoolPackageVersion>
-    <MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
-    <MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
-    <MicrosoftExtensionsOptionsPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsOptionsPackageVersion>
-    <MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
-    <MicrosoftExtensionsPrimitivesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsPrimitivesPackageVersion>
-    <MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
-    <MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
-    <MicrosoftExtensionsWebEncodersPackageVersion>3.1.1-servicing.19604.6</MicrosoftExtensionsWebEncodersPackageVersion>
+    <InternalAspNetCoreAnalyzersPackageVersion>3.1.1-servicing.19614.4</InternalAspNetCoreAnalyzersPackageVersion>
+    <MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.1.1-servicing.19614.4</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
+    <MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
+    <MicrosoftAspNetCoreTestingPackageVersion>3.1.1-servicing.19614.4</MicrosoftAspNetCoreTestingPackageVersion>
+    <MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
+    <MicrosoftExtensionsCachingAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsCachingAbstractionsPackageVersion>
+    <MicrosoftExtensionsCachingMemoryPackageVersion>3.1.1</MicrosoftExtensionsCachingMemoryPackageVersion>
+    <MicrosoftExtensionsCachingSqlServerPackageVersion>3.1.1</MicrosoftExtensionsCachingSqlServerPackageVersion>
+    <MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.1.1</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
+    <MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
+    <MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
+    <MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.1.1</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
+    <MicrosoftExtensionsConfigurationBinderPackageVersion>3.1.1</MicrosoftExtensionsConfigurationBinderPackageVersion>
+    <MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.1.1</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
+    <MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.1.1</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
+    <MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.1.1</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
+    <MicrosoftExtensionsConfigurationIniPackageVersion>3.1.1</MicrosoftExtensionsConfigurationIniPackageVersion>
+    <MicrosoftExtensionsConfigurationJsonPackageVersion>3.1.1</MicrosoftExtensionsConfigurationJsonPackageVersion>
+    <MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.1.1</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
+    <MicrosoftExtensionsConfigurationPackageVersion>3.1.1</MicrosoftExtensionsConfigurationPackageVersion>
+    <MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.1.1</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
+    <MicrosoftExtensionsConfigurationXmlPackageVersion>3.1.1</MicrosoftExtensionsConfigurationXmlPackageVersion>
+    <MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
+    <MicrosoftExtensionsDependencyInjectionPackageVersion>3.1.1</MicrosoftExtensionsDependencyInjectionPackageVersion>
+    <MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.1.1</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
+    <MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
+    <MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.1.1</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
+    <MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
+    <MicrosoftExtensionsFileProvidersCompositePackageVersion>3.1.1</MicrosoftExtensionsFileProvidersCompositePackageVersion>
+    <MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.1.1</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
+    <MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.1.1</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
+    <MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.1.1</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
+    <MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
+    <MicrosoftExtensionsHostingAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsHostingAbstractionsPackageVersion>
+    <MicrosoftExtensionsHostingPackageVersion>3.1.1</MicrosoftExtensionsHostingPackageVersion>
+    <MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
+    <MicrosoftExtensionsHttpPackageVersion>3.1.1</MicrosoftExtensionsHttpPackageVersion>
+    <MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
+    <MicrosoftExtensionsLocalizationPackageVersion>3.1.1</MicrosoftExtensionsLocalizationPackageVersion>
+    <MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.1.1</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
+    <MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.1.1</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
+    <MicrosoftExtensionsLoggingConfigurationPackageVersion>3.1.1</MicrosoftExtensionsLoggingConfigurationPackageVersion>
+    <MicrosoftExtensionsLoggingConsolePackageVersion>3.1.1</MicrosoftExtensionsLoggingConsolePackageVersion>
+    <MicrosoftExtensionsLoggingDebugPackageVersion>3.1.1</MicrosoftExtensionsLoggingDebugPackageVersion>
+    <MicrosoftExtensionsLoggingEventSourcePackageVersion>3.1.1</MicrosoftExtensionsLoggingEventSourcePackageVersion>
+    <MicrosoftExtensionsLoggingEventLogPackageVersion>3.1.1</MicrosoftExtensionsLoggingEventLogPackageVersion>
+    <MicrosoftExtensionsLoggingPackageVersion>3.1.1</MicrosoftExtensionsLoggingPackageVersion>
+    <MicrosoftExtensionsLoggingTestingPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsLoggingTestingPackageVersion>
+    <MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.1.1</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
+    <MicrosoftExtensionsObjectPoolPackageVersion>3.1.1</MicrosoftExtensionsObjectPoolPackageVersion>
+    <MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.1.1</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
+    <MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.1.1</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
+    <MicrosoftExtensionsOptionsPackageVersion>3.1.1</MicrosoftExtensionsOptionsPackageVersion>
+    <MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
+    <MicrosoftExtensionsPrimitivesPackageVersion>3.1.1</MicrosoftExtensionsPrimitivesPackageVersion>
+    <MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
+    <MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.1.1-servicing.19614.4</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
+    <MicrosoftExtensionsWebEncodersPackageVersion>3.1.1</MicrosoftExtensionsWebEncodersPackageVersion>
     <MicrosoftInternalExtensionsRefsPackageVersion>3.1.0-rtm.19565.4</MicrosoftInternalExtensionsRefsPackageVersion>
-    <MicrosoftJSInteropPackageVersion>3.1.1-servicing.19604.6</MicrosoftJSInteropPackageVersion>
-    <MonoWebAssemblyInteropPackageVersion>3.1.1-preview4.19604.6</MonoWebAssemblyInteropPackageVersion>
+    <MicrosoftJSInteropPackageVersion>3.1.1</MicrosoftJSInteropPackageVersion>
+    <MonoWebAssemblyInteropPackageVersion>3.1.1-preview4.19614.4</MonoWebAssemblyInteropPackageVersion>
     <!-- Packages from aspnet/EntityFrameworkCore -->
-    <dotnetefPackageVersion>3.1.1-servicing.19605.1</dotnetefPackageVersion>
-    <MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.1.1-servicing.19605.1</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
-    <MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.1.1-servicing.19605.1</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
-    <MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.1.1-servicing.19605.1</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
-    <MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.1.1-servicing.19605.1</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
-    <MicrosoftEntityFrameworkCoreToolsPackageVersion>3.1.1-servicing.19605.1</MicrosoftEntityFrameworkCoreToolsPackageVersion>
-    <MicrosoftEntityFrameworkCorePackageVersion>3.1.1-servicing.19605.1</MicrosoftEntityFrameworkCorePackageVersion>
+    <dotnetefPackageVersion>3.1.1</dotnetefPackageVersion>
+    <MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.1.1</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
+    <MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.1.1</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
+    <MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.1.1</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
+    <MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.1.1</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
+    <MicrosoftEntityFrameworkCoreToolsPackageVersion>3.1.1</MicrosoftEntityFrameworkCoreToolsPackageVersion>
+    <MicrosoftEntityFrameworkCorePackageVersion>3.1.1</MicrosoftEntityFrameworkCorePackageVersion>
     <!-- Packages from aspnet/AspNetCore-Tooling -->
     <MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.1.1-servicing.19605.6</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
     <MicrosoftAspNetCoreRazorLanguagePackageVersion>3.1.1-servicing.19605.6</MicrosoftAspNetCoreRazorLanguagePackageVersion>
@@ -269,5 +269,6 @@
   <PropertyGroup Label="Restore feeds">
     <!-- In an orchestrated build, this may be overridden to other Azure feeds. -->
     <DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">https://dotnetcli.blob.core.windows.net/dotnet/</DotNetAssetRootUrl>
+    <DotNetPrivateAssetRootUrl Condition="'$(DotNetPrivateAssetRootUrl)'==''">https://dotnetclimsrc.blob.core.windows.net/dotnet/</DotNetPrivateAssetRootUrl>
   </PropertyGroup>
 </Project>

+ 9 - 1
eng/common/tools.sh

@@ -210,7 +210,15 @@ function InstallDotNet {
 
       local runtimeSourceFeedKey=''
       if [[ -n "${7:-}" ]]; then
-        decodedFeedKey=`echo $7 | base64 --decode`
+        # The 'base64' binary on alpine uses '-d' and doesn't support '--decode'
+        # like the rest of the unix variants. At the same time, MacOS doesn't support
+        # '-d'. To work around this, do a simple detection and switch the parameter
+        # accordingly.
+        decodeArg="--decode"
+        if base64 --help 2>&1 | grep -q "BusyBox"; then
+            decodeArg="-d"
+        fi
+        decodedFeedKey=`echo $7 | base64 $decodeArg`
         runtimeSourceFeedKey="--feed-credential $decodedFeedKey"
       fi
 

+ 10 - 5
eng/scripts/CodeCheck.ps1

@@ -4,7 +4,11 @@
 This script runs a quick check for common errors, such as checking that Visual Studio solutions are up to date or that generated code has been committed to source.
 #>
 param(
-    [switch]$ci
+    [switch]$ci,
+    # Optional arguments that enable downloading an internal
+    # runtime or runtime from a non-default location
+    [string]$DotNetRuntimeSourceFeed,
+    [string]$DotNetRuntimeSourceFeedKey
 )
 
 $ErrorActionPreference = 'Stop'
@@ -43,7 +47,7 @@ function LogError {
 try {
     if ($ci) {
         # Install dotnet.exe
-        & $repoRoot/restore.cmd -ci -NoBuildNodeJS
+        & $repoRoot/restore.cmd -ci -NoBuildNodeJS -DotNetRuntimeSourceFeed $DotNetRuntimeSourceFeed -DotNetRuntimeSourceFeedKey $DotNetRuntimeSourceFeedKey
     }
 
     . "$repoRoot/activate.ps1"
@@ -171,12 +175,13 @@ try {
     # Redirect stderr to stdout because PowerShell does not consistently handle output to stderr
     $changedFiles = & cmd /c 'git --no-pager diff --ignore-space-at-eol --name-only 2>nul'
 
-    # Temporary: Disable check for blazor js file
-    $changedFilesExclusion = "src/Components/Web.JS/dist/Release/blazor.server.js"
+    # Temporary: Disable check for blazor js file and nuget.config (updated automatically for
+    # internal builds)
+    $changedFilesExclusions = @("src/Components/Web.JS/dist/Release/blazor.server.js", "NuGet.config")
 
     if ($changedFiles) {
         foreach ($file in $changedFiles) {
-            if ($file -eq $changedFilesExclusion) {continue}
+            if ($changedFilesExclusions -contains $file) {continue}
 
             $filePath = Resolve-Path "${repoRoot}/${file}"
             LogError "Generated code is not up to date in $file. You might need to regenerate the reference assemblies or project list (see docs/ReferenceAssemblies.md and docs/ReferenceResolution.md)" -filepath $filePath

+ 22 - 1
eng/scripts/ci-source-build.sh

@@ -9,10 +9,31 @@ set -euo pipefail
 scriptroot="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 reporoot="$(dirname "$(dirname "$scriptroot")")"
 
+ # For local development, make a backup copy of this file first
+if [ ! -f "$reporoot/global.bak.json" ]; then
+    mv "$reporoot/global.json" "$reporoot/global.bak.json"
+fi
+
+ # Detect the current version of .NET Core installed
+export SDK_VERSION=$(dotnet --version)
+echo "The ambient version of .NET Core SDK version = $SDK_VERSION"
+
+ # Update the global.json file to match the current .NET environment
+cat "$reporoot/global.bak.json" | \
+    jq '.sdk.version=env.SDK_VERSION' | \
+    jq '.tools.dotnet=env.SDK_VERSION' | \
+    jq 'del(.tools.runtimes)' \
+    > "$reporoot/global.json"
+
+ # Restore the original global.json file
+trap "{
+    mv "$reporoot/global.bak.json" "$reporoot/global.json"
+}" EXIT
+
  # Build repo tasks
 "$reporoot/eng/common/build.sh" --restore --build --ci --configuration Release /p:ProjectToBuild=$reporoot/eng/tools/RepoTasks/RepoTasks.csproj
 
 export DotNetBuildFromSource='true'
 
  # Build projects
-"$reporoot/eng/common/build.sh" --restore --build --pack "$@"
+"$reporoot/eng/common/build.sh" --restore --build --pack "$@"

+ 149 - 0
eng/tools/RepoTasks/DownloadFile.cs

@@ -0,0 +1,149 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace RepoTasks
+{
+    public class DownloadFile : Microsoft.Build.Utilities.Task
+    {
+        [Required]
+        public string Uri { get; set; }
+
+        /// <summary>
+        /// If this field is set and the task fail to download the file from `Uri`, with a NotFound
+        /// status, it will try to download the file from `PrivateUri`.
+        /// </summary>
+        public string PrivateUri { get; set; }
+        
+        /// <summary>
+        /// Suffix for the private URI in base64 form (for SAS compatibility)
+        /// </summary>
+        public string PrivateUriSuffix { get; set; }
+
+        public int MaxRetries { get; set; } = 5;
+
+        [Required]
+        public string DestinationPath { get; set; }
+
+        public bool Overwrite { get; set; }
+
+        public override bool Execute()
+        {
+            return ExecuteAsync().GetAwaiter().GetResult();
+        }
+
+        private async System.Threading.Tasks.Task<bool> ExecuteAsync()
+        {
+            string destinationDir = Path.GetDirectoryName(DestinationPath);
+            if (!Directory.Exists(destinationDir))
+            {
+                Directory.CreateDirectory(destinationDir);
+            }
+
+            if (File.Exists(DestinationPath) && !Overwrite)
+            {
+                return true;
+            }
+
+            const string FileUriProtocol = "file://";
+
+            if (Uri.StartsWith(FileUriProtocol, StringComparison.Ordinal))
+            {
+                var filePath = Uri.Substring(FileUriProtocol.Length);
+                Log.LogMessage($"Copying '{filePath}' to '{DestinationPath}'");
+                File.Copy(filePath, DestinationPath);
+                return true;
+            }
+
+            List<string> errorMessages = new List<string>();
+            bool? downloadStatus = await DownloadWithRetriesAsync(Uri, DestinationPath, errorMessages);
+
+            if (downloadStatus == false && !string.IsNullOrEmpty(PrivateUri))
+            {
+                string uriSuffix = "";
+                if (!string.IsNullOrEmpty(PrivateUriSuffix))
+                {
+                    var uriSuffixBytes = System.Convert.FromBase64String(PrivateUriSuffix);
+                    uriSuffix = System.Text.Encoding.UTF8.GetString(uriSuffixBytes);
+                }
+                downloadStatus = await DownloadWithRetriesAsync($"{PrivateUri}{uriSuffix}", DestinationPath, errorMessages);
+            }
+
+            if (downloadStatus != true)
+            {
+                foreach (var error in errorMessages)
+                {
+                    Log.LogError(error);
+                }
+            }
+
+            return downloadStatus == true;
+        }
+
+        /// <summary>
+        /// Attempt to download file from `source` with retries when response error is different of FileNotFound and Success.
+        /// </summary>
+        /// <param name="source">URL to the file to be downloaded.</param>
+        /// <param name="target">Local path where to put the downloaded file.</param>
+        /// <returns>true: Download Succeeded. false: Download failed with 404. null: Download failed but is retriable.</returns>
+        private async Task<bool?> DownloadWithRetriesAsync(string source, string target, List<string> errorMessages)
+        {
+            Random rng = new Random();
+
+            Log.LogMessage(MessageImportance.High, $"Attempting download '{source}' to '{target}'");
+
+            using (var httpClient = new HttpClient())
+            {
+                for (int retryNumber = 0; retryNumber < MaxRetries; retryNumber++)
+                {
+                    try
+                    {
+                        var httpResponse = await httpClient.GetAsync(source);
+
+                        Log.LogMessage(MessageImportance.High, $"{source} -> {httpResponse.StatusCode}");
+
+                        // The Azure Storage REST API returns '400 - Bad Request' in some cases
+                        // where the resource is not found on the storage.
+                        // https://docs.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes
+                        if (httpResponse.StatusCode == HttpStatusCode.NotFound ||
+                            httpResponse.ReasonPhrase.IndexOf("The requested URI does not represent any resource on the server.", StringComparison.OrdinalIgnoreCase) == 0)
+                        {
+                            errorMessages.Add($"Problems downloading file from '{source}'. Does the resource exist on the storage? {httpResponse.StatusCode} : {httpResponse.ReasonPhrase}");
+                            return false;
+                        }
+
+                        httpResponse.EnsureSuccessStatusCode();
+
+                        using (var outStream = File.Create(target))
+                        {
+                            await httpResponse.Content.CopyToAsync(outStream);
+                        }
+
+                        Log.LogMessage(MessageImportance.High, $"returning true {source} -> {httpResponse.StatusCode}");
+                        return true;
+                    }
+                    catch (Exception e)
+                    {
+                        Log.LogMessage(MessageImportance.High, $"returning error in {source} ");
+                        errorMessages.Add($"Problems downloading file from '{source}'. {e.Message} {e.StackTrace}");
+                        File.Delete(target);
+                    }
+
+                    await System.Threading.Tasks.Task.Delay(rng.Next(1000, 10000));
+                }
+            }
+
+            Log.LogMessage(MessageImportance.High, $"giving up {source} ");
+            errorMessages.Add($"Giving up downloading the file from '{source}' after {MaxRetries} retries.");
+            return null;
+        }
+    }
+}

+ 1 - 0
eng/tools/RepoTasks/RepoTasks.tasks

@@ -10,4 +10,5 @@
   <UsingTask TaskName="RepoTasks.GenerateSharedFrameworkDepsFile" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.CreateFrameworkListFile" AssemblyFile="$(_RepoTaskAssembly)" />
   <UsingTask TaskName="RepoTasks.RemoveSharedFrameworkDependencies" AssemblyFile="$(_RepoTaskAssembly)" />
+  <UsingTask TaskName="RepoTasks.DownloadFile" AssemblyFile="$(_RepoTaskAssembly)" />
 </Project>

+ 5 - 3
src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj

@@ -38,6 +38,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
 
     <DotNetRuntimeArchiveFileName>dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-$(TargetRuntimeIdentifier)$(ArchiveExtension)</DotNetRuntimeArchiveFileName>
     <DotNetRuntimeDownloadUrl>$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/$(DotNetRuntimeArchiveFileName)</DotNetRuntimeDownloadUrl>
+    <DotNetRuntimePrivateDownloadUrl>$(DotNetPrivateAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/$(DotNetRuntimeArchiveFileName)</DotNetRuntimePrivateDownloadUrl>
     <DotNetRuntimeArchive>$(BaseIntermediateOutputPath)$(DotNetRuntimeArchiveFileName)</DotNetRuntimeArchive>
 
     <!-- Setting this suppresses getting documentation .xml files in the shared runtime output. -->
@@ -379,9 +380,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
   -->
   <Target Name="_DownloadAndExtractDotNetRuntime" Condition="'$(DotNetBuildFromSource)' != 'true'">
     <DownloadFile Condition=" ! Exists('$(DotNetRuntimeArchive)')"
-      SourceUrl="$(DotNetRuntimeDownloadUrl)$(DotNetAssetRootAccessTokenSuffix)"
-      DestinationFolder="$(BaseIntermediateOutputPath)"
-      DestinationFileName="$(DotNetRuntimeArchiveFileName)" />
+      Uri="$(DotNetRuntimeDownloadUrl)"
+      PrivateUri="$(DotNetRuntimePrivateDownloadUrl)"
+      PrivateUriSuffix="$(DotNetAssetRootAccessTokenSuffix)"
+      DestinationPath="$(DotNetRuntimeArchive)" />
 
     <!-- Extract the dotnet-runtime archive -->
     <Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"

+ 8 - 3
src/Installers/Windows/WindowsHostingBundle/Product.targets

@@ -23,13 +23,15 @@
     <PropertyGroup>
       <DotNetAssetRootUrl Condition=" '$(DotNetAssetRootUrl)' == '' ">https://dotnetcli.azureedge.net/dotnet/</DotNetAssetRootUrl>
       <DotNetAssetRootUrl Condition=" ! $(DotNetAssetRootUrl.EndsWith('/'))">$(DotNetAssetRootUrl)/</DotNetAssetRootUrl>
+      <DotNetPrivateAssetRootUrl Condition=" '$(DotNetPrivateAssetRootUrl)' == '' ">https://dotnetclimsrc.azureedge.net/dotnet/</DotNetPrivateAssetRootUrl>
+      <DotNetPrivateAssetRootUrl Condition=" ! $(DotNetPrivateAssetRootUrl.EndsWith('/'))">$(DotNetPrivateAssetRootUrl)/</DotNetPrivateAssetRootUrl>
     </PropertyGroup>
 
     <ItemGroup>
-      <RemoteAsset Include="$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe$(DotNetAssetRootAccessTokenSuffix)">
+      <RemoteAsset Include="Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe">
         <TargetFileName>dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x64.exe</TargetFileName>
       </RemoteAsset>
-      <RemoteAsset Include="$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe$(DotNetAssetRootAccessTokenSuffix)">
+      <RemoteAsset Include="Runtime/$(MicrosoftNETCoreAppInternalPackageVersion)/dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe">
         <TargetFileName>dotnet-runtime-$(MicrosoftNETCoreAppRuntimeVersion)-win-x86.exe</TargetFileName>
       </RemoteAsset>
     </ItemGroup>
@@ -37,7 +39,10 @@
     <MakeDir Directories="$(DepsPath)" />
 
     <DownloadFile Condition=" ! Exists('$(DepsPath)%(RemoteAsset.TargetFileName)') "
-                  SourceUrl="%(RemoteAsset.Identity)" DestinationFolder="$(DepsPath)" DestinationFileName="%(RemoteAsset.TargetFileName)" />
+                  Uri="$(DotNetAssetRootUrl)%(RemoteAsset.Identity)"
+                  PrivateUri="$(DotNetPrivateAssetRootUrl)%(RemoteAsset.Identity)"
+                  PrivateUriSuffix="$(DotNetAssetRootAccessTokenSuffix)"
+                  DestinationPath="$(DepsPath)%(RemoteAsset.TargetFileName)" />
   </Target>
 
   <Target Name="ExtractPropertiesFromDotNetMsi" DependsOnTargets="FetchDependencies" BeforeTargets="BeforeBuild">