Merge branch 'master' into merge/release/5.0-preview5-to-master
This commit is contained in:
commit
5e65e399be
|
|
@ -0,0 +1,14 @@
|
||||||
|
blank_issues_enabled: true
|
||||||
|
contact_links:
|
||||||
|
- name: Issue with .NET runtime or core .NET libraries
|
||||||
|
url: https://github.com/dotnet/runtime/issues/new/choose
|
||||||
|
about: Please open issues relating to the .NET runtime or core .NET libraries in dotnet/runtime.
|
||||||
|
- name: Issue with .NET SDK
|
||||||
|
url: https://github.com/dotnet/sdk/issues/new/choose
|
||||||
|
about: Please open issues relating to the .NET SDK itself in dotnet/sdk.
|
||||||
|
- name: Issue with Entity Framework Core
|
||||||
|
url: https://github.com/dotnet/efcore/issues/new/choose
|
||||||
|
about: Please open issues relating to Entity Framework Core in dotnet/efcore.
|
||||||
|
- name: Issue with Roslyn compiler
|
||||||
|
url: https://github.com/dotnet/roslyn/issues/new/choose
|
||||||
|
about: Please open issues relating to the Roslyn .NET compiler in dotnet/roslyn.
|
||||||
|
|
@ -2,14 +2,12 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<packageSources>
|
<packageSources>
|
||||||
<clear />
|
<clear />
|
||||||
<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" />
|
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
|
||||||
|
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
|
||||||
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
|
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
|
||||||
<add key="dotnet5-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json" />
|
<add key="dotnet5-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json" />
|
||||||
<add key="roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
|
<add key="roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
|
||||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||||
<add key="aspnetcore-dev" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
|
|
||||||
<add key="aspnetcore-tools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" />
|
|
||||||
<add key="roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
|
<add key="roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
|
||||||
<!-- Used for the SiteExtension 3.1 bits that are included in the 5.0 build -->
|
<!-- Used for the SiteExtension 3.1 bits that are included in the 5.0 build -->
|
||||||
<add key="dotnet31-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json" />
|
<add key="dotnet31-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json" />
|
||||||
|
|
|
||||||
20
build.ps1
20
build.ps1
|
|
@ -253,9 +253,7 @@ $RunRestore = if ($NoRestore) { $false }
|
||||||
# Target selection
|
# Target selection
|
||||||
$MSBuildArguments += "/p:Restore=$RunRestore"
|
$MSBuildArguments += "/p:Restore=$RunRestore"
|
||||||
$MSBuildArguments += "/p:Build=$RunBuild"
|
$MSBuildArguments += "/p:Build=$RunBuild"
|
||||||
if (-not $RunBuild) {
|
if (-not $RunBuild) { $MSBuildArguments += "/p:NoBuild=true" }
|
||||||
$MSBuildArguments += "/p:NoBuild=true"
|
|
||||||
}
|
|
||||||
$MSBuildArguments += "/p:Pack=$Pack"
|
$MSBuildArguments += "/p:Pack=$Pack"
|
||||||
$MSBuildArguments += "/p:Test=$Test"
|
$MSBuildArguments += "/p:Test=$Test"
|
||||||
$MSBuildArguments += "/p:Sign=$Sign"
|
$MSBuildArguments += "/p:Sign=$Sign"
|
||||||
|
|
@ -364,18 +362,20 @@ Remove-Item variable:global:_MSBuildExe -ea Ignore
|
||||||
# Import Arcade
|
# Import Arcade
|
||||||
. "$PSScriptRoot/eng/common/tools.ps1"
|
. "$PSScriptRoot/eng/common/tools.ps1"
|
||||||
|
|
||||||
|
# Add default .binlog location if not already on the command line. tools.ps1 does not handle this; it just checks
|
||||||
|
# $BinaryLog, $CI and $ExcludeCIBinarylog values for an error case. But tools.ps1 provides a nice function to help.
|
||||||
|
if ($BinaryLog) {
|
||||||
|
$bl = GetMSBuildBinaryLogCommandLineArgument($MSBuildArguments)
|
||||||
|
if (-not $bl) {
|
||||||
|
$MSBuildArguments += "/bl:" + (Join-Path $LogDir "Build.binlog")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Capture MSBuild crash logs
|
# Capture MSBuild crash logs
|
||||||
$env:MSBUILDDEBUGPATH = $LogDir
|
$env:MSBUILDDEBUGPATH = $LogDir
|
||||||
|
|
||||||
$local:exit_code = $null
|
$local:exit_code = $null
|
||||||
try {
|
try {
|
||||||
# Import custom tools configuration, if present in the repo.
|
|
||||||
# Note: Import in global scope so that the script set top-level variables without qualification.
|
|
||||||
$configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1"
|
|
||||||
if (Test-Path $configureToolsetScript) {
|
|
||||||
. $configureToolsetScript
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set this global property so Arcade will always initialize the toolset. The error message you get when you build on a clean machine
|
# Set this global property so Arcade will always initialize the toolset. The error message you get when you build on a clean machine
|
||||||
# with -norestore is not obvious about what to do to fix it. As initialization takes very little time, we think always initializing
|
# with -norestore is not obvious about what to do to fix it. As initialization takes very little time, we think always initializing
|
||||||
# the toolset is a better default behavior.
|
# the toolset is a better default behavior.
|
||||||
|
|
|
||||||
26
build.sh
26
build.sh
|
|
@ -288,10 +288,6 @@ if [ -z "$configuration" ]; then
|
||||||
fi
|
fi
|
||||||
msbuild_args[${#msbuild_args[*]}]="-p:Configuration=$configuration"
|
msbuild_args[${#msbuild_args[*]}]="-p:Configuration=$configuration"
|
||||||
|
|
||||||
# Set verbosity
|
|
||||||
echo "Setting msbuild verbosity to $verbosity"
|
|
||||||
msbuild_args[${#msbuild_args[*]}]="-verbosity:$verbosity"
|
|
||||||
|
|
||||||
# Set up additional runtime args
|
# Set up additional runtime args
|
||||||
toolset_build_args=()
|
toolset_build_args=()
|
||||||
if [ ! -z "$dotnet_runtime_source_feed$dotnet_runtime_source_feed_key" ]; then
|
if [ ! -z "$dotnet_runtime_source_feed$dotnet_runtime_source_feed_key" ]; then
|
||||||
|
|
@ -328,15 +324,25 @@ fi
|
||||||
# Import Arcade
|
# Import Arcade
|
||||||
. "$DIR/eng/common/tools.sh"
|
. "$DIR/eng/common/tools.sh"
|
||||||
|
|
||||||
|
# Add default .binlog location if not already on the command line. tools.sh does not handle this; it just checks
|
||||||
|
# $binary_log, $ci and $exclude_ci_binary_log values for an error case.
|
||||||
|
if [[ "$binary_log" == true ]]; then
|
||||||
|
found=false
|
||||||
|
for arg in "${msbuild_args[@]}"; do
|
||||||
|
opt="$(echo "${arg/#--/-}" | awk '{print tolower($0)}')"
|
||||||
|
if [[ "$opt" == [-/]bl:* || "$opt" == [-/]binarylogger:* ]]; then
|
||||||
|
found=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$found" == false ]]; then
|
||||||
|
msbuild_args[${#msbuild_args[*]}]="/bl:$log_dir/Build.binlog"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Capture MSBuild crash logs
|
# Capture MSBuild crash logs
|
||||||
export MSBUILDDEBUGPATH="$log_dir"
|
export MSBUILDDEBUGPATH="$log_dir"
|
||||||
|
|
||||||
# Import custom tools configuration, if present in the repo.
|
|
||||||
configure_toolset_script="$eng_root/configure-toolset.sh"
|
|
||||||
if [[ -a "$configure_toolset_script" ]]; then
|
|
||||||
. "$configure_toolset_script"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set this global property so Arcade will always initialize the toolset. The error message you get when you build on a clean machine
|
# Set this global property so Arcade will always initialize the toolset. The error message you get when you build on a clean machine
|
||||||
# with -norestore is not obvious about what to do to fix it. As initialization takes very little time, we think always initializing
|
# with -norestore is not obvious about what to do to fix it. As initialization takes very little time, we think always initializing
|
||||||
# the toolset is a better default behavior.
|
# the toolset is a better default behavior.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||||
<AspNetCoreBaselineVersion>3.1.3</AspNetCoreBaselineVersion>
|
<AspNetCoreBaselineVersion>3.1.4</AspNetCoreBaselineVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: AspNetCoreRuntime.3.0.x64-->
|
<!-- Package: AspNetCoreRuntime.3.0.x64-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x64' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x64' ">
|
||||||
|
|
@ -16,92 +16,92 @@
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x86' AND '$(TargetFramework)' == 'net461' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'AspNetCoreRuntime.3.0.x86' AND '$(TargetFramework)' == 'net461' " />
|
||||||
<!-- Package: dotnet-sql-cache-->
|
<!-- Package: dotnet-sql-cache-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'dotnet-sql-cache' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'dotnet-sql-cache' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.ApiAuthorization.IdentityServer-->
|
<!-- Package: Microsoft.AspNetCore.ApiAuthorization.IdentityServer-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="IdentityServer4" Version="[3.0.0, )" />
|
<BaselinePackageReference Include="IdentityServer4" Version="[3.0.0, )" />
|
||||||
<BaselinePackageReference Include="IdentityServer4.AspNetIdentity" Version="[3.0.0, )" />
|
<BaselinePackageReference Include="IdentityServer4.AspNetIdentity" Version="[3.0.0, )" />
|
||||||
<BaselinePackageReference Include="IdentityServer4.EntityFramework" Version="[3.0.0, )" />
|
<BaselinePackageReference Include="IdentityServer4.EntityFramework" Version="[3.0.0, )" />
|
||||||
<BaselinePackageReference Include="IdentityServer4.EntityFramework.Storage" Version="[3.0.0, )" />
|
<BaselinePackageReference Include="IdentityServer4.EntityFramework.Storage" Version="[3.0.0, )" />
|
||||||
<BaselinePackageReference Include="IdentityServer4.Storage" Version="[3.0.0, )" />
|
<BaselinePackageReference Include="IdentityServer4.Storage" Version="[3.0.0, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.App.Runtime.win-x64-->
|
<!-- Package: Microsoft.AspNetCore.App.Runtime.win-x64-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.App.Runtime.win-x64' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.App.Runtime.win-x64' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.AzureAD.UI-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.AzureAD.UI-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.AzureADB2C.UI-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.AzureADB2C.UI-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.Certificate-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.Certificate-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.Facebook-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.Facebook-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.Google-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.Google-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.JwtBearer-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.JwtBearer-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
|
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.MicrosoftAccount-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.MicrosoftAccount-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.Negotiate-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.Negotiate-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.OpenIdConnect-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.OpenIdConnect-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
|
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.Twitter-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.Twitter-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Authentication.WsFederation-->
|
<!-- Package: Microsoft.AspNetCore.Authentication.WsFederation-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.WsFederation" Version="[5.5.0, )" />
|
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.WsFederation" Version="[5.5.0, )" />
|
||||||
|
|
@ -109,39 +109,39 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Authorization-->
|
<!-- Package: Microsoft.AspNetCore.Authorization-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.AzureAppServices.HostingStartup-->
|
<!-- Package: Microsoft.AspNetCore.AzureAppServices.HostingStartup-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.AzureAppServices.SiteExtension-->
|
<!-- Package: Microsoft.AspNetCore.AzureAppServices.SiteExtension-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' AND '$(TargetFramework)' == 'net461' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' AND '$(TargetFramework)' == 'net461' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Web.Xdt.Extensions" Version="[3.1.3-servicing.20163.14, )" />
|
<BaselinePackageReference Include="Microsoft.Web.Xdt.Extensions" Version="[3.1.4-servicing.20216.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.AzureAppServicesIntegration-->
|
<!-- Package: Microsoft.AspNetCore.AzureAppServicesIntegration-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Blazor-->
|
<!-- Package: Microsoft.AspNetCore.Blazor-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Blazor' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Blazor' ">
|
||||||
|
|
@ -184,277 +184,277 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Components-->
|
<!-- Package: Microsoft.AspNetCore.Components-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Components.Analyzers-->
|
<!-- Package: Microsoft.AspNetCore.Components.Analyzers-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Analyzers' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Analyzers' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Components.Authorization-->
|
<!-- Package: Microsoft.AspNetCore.Components.Authorization-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Components.Forms-->
|
<!-- Package: Microsoft.AspNetCore.Components.Forms-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Components.Web-->
|
<!-- Package: Microsoft.AspNetCore.Components.Web-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.ConcurrencyLimiter-->
|
<!-- Package: Microsoft.AspNetCore.ConcurrencyLimiter-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Connections.Abstractions-->
|
<!-- Package: Microsoft.AspNetCore.Connections.Abstractions-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.0, )" />
|
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.1, )" />
|
||||||
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Cryptography.Internal-->
|
<!-- Package: Microsoft.AspNetCore.Cryptography.Internal-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netstandard2.0' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netstandard2.0' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Cryptography.KeyDerivation-->
|
<!-- Package: Microsoft.AspNetCore.Cryptography.KeyDerivation-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netcoreapp2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netcoreapp2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
|
||||||
<BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
|
||||||
<BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
|
||||||
<BaselinePackageReference Include="System.Security.Principal.Windows" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.Security.Principal.Windows" Version="[4.7.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection.Abstractions-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection.Abstractions-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection.AzureKeyVault-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection.AzureKeyVault-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Azure.KeyVault" Version="[2.3.2, )" />
|
<BaselinePackageReference Include="Microsoft.Azure.KeyVault" Version="[2.3.2, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="[3.19.8, )" />
|
<BaselinePackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="[3.19.8, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection.AzureStorage-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection.AzureStorage-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Azure.Storage.Blob" Version="[10.0.1, )" />
|
<BaselinePackageReference Include="Microsoft.Azure.Storage.Blob" Version="[10.0.1, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Data.OData" Version="[5.8.4, )" />
|
<BaselinePackageReference Include="Microsoft.Data.OData" Version="[5.8.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection.EntityFrameworkCore-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection.EntityFrameworkCore-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection.Extensions-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection.Extensions-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.DataProtection.StackExchangeRedis-->
|
<!-- Package: Microsoft.AspNetCore.DataProtection.StackExchangeRedis-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="StackExchange.Redis" Version="[2.0.593, )" />
|
<BaselinePackageReference Include="StackExchange.Redis" Version="[2.0.593, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore-->
|
<!-- Package: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.HeaderPropagation-->
|
<!-- Package: Microsoft.AspNetCore.HeaderPropagation-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Hosting.WindowsServices-->
|
<!-- Package: Microsoft.AspNetCore.Hosting.WindowsServices-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="System.ServiceProcess.ServiceController" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.ServiceProcess.ServiceController" Version="[4.7.0, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Http.Connections.Client-->
|
<!-- Package: Microsoft.AspNetCore.Http.Connections.Client-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Http.Connections.Common-->
|
<!-- Package: Microsoft.AspNetCore.Http.Connections.Common-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.2, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Http.Features-->
|
<!-- Package: Microsoft.AspNetCore.Http.Features-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Primitives" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Identity.EntityFrameworkCore-->
|
<!-- Package: Microsoft.AspNetCore.Identity.EntityFrameworkCore-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Identity.Specification.Tests-->
|
<!-- Package: Microsoft.AspNetCore.Identity.Specification.Tests-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Configuration" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Configuration" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
|
<BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
|
||||||
<BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
|
<BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Identity.UI-->
|
<!-- Package: Microsoft.AspNetCore.Identity.UI-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.JsonPatch-->
|
<!-- Package: Microsoft.AspNetCore.JsonPatch-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.CSharp" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="Microsoft.CSharp" Version="[4.7.0, )" />
|
||||||
|
|
@ -462,239 +462,239 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Metadata-->
|
<!-- Package: Microsoft.AspNetCore.Metadata-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netstandard2.0' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netstandard2.0' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.MiddlewareAnalysis-->
|
<!-- Package: Microsoft.AspNetCore.MiddlewareAnalysis-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Mvc.NewtonsoftJson-->
|
<!-- Package: Microsoft.AspNetCore.Mvc.NewtonsoftJson-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
||||||
<BaselinePackageReference Include="Newtonsoft.Json.Bson" Version="[1.0.2, )" />
|
<BaselinePackageReference Include="Newtonsoft.Json.Bson" Version="[1.0.2, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation-->
|
<!-- Package: Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.CodeAnalysis.Razor" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.CodeAnalysis.Razor" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Mvc.Testing-->
|
<!-- Package: Microsoft.AspNetCore.Mvc.Testing-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.TestHost" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.TestHost" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Hosting" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Hosting" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.NodeServices-->
|
<!-- Package: Microsoft.AspNetCore.NodeServices-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Console" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Console" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.Owin-->
|
<!-- Package: Microsoft.AspNetCore.Owin-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
|
||||||
<!-- Package: Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv-->
|
<!-- Package: Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Libuv" Version="[1.10.0, )" />
|
<BaselinePackageReference Include="Libuv" Version="[1.10.0, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Client-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Client-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Client.Core" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Client.Core" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Client" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Client" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Client.Core-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Client.Core-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.0, )" />
|
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.1, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.0, )" />
|
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Common-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Common-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.2, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.Json-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.Json-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.MessagePack-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.MessagePack-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="MessagePack" Version="[1.7.3.7, )" />
|
<BaselinePackageReference Include="MessagePack" Version="[1.7.3.7, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.Specification.Tests-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.Specification.Tests-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
|
<BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
|
||||||
<BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
|
<BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SignalR.StackExchangeRedis-->
|
<!-- Package: Microsoft.AspNetCore.SignalR.StackExchangeRedis-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="MessagePack" Version="[1.7.3.7, )" />
|
<BaselinePackageReference Include="MessagePack" Version="[1.7.3.7, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="StackExchange.Redis" Version="[2.0.593, )" />
|
<BaselinePackageReference Include="StackExchange.Redis" Version="[2.0.593, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SpaServices-->
|
<!-- Package: Microsoft.AspNetCore.SpaServices-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.NodeServices" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.NodeServices" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.SpaServices.Extensions-->
|
<!-- Package: Microsoft.AspNetCore.SpaServices.Extensions-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.SpaServices" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.SpaServices" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.AspNetCore.TestHost-->
|
<!-- Package: Microsoft.AspNetCore.TestHost-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.dotnet-openapi-->
|
<!-- Package: Microsoft.dotnet-openapi-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.dotnet-openapi' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.dotnet-openapi' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.DotNet.Web.Client.ItemTemplates-->
|
<!-- Package: Microsoft.DotNet.Web.Client.ItemTemplates-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Client.ItemTemplates' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Client.ItemTemplates' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.DotNet.Web.ItemTemplates-->
|
<!-- Package: Microsoft.DotNet.Web.ItemTemplates-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ItemTemplates' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ItemTemplates' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.DotNet.Web.ProjectTemplates.3.1-->
|
<!-- Package: Microsoft.DotNet.Web.ProjectTemplates.3.1-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ProjectTemplates.3.1' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ProjectTemplates.3.1' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1-->
|
<!-- Package: Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.Extensions.ApiDescription.Client-->
|
<!-- Package: Microsoft.Extensions.ApiDescription.Client-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Client' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Client' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.Extensions.ApiDescription.Server-->
|
<!-- Package: Microsoft.Extensions.ApiDescription.Server-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Server' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Server' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- Package: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore-->
|
<!-- Package: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.Extensions.Identity.Core-->
|
<!-- Package: Microsoft.Extensions.Identity.Core-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<!-- Package: Microsoft.Extensions.Identity.Stores-->
|
<!-- Package: Microsoft.Extensions.Identity.Stores-->
|
||||||
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' ">
|
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' ">
|
||||||
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
|
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' AND '$(TargetFramework)' == 'netstandard2.0' ">
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.4, )" />
|
||||||
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
|
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
148
eng/Baseline.xml
148
eng/Baseline.xml
|
|
@ -4,86 +4,86 @@ This file contains a list of all the packages and their versions which were rele
|
||||||
Update this list when preparing for a new patch.
|
Update this list when preparing for a new patch.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Baseline Version="3.1.3">
|
<Baseline Version="3.1.4">
|
||||||
<Package Id="AspNetCoreRuntime.3.0.x64" Version="3.0.3" />
|
<Package Id="AspNetCoreRuntime.3.0.x64" Version="3.0.3" />
|
||||||
<Package Id="AspNetCoreRuntime.3.0.x86" Version="3.0.3" />
|
<Package Id="AspNetCoreRuntime.3.0.x86" Version="3.0.3" />
|
||||||
<Package Id="dotnet-sql-cache" Version="3.1.3" />
|
<Package Id="dotnet-sql-cache" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.App.Runtime.win-x64" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.App.Runtime.win-x64" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.Certificate" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.Certificate" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.Google" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.Google" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.Negotiate" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.Negotiate" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.Twitter" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.Twitter" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authentication.WsFederation" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authentication.WsFederation" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Authorization" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Authorization" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Blazor" Version="3.2.0-preview1.20073.1" />
|
<Package Id="Microsoft.AspNetCore.Blazor" Version="3.2.0-preview1.20073.1" />
|
||||||
<Package Id="Microsoft.AspNetCore.Blazor.Build" Version="3.2.0-preview1.20073.1" />
|
<Package Id="Microsoft.AspNetCore.Blazor.Build" Version="3.2.0-preview1.20073.1" />
|
||||||
<Package Id="Microsoft.AspNetCore.Blazor.DevServer" Version="3.2.0-preview1.20073.1" />
|
<Package Id="Microsoft.AspNetCore.Blazor.DevServer" Version="3.2.0-preview1.20073.1" />
|
||||||
<Package Id="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview1.20073.1" />
|
<Package Id="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview1.20073.1" />
|
||||||
<Package Id="Microsoft.AspNetCore.Blazor.Server" Version="3.2.0-preview1.20073.1" />
|
<Package Id="Microsoft.AspNetCore.Blazor.Server" Version="3.2.0-preview1.20073.1" />
|
||||||
<Package Id="Microsoft.AspNetCore.Blazor.Templates" Version="3.2.0-preview1.20073.1" />
|
<Package Id="Microsoft.AspNetCore.Blazor.Templates" Version="3.2.0-preview1.20073.1" />
|
||||||
<Package Id="Microsoft.AspNetCore.Components" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Components" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Components.Analyzers" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Components.Analyzers" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Components.Authorization" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Components.Authorization" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Components.Forms" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Components.Forms" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Components.Web" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Components.Web" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.ConcurrencyLimiter" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.ConcurrencyLimiter" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Cryptography.Internal" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Cryptography.Internal" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection.Extensions" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection.Extensions" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.HeaderPropagation" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.HeaderPropagation" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Hosting.WindowsServices" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Hosting.WindowsServices" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Http.Features" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Http.Features" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Identity.Specification.Tests" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Identity.Specification.Tests" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Identity.UI" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Identity.UI" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.JsonPatch" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.JsonPatch" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Metadata" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Metadata" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.MiddlewareAnalysis" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.MiddlewareAnalysis" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.NodeServices" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.NodeServices" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Owin" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Owin" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Client" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Client" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Client.Core" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Client.Core" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Common" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Common" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.Specification.Tests" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.Specification.Tests" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SpaServices" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SpaServices" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.AspNetCore.TestHost" Version="3.1.3" />
|
<Package Id="Microsoft.AspNetCore.TestHost" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.dotnet-openapi" Version="3.1.3" />
|
<Package Id="Microsoft.dotnet-openapi" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.DotNet.Web.Client.ItemTemplates" Version="3.1.3" />
|
<Package Id="Microsoft.DotNet.Web.Client.ItemTemplates" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.DotNet.Web.ItemTemplates" Version="3.1.3" />
|
<Package Id="Microsoft.DotNet.Web.ItemTemplates" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.DotNet.Web.ProjectTemplates.3.1" Version="3.1.3" />
|
<Package Id="Microsoft.DotNet.Web.ProjectTemplates.3.1" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" Version="3.1.3" />
|
<Package Id="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.Extensions.ApiDescription.Client" Version="3.1.3" />
|
<Package Id="Microsoft.Extensions.ApiDescription.Client" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.Extensions.ApiDescription.Server" Version="3.1.3" />
|
<Package Id="Microsoft.Extensions.ApiDescription.Server" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="3.1.3" />
|
<Package Id="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.Extensions.Identity.Core" Version="3.1.3" />
|
<Package Id="Microsoft.Extensions.Identity.Core" Version="3.1.4" />
|
||||||
<Package Id="Microsoft.Extensions.Identity.Stores" Version="3.1.3" />
|
<Package Id="Microsoft.Extensions.Identity.Stores" Version="3.1.4" />
|
||||||
</Baseline>
|
</Baseline>
|
||||||
|
|
|
||||||
|
|
@ -13,292 +13,292 @@
|
||||||
<Uri>https://github.com/dotnet/blazor</Uri>
|
<Uri>https://github.com/dotnet/blazor</Uri>
|
||||||
<Sha>dd7fb4d3931d556458f62642c2edfc59f6295bfb</Sha>
|
<Sha>dd7fb4d3931d556458f62642c2edfc59f6295bfb</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="5.0.0-preview.5.20271.4">
|
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="5.0.0-preview.6.20271.3">
|
||||||
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
||||||
<Sha>56c409d3bff43702b87e6d7edfe61126db5ac50a</Sha>
|
<Sha>beba53c682fa5b5193606647eb627c4c170464e5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="5.0.0-preview.5.20271.4">
|
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="5.0.0-preview.6.20271.3">
|
||||||
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
||||||
<Sha>56c409d3bff43702b87e6d7edfe61126db5ac50a</Sha>
|
<Sha>beba53c682fa5b5193606647eb627c4c170464e5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="5.0.0-preview.5.20271.4">
|
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="5.0.0-preview.6.20271.3">
|
||||||
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
||||||
<Sha>56c409d3bff43702b87e6d7edfe61126db5ac50a</Sha>
|
<Sha>beba53c682fa5b5193606647eb627c4c170464e5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="5.0.0-preview.5.20271.4">
|
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="5.0.0-preview.6.20271.3">
|
||||||
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
|
||||||
<Sha>56c409d3bff43702b87e6d7edfe61126db5ac50a</Sha>
|
<Sha>beba53c682fa5b5193606647eb627c4c170464e5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="dotnet-ef" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="dotnet-ef" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.5.20261.5">
|
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.6.20271.1">
|
||||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||||
<Sha>ad308e68c15941ac1e863854cc2b3b0d116beb81</Sha>
|
<Sha>3f2fa3f0a9c6dfd949339f4aaccd558c4c36e182</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Configuration" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Hosting" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Http" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Http" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Logging" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Options" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Primitives" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Internal.Transport" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.Internal.Transport" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Win32.Registry" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Win32.Registry" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Win32.SystemEvents" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Win32.SystemEvents" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.ComponentModel.Annotations" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.ComponentModel.Annotations" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Diagnostics.EventLog" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Diagnostics.EventLog" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Drawing.Common" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Drawing.Common" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.IO.Pipelines" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.IO.Pipelines" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Net.Http.WinHttpHandler" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Reflection.Metadata" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Reflection.Metadata" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Cng" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Security.Cryptography.Cng" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Security.Cryptography.Pkcs" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Xml" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Security.Cryptography.Xml" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Permissions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Security.Permissions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Principal.Windows" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Security.Principal.Windows" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.ServiceProcess.ServiceController" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Text.Encodings.Web" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Text.Encodings.Web" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Text.Json" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Text.Json" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Threading.Channels" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Threading.Channels" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Windows.Extensions" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="System.Windows.Extensions" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<!--
|
<!--
|
||||||
Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
|
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.
|
All Runtime.$rid packages should have the same version.
|
||||||
-->
|
-->
|
||||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NETCore.App.Internal" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.NETCore.App.Internal" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ProductDependencies>
|
</ProductDependencies>
|
||||||
<ToolsetDependencies>
|
<ToolsetDependencies>
|
||||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-preview.5.20268.11" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-preview.6.20270.12" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||||
<Sha>201841eea7a9a62374666edbf02e9421a0fd6675</Sha>
|
<Sha>5b7d6319ec8ff44c7eda6f8358e29cfdd53d81b5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20261.9">
|
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20261.9">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
|
|
@ -312,9 +312,9 @@
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>898e51ed5fdcc4871087ac5754ca9056e58e575d</Sha>
|
<Sha>898e51ed5fdcc4871087ac5754ca9056e58e575d</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.7.0-2.20259.1" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.7.0-2.20267.1" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
|
||||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||||
<Sha>d0ef8687ce735c8aa32035396f521705a8ff7392</Sha>
|
<Sha>3126e7a9753bf09a99e4c4f152b8dfef76862dc5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ToolsetDependencies>
|
</ToolsetDependencies>
|
||||||
</Dependencies>
|
</Dependencies>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<AspNetCoreMajorVersion>5</AspNetCoreMajorVersion>
|
<AspNetCoreMajorVersion>5</AspNetCoreMajorVersion>
|
||||||
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
||||||
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
||||||
<PreReleaseVersionIteration>5</PreReleaseVersionIteration>
|
<PreReleaseVersionIteration>6</PreReleaseVersionIteration>
|
||||||
<!--
|
<!--
|
||||||
When StabilizePackageVersion is set to 'true', this branch will produce stable outputs for 'Shipping' packages
|
When StabilizePackageVersion is set to 'true', this branch will produce stable outputs for 'Shipping' packages
|
||||||
-->
|
-->
|
||||||
|
|
@ -64,83 +64,83 @@
|
||||||
<!-- Packages from dotnet/arcade -->
|
<!-- Packages from dotnet/arcade -->
|
||||||
<MicrosoftDotNetGenAPIPackageVersion>5.0.0-beta.20261.9</MicrosoftDotNetGenAPIPackageVersion>
|
<MicrosoftDotNetGenAPIPackageVersion>5.0.0-beta.20261.9</MicrosoftDotNetGenAPIPackageVersion>
|
||||||
<!-- Packages from dotnet/roslyn -->
|
<!-- Packages from dotnet/roslyn -->
|
||||||
<MicrosoftNetCompilersToolsetPackageVersion>3.7.0-2.20259.1</MicrosoftNetCompilersToolsetPackageVersion>
|
<MicrosoftNetCompilersToolsetPackageVersion>3.7.0-2.20267.1</MicrosoftNetCompilersToolsetPackageVersion>
|
||||||
<!-- Packages from dotnet/runtime -->
|
<!-- Packages from dotnet/runtime -->
|
||||||
<MicrosoftExtensionsDependencyModelPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsDependencyModelPackageVersion>
|
<MicrosoftExtensionsDependencyModelPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||||
<MicrosoftNETCoreAppInternalPackageVersion>5.0.0-preview.5.20268.11</MicrosoftNETCoreAppInternalPackageVersion>
|
<MicrosoftNETCoreAppInternalPackageVersion>5.0.0-preview.6.20270.12</MicrosoftNETCoreAppInternalPackageVersion>
|
||||||
<MicrosoftNETCoreAppRefPackageVersion>5.0.0-preview.5.20268.11</MicrosoftNETCoreAppRefPackageVersion>
|
<MicrosoftNETCoreAppRefPackageVersion>5.0.0-preview.6.20270.12</MicrosoftNETCoreAppRefPackageVersion>
|
||||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>5.0.0-preview.5.20268.11</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>5.0.0-preview.6.20270.12</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||||
<MicrosoftWin32RegistryPackageVersion>5.0.0-preview.5.20268.11</MicrosoftWin32RegistryPackageVersion>
|
<MicrosoftWin32RegistryPackageVersion>5.0.0-preview.6.20270.12</MicrosoftWin32RegistryPackageVersion>
|
||||||
<MicrosoftWin32SystemEventsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftWin32SystemEventsPackageVersion>
|
<MicrosoftWin32SystemEventsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftWin32SystemEventsPackageVersion>
|
||||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
<MicrosoftExtensionsCachingAbstractionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsCachingMemoryPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsCachingMemoryPackageVersion>
|
<MicrosoftExtensionsCachingMemoryPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
<MicrosoftExtensionsConfigurationBinderPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationIniPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationIniPackageVersion>
|
<MicrosoftExtensionsConfigurationIniPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
<MicrosoftExtensionsConfigurationJsonPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationPackageVersion>
|
<MicrosoftExtensionsConfigurationPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
<MicrosoftExtensionsConfigurationXmlPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
<MicrosoftExtensionsDependencyInjectionPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
<MicrosoftExtensionsFileProvidersCompositePackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
<MicrosoftExtensionsHostingAbstractionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsHostingPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsHostingPackageVersion>
|
<MicrosoftExtensionsHostingPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsHostingPackageVersion>
|
||||||
<MicrosoftExtensionsHttpPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsHttpPackageVersion>
|
<MicrosoftExtensionsHttpPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsHttpPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
<MicrosoftExtensionsLoggingConfigurationPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingConsolePackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingConsolePackageVersion>
|
<MicrosoftExtensionsLoggingConsolePackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||||
<MicrosoftExtensionsLoggingDebugPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingDebugPackageVersion>
|
<MicrosoftExtensionsLoggingDebugPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
<MicrosoftExtensionsLoggingEventSourcePackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
<MicrosoftExtensionsLoggingEventLogPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingPackageVersion>
|
<MicrosoftExtensionsLoggingPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsOptionsPackageVersion>
|
<MicrosoftExtensionsOptionsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsOptionsPackageVersion>
|
||||||
<MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsPrimitivesPackageVersion>
|
<MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||||
<MicrosoftExtensionsInternalTransportPackageVersion>5.0.0-preview.5.20268.11</MicrosoftExtensionsInternalTransportPackageVersion>
|
<MicrosoftExtensionsInternalTransportPackageVersion>5.0.0-preview.6.20270.12</MicrosoftExtensionsInternalTransportPackageVersion>
|
||||||
<SystemComponentModelAnnotationsPackageVersion>5.0.0-preview.5.20268.11</SystemComponentModelAnnotationsPackageVersion>
|
<SystemComponentModelAnnotationsPackageVersion>5.0.0-preview.6.20270.12</SystemComponentModelAnnotationsPackageVersion>
|
||||||
<SystemDiagnosticsEventLogPackageVersion>5.0.0-preview.5.20268.11</SystemDiagnosticsEventLogPackageVersion>
|
<SystemDiagnosticsEventLogPackageVersion>5.0.0-preview.6.20270.12</SystemDiagnosticsEventLogPackageVersion>
|
||||||
<SystemDrawingCommonPackageVersion>5.0.0-preview.5.20268.11</SystemDrawingCommonPackageVersion>
|
<SystemDrawingCommonPackageVersion>5.0.0-preview.6.20270.12</SystemDrawingCommonPackageVersion>
|
||||||
<SystemIOPipelinesPackageVersion>5.0.0-preview.5.20268.11</SystemIOPipelinesPackageVersion>
|
<SystemIOPipelinesPackageVersion>5.0.0-preview.6.20270.12</SystemIOPipelinesPackageVersion>
|
||||||
<SystemNetHttpWinHttpHandlerPackageVersion>5.0.0-preview.5.20268.11</SystemNetHttpWinHttpHandlerPackageVersion>
|
<SystemNetHttpWinHttpHandlerPackageVersion>5.0.0-preview.6.20270.12</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>5.0.0-preview.5.20268.11</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
<SystemNetWebSocketsWebSocketProtocolPackageVersion>5.0.0-preview.6.20270.12</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||||
<SystemReflectionMetadataPackageVersion>5.0.0-preview.5.20268.11</SystemReflectionMetadataPackageVersion>
|
<SystemReflectionMetadataPackageVersion>5.0.0-preview.6.20270.12</SystemReflectionMetadataPackageVersion>
|
||||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>5.0.0-preview.5.20268.11</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
<SystemRuntimeCompilerServicesUnsafePackageVersion>5.0.0-preview.6.20270.12</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||||
<SystemSecurityCryptographyCngPackageVersion>5.0.0-preview.5.20268.11</SystemSecurityCryptographyCngPackageVersion>
|
<SystemSecurityCryptographyCngPackageVersion>5.0.0-preview.6.20270.12</SystemSecurityCryptographyCngPackageVersion>
|
||||||
<SystemSecurityCryptographyPkcsPackageVersion>5.0.0-preview.5.20268.11</SystemSecurityCryptographyPkcsPackageVersion>
|
<SystemSecurityCryptographyPkcsPackageVersion>5.0.0-preview.6.20270.12</SystemSecurityCryptographyPkcsPackageVersion>
|
||||||
<SystemSecurityCryptographyXmlPackageVersion>5.0.0-preview.5.20268.11</SystemSecurityCryptographyXmlPackageVersion>
|
<SystemSecurityCryptographyXmlPackageVersion>5.0.0-preview.6.20270.12</SystemSecurityCryptographyXmlPackageVersion>
|
||||||
<SystemSecurityPermissionsPackageVersion>5.0.0-preview.5.20268.11</SystemSecurityPermissionsPackageVersion>
|
<SystemSecurityPermissionsPackageVersion>5.0.0-preview.6.20270.12</SystemSecurityPermissionsPackageVersion>
|
||||||
<SystemSecurityPrincipalWindowsPackageVersion>5.0.0-preview.5.20268.11</SystemSecurityPrincipalWindowsPackageVersion>
|
<SystemSecurityPrincipalWindowsPackageVersion>5.0.0-preview.6.20270.12</SystemSecurityPrincipalWindowsPackageVersion>
|
||||||
<SystemServiceProcessServiceControllerPackageVersion>5.0.0-preview.5.20268.11</SystemServiceProcessServiceControllerPackageVersion>
|
<SystemServiceProcessServiceControllerPackageVersion>5.0.0-preview.6.20270.12</SystemServiceProcessServiceControllerPackageVersion>
|
||||||
<SystemTextEncodingsWebPackageVersion>5.0.0-preview.5.20268.11</SystemTextEncodingsWebPackageVersion>
|
<SystemTextEncodingsWebPackageVersion>5.0.0-preview.6.20270.12</SystemTextEncodingsWebPackageVersion>
|
||||||
<SystemTextJsonPackageVersion>5.0.0-preview.5.20268.11</SystemTextJsonPackageVersion>
|
<SystemTextJsonPackageVersion>5.0.0-preview.6.20270.12</SystemTextJsonPackageVersion>
|
||||||
<SystemThreadingChannelsPackageVersion>5.0.0-preview.5.20268.11</SystemThreadingChannelsPackageVersion>
|
<SystemThreadingChannelsPackageVersion>5.0.0-preview.6.20270.12</SystemThreadingChannelsPackageVersion>
|
||||||
<SystemWindowsExtensionsPackageVersion>5.0.0-preview.5.20268.11</SystemWindowsExtensionsPackageVersion>
|
<SystemWindowsExtensionsPackageVersion>5.0.0-preview.6.20270.12</SystemWindowsExtensionsPackageVersion>
|
||||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||||
<MicrosoftNETCorePlatformsPackageVersion>5.0.0-preview.5.20268.11</MicrosoftNETCorePlatformsPackageVersion>
|
<MicrosoftNETCorePlatformsPackageVersion>5.0.0-preview.6.20270.12</MicrosoftNETCorePlatformsPackageVersion>
|
||||||
<!-- Packages from dotnet/blazor -->
|
<!-- Packages from dotnet/blazor -->
|
||||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>3.2.0-preview1.20067.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
<MicrosoftAspNetCoreBlazorMonoPackageVersion>3.2.0-preview1.20067.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||||
<!-- Packages from dotnet/efcore -->
|
<!-- Packages from dotnet/efcore -->
|
||||||
<dotnetefPackageVersion>5.0.0-preview.5.20261.5</dotnetefPackageVersion>
|
<dotnetefPackageVersion>5.0.0-preview.6.20271.1</dotnetefPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-preview.5.20261.5</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-preview.6.20271.1</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-preview.5.20261.5</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-preview.6.20271.1</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-preview.5.20261.5</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-preview.6.20271.1</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-preview.5.20261.5</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-preview.6.20271.1</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-preview.5.20261.5</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-preview.6.20271.1</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-preview.5.20261.5</MicrosoftEntityFrameworkCorePackageVersion>
|
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-preview.6.20271.1</MicrosoftEntityFrameworkCorePackageVersion>
|
||||||
<!-- Packages from dotnet/aspnetcore-tooling -->
|
<!-- Packages from dotnet/aspnetcore-tooling -->
|
||||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>5.0.0-preview.5.20271.4</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>5.0.0-preview.6.20271.3</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>5.0.0-preview.5.20271.4</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
<MicrosoftAspNetCoreRazorLanguagePackageVersion>5.0.0-preview.6.20271.3</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||||
<MicrosoftCodeAnalysisRazorPackageVersion>5.0.0-preview.5.20271.4</MicrosoftCodeAnalysisRazorPackageVersion>
|
<MicrosoftCodeAnalysisRazorPackageVersion>5.0.0-preview.6.20271.3</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||||
<MicrosoftNETSdkRazorPackageVersion>5.0.0-preview.5.20271.4</MicrosoftNETSdkRazorPackageVersion>
|
<MicrosoftNETSdkRazorPackageVersion>5.0.0-preview.6.20271.3</MicrosoftNETSdkRazorPackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
@ -19,10 +20,53 @@ namespace RunTests
|
||||||
[DllImport("libc", SetLastError = true, EntryPoint = "kill")]
|
[DllImport("libc", SetLastError = true, EntryPoint = "kill")]
|
||||||
private static extern int sys_kill(int pid, int sig);
|
private static extern int sys_kill(int pid, int sig);
|
||||||
|
|
||||||
|
public static Task CaptureDumpAsync()
|
||||||
|
{
|
||||||
|
var dumpDirectoryPath = Environment.GetEnvironmentVariable("HELIX_DUMP_FOLDER");
|
||||||
|
|
||||||
|
if (dumpDirectoryPath == null)
|
||||||
|
{
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
var process = Process.GetCurrentProcess();
|
||||||
|
var dumpFilePath = Path.Combine(dumpDirectoryPath, $"{process.ProcessName}-{process.Id}.dmp");
|
||||||
|
|
||||||
|
return CaptureDumpAsync(process.Id, dumpFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Task CaptureDumpAsync(int pid)
|
||||||
|
{
|
||||||
|
var dumpDirectoryPath = Environment.GetEnvironmentVariable("HELIX_DUMP_FOLDER");
|
||||||
|
|
||||||
|
if (dumpDirectoryPath == null)
|
||||||
|
{
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
var process = Process.GetProcessById(pid);
|
||||||
|
var dumpFilePath = Path.Combine(dumpDirectoryPath, $"{process.ProcessName}.{process.Id}.dmp");
|
||||||
|
|
||||||
|
return CaptureDumpAsync(process.Id, dumpFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Task CaptureDumpAsync(int pid, string dumpFilePath)
|
||||||
|
{
|
||||||
|
// Skip this on OSX, we know it's unsupported right now
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||||
|
{
|
||||||
|
// Can we capture stacks or do a gcdump instead?
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RunAsync($"{Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT")}/dotnet-dump", $"collect -p {pid} -o \"{dumpFilePath}\"");
|
||||||
|
}
|
||||||
|
|
||||||
public static async Task<ProcessResult> RunAsync(
|
public static async Task<ProcessResult> RunAsync(
|
||||||
string filename,
|
string filename,
|
||||||
string arguments,
|
string arguments,
|
||||||
string? workingDirectory = null,
|
string? workingDirectory = null,
|
||||||
|
string dumpDirectoryPath = null,
|
||||||
bool throwOnError = true,
|
bool throwOnError = true,
|
||||||
IDictionary<string, string?>? environmentVariables = null,
|
IDictionary<string, string?>? environmentVariables = null,
|
||||||
Action<string>? outputDataReceived = null,
|
Action<string>? outputDataReceived = null,
|
||||||
|
|
@ -51,6 +95,14 @@ namespace RunTests
|
||||||
process.StartInfo.WorkingDirectory = workingDirectory;
|
process.StartInfo.WorkingDirectory = workingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dumpDirectoryPath ??= Environment.GetEnvironmentVariable("HELIX_DUMP_FOLDER");
|
||||||
|
|
||||||
|
if (dumpDirectoryPath != null)
|
||||||
|
{
|
||||||
|
process.StartInfo.EnvironmentVariables["COMPlus_DbgEnableMiniDump"] = "1";
|
||||||
|
process.StartInfo.EnvironmentVariables["COMPlus_DbgMiniDumpName"] = Path.Combine(dumpDirectoryPath, $"{Path.GetFileName(filename)}.%d.dmp");
|
||||||
|
}
|
||||||
|
|
||||||
if (environmentVariables != null)
|
if (environmentVariables != null)
|
||||||
{
|
{
|
||||||
foreach (var kvp in environmentVariables)
|
foreach (var kvp in environmentVariables)
|
||||||
|
|
@ -112,13 +164,20 @@ namespace RunTests
|
||||||
process.BeginOutputReadLine();
|
process.BeginOutputReadLine();
|
||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
|
|
||||||
var cancelledTcs = new TaskCompletionSource<object?>();
|
var canceledTcs = new TaskCompletionSource<object?>();
|
||||||
await using var _ = cancellationToken.Register(() => cancelledTcs.TrySetResult(null));
|
await using var _ = cancellationToken.Register(() => canceledTcs.TrySetResult(null));
|
||||||
|
|
||||||
var result = await Task.WhenAny(processLifetimeTask.Task, cancelledTcs.Task);
|
var result = await Task.WhenAny(processLifetimeTask.Task, canceledTcs.Task);
|
||||||
|
|
||||||
if (result == cancelledTcs.Task)
|
if (result == canceledTcs.Task)
|
||||||
{
|
{
|
||||||
|
if (dumpDirectoryPath != null)
|
||||||
|
{
|
||||||
|
var dumpFilePath = Path.Combine(dumpDirectoryPath, $"{Path.GetFileName(filename)}.{process.Id}.dmp");
|
||||||
|
// Capture a process dump if the dumpDirectory is set
|
||||||
|
await CaptureDumpAsync(process.Id, dumpFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||||
{
|
{
|
||||||
sys_kill(process.Id, sig: 2); // SIGINT
|
sys_kill(process.Id, sig: 2); // SIGINT
|
||||||
|
|
@ -143,16 +202,5 @@ namespace RunTests
|
||||||
|
|
||||||
return await processLifetimeTask.Task;
|
return await processLifetimeTask.Task;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void KillProcess(int pid)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
using var process = Process.GetProcessById(pid);
|
|
||||||
process?.Kill();
|
|
||||||
}
|
|
||||||
catch (ArgumentException) { }
|
|
||||||
catch (InvalidOperationException) { }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,6 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.CommandLine;
|
|
||||||
using System.IO;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace RunTests
|
namespace RunTests
|
||||||
|
|
@ -20,6 +16,10 @@ namespace RunTests
|
||||||
|
|
||||||
var keepGoing = runner.SetupEnvironment();
|
var keepGoing = runner.SetupEnvironment();
|
||||||
if (keepGoing)
|
if (keepGoing)
|
||||||
|
{
|
||||||
|
keepGoing = await runner.InstallDotnetDump();
|
||||||
|
}
|
||||||
|
if (keepGoing)
|
||||||
{
|
{
|
||||||
keepGoing = await runner.InstallAspNetAppIfNeededAsync();
|
keepGoing = await runner.InstallAspNetAppIfNeededAsync();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,11 @@ namespace RunTests
|
||||||
aliases: new string[] { "--aspnetref" },
|
aliases: new string[] { "--aspnetref" },
|
||||||
description: "The path to the aspnet ref nupkg to install")
|
description: "The path to the aspnet ref nupkg to install")
|
||||||
{ Argument = new Argument<string>(), Required = true },
|
{ Argument = new Argument<string>(), Required = true },
|
||||||
|
|
||||||
|
new Option(
|
||||||
|
aliases: new string[] { "--helixTimeout" },
|
||||||
|
description: "The timeout duration of the Helix job")
|
||||||
|
{ Argument = new Argument<string>(), Required = true },
|
||||||
};
|
};
|
||||||
|
|
||||||
var parseResult = command.Parse(args);
|
var parseResult = command.Parse(args);
|
||||||
|
|
@ -73,6 +78,7 @@ namespace RunTests
|
||||||
options.EfVersion = parseResult.ValueForOption<string>("--ef");
|
options.EfVersion = parseResult.ValueForOption<string>("--ef");
|
||||||
options.AspNetRuntime = parseResult.ValueForOption<string>("--aspnetruntime");
|
options.AspNetRuntime = parseResult.ValueForOption<string>("--aspnetruntime");
|
||||||
options.AspNetRef = parseResult.ValueForOption<string>("--aspnetref");
|
options.AspNetRef = parseResult.ValueForOption<string>("--aspnetref");
|
||||||
|
options.Timeout = TimeSpan.Parse(parseResult.ValueForOption<string>("--helixTimeout"));
|
||||||
options.HELIX_WORKITEM_ROOT = Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT");
|
options.HELIX_WORKITEM_ROOT = Environment.GetEnvironmentVariable("HELIX_WORKITEM_ROOT");
|
||||||
options.Path = Environment.GetEnvironmentVariable("PATH");
|
options.Path = Environment.GetEnvironmentVariable("PATH");
|
||||||
options.DotnetRoot = Environment.GetEnvironmentVariable("DOTNET_ROOT");
|
options.DotnetRoot = Environment.GetEnvironmentVariable("DOTNET_ROOT");
|
||||||
|
|
@ -91,5 +97,6 @@ namespace RunTests
|
||||||
public string HELIX_WORKITEM_ROOT { get; set;}
|
public string HELIX_WORKITEM_ROOT { get; set;}
|
||||||
public string DotnetRoot { get; set; }
|
public string DotnetRoot { get; set; }
|
||||||
public string Path { get; set; }
|
public string Path { get; set; }
|
||||||
|
public TimeSpan Timeout { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,10 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.CommandLine;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace RunTests
|
namespace RunTests
|
||||||
|
|
@ -122,26 +122,34 @@ namespace RunTests
|
||||||
$"nuget add source {Options.HELIX_WORKITEM_ROOT} --configfile NuGet.config",
|
$"nuget add source {Options.HELIX_WORKITEM_ROOT} --configfile NuGet.config",
|
||||||
environmentVariables: EnvironmentVariables,
|
environmentVariables: EnvironmentVariables,
|
||||||
outputDataReceived: Console.WriteLine,
|
outputDataReceived: Console.WriteLine,
|
||||||
errorDataReceived: Console.Error.WriteLine);
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
|
throwOnError: false,
|
||||||
|
cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
|
||||||
|
|
||||||
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
||||||
"nuget add source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --configfile NuGet.config",
|
"nuget add source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --configfile NuGet.config",
|
||||||
environmentVariables: EnvironmentVariables,
|
environmentVariables: EnvironmentVariables,
|
||||||
outputDataReceived: Console.WriteLine,
|
outputDataReceived: Console.WriteLine,
|
||||||
errorDataReceived: Console.Error.WriteLine);
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
|
throwOnError: false,
|
||||||
|
cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
|
||||||
|
|
||||||
// Write nuget sources to console, useful for debugging purposes
|
// Write nuget sources to console, useful for debugging purposes
|
||||||
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
||||||
"nuget list source",
|
"nuget list source",
|
||||||
environmentVariables: EnvironmentVariables,
|
environmentVariables: EnvironmentVariables,
|
||||||
outputDataReceived: Console.WriteLine,
|
outputDataReceived: Console.WriteLine,
|
||||||
errorDataReceived: Console.Error.WriteLine);
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
|
throwOnError: false,
|
||||||
|
cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
|
||||||
|
|
||||||
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
||||||
$"tool install dotnet-ef --version {Options.EfVersion} --tool-path {Options.HELIX_WORKITEM_ROOT}",
|
$"tool install dotnet-ef --version {Options.EfVersion} --tool-path {Options.HELIX_WORKITEM_ROOT}",
|
||||||
environmentVariables: EnvironmentVariables,
|
environmentVariables: EnvironmentVariables,
|
||||||
outputDataReceived: Console.WriteLine,
|
outputDataReceived: Console.WriteLine,
|
||||||
errorDataReceived: Console.Error.WriteLine);
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
|
throwOnError: false,
|
||||||
|
cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
|
||||||
|
|
||||||
// ';' is the path separator on Windows, and ':' on Unix
|
// ';' is the path separator on Windows, and ':' on Unix
|
||||||
Options.Path += RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ";" : ":";
|
Options.Path += RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ";" : ":";
|
||||||
|
|
@ -186,6 +194,27 @@ namespace RunTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<bool> InstallDotnetDump()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
||||||
|
$"tool install dotnet-dump --tool-path {Options.HELIX_WORKITEM_ROOT} " +
|
||||||
|
"--version 5.0.0-* --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json",
|
||||||
|
environmentVariables: EnvironmentVariables,
|
||||||
|
outputDataReceived: Console.WriteLine,
|
||||||
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
|
throwOnError: false);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Exception in InstallDotnetDump: {e}");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<bool> CheckTestDiscoveryAsync()
|
public async Task<bool> CheckTestDiscoveryAsync()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -193,7 +222,8 @@ namespace RunTests
|
||||||
// Run test discovery so we know if there are tests to run
|
// Run test discovery so we know if there are tests to run
|
||||||
var discoveryResult = await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
var discoveryResult = await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet",
|
||||||
$"vstest {Options.Target} -lt",
|
$"vstest {Options.Target} -lt",
|
||||||
environmentVariables: EnvironmentVariables);
|
environmentVariables: EnvironmentVariables,
|
||||||
|
cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token);
|
||||||
|
|
||||||
if (discoveryResult.StandardOutput.Contains("Exception thrown"))
|
if (discoveryResult.StandardOutput.Contains("Exception thrown"))
|
||||||
{
|
{
|
||||||
|
|
@ -215,6 +245,8 @@ namespace RunTests
|
||||||
var exitCode = 0;
|
var exitCode = 0;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// Timeout test run 5 minutes before the Helix job would timeout
|
||||||
|
var cts = new CancellationTokenSource(Options.Timeout.Subtract(TimeSpan.FromMinutes(5)));
|
||||||
var commonTestArgs = $"vstest {Options.Target} --logger:xunit --logger:\"console;verbosity=normal\" --blame";
|
var commonTestArgs = $"vstest {Options.Target} --logger:xunit --logger:\"console;verbosity=normal\" --blame";
|
||||||
if (Options.Quarantined)
|
if (Options.Quarantined)
|
||||||
{
|
{
|
||||||
|
|
@ -226,7 +258,8 @@ namespace RunTests
|
||||||
environmentVariables: EnvironmentVariables,
|
environmentVariables: EnvironmentVariables,
|
||||||
outputDataReceived: Console.WriteLine,
|
outputDataReceived: Console.WriteLine,
|
||||||
errorDataReceived: Console.Error.WriteLine,
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
throwOnError: false);
|
throwOnError: false,
|
||||||
|
cancellationToken: cts.Token);
|
||||||
|
|
||||||
if (result.ExitCode != 0)
|
if (result.ExitCode != 0)
|
||||||
{
|
{
|
||||||
|
|
@ -243,7 +276,8 @@ namespace RunTests
|
||||||
environmentVariables: EnvironmentVariables,
|
environmentVariables: EnvironmentVariables,
|
||||||
outputDataReceived: Console.WriteLine,
|
outputDataReceived: Console.WriteLine,
|
||||||
errorDataReceived: Console.Error.WriteLine,
|
errorDataReceived: Console.Error.WriteLine,
|
||||||
throwOnError: false);
|
throwOnError: false,
|
||||||
|
cancellationToken: cts.Token);
|
||||||
|
|
||||||
if (result.ExitCode != 0)
|
if (result.ExitCode != 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,18 @@ REM Need delayed expansion !PATH! so parens in the path don't mess up the parens
|
||||||
setlocal enabledelayedexpansion
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
REM Use '$' as a variable name prefix to avoid MSBuild variable collisions with these variables
|
REM Use '$' as a variable name prefix to avoid MSBuild variable collisions with these variables
|
||||||
|
set $target=%1
|
||||||
set $sdkVersion=%2
|
set $sdkVersion=%2
|
||||||
set $runtimeVersion=%3
|
set $runtimeVersion=%3
|
||||||
|
set $queue=%4
|
||||||
set $arch=%5
|
set $arch=%5
|
||||||
|
set $quarantined=%6
|
||||||
|
set $ef=%7
|
||||||
|
set $aspnetruntime=%8
|
||||||
|
set $aspnetref=%9
|
||||||
|
REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more
|
||||||
|
shift
|
||||||
|
set $helixTimeout=%9
|
||||||
|
|
||||||
set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk
|
set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk
|
||||||
set DOTNET_ROOT=%DOTNET_HOME%\%$arch%
|
set DOTNET_ROOT=%DOTNET_HOME%\%$arch%
|
||||||
|
|
@ -23,10 +32,11 @@ powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePo
|
||||||
set exit_code=0
|
set exit_code=0
|
||||||
echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
|
echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
|
||||||
dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources
|
dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources
|
||||||
echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %1 --sdk %2 --runtime %3 --queue %4 --arch %5 --quarantined %6 --ef %7 --aspnetruntime %8 --aspnetref %9..."
|
|
||||||
dotnet run --project RunTests\RunTests.csproj -- --target %1 --sdk %2 --runtime %3 --queue %4 --arch %5 --quarantined %6 --ef %7 --aspnetruntime %8 --aspnetref %9
|
echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..."
|
||||||
if errorlevel 1 (
|
dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%
|
||||||
set exit_code=1
|
if errorlevel neq 0 (
|
||||||
|
set exit_code=%errorlevel%
|
||||||
)
|
)
|
||||||
echo "Finished running tests: exit_code=%exit_code%"
|
echo "Finished running tests: exit_code=%exit_code%"
|
||||||
exit /b %exit_code%
|
exit /b %exit_code%
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,8 @@ sync
|
||||||
exit_code=0
|
exit_code=0
|
||||||
echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
|
echo "Restore: $DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
|
||||||
$DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources
|
$DOTNET_ROOT/dotnet restore RunTests/RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources
|
||||||
echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9..."
|
echo "Running tests: $DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}..."
|
||||||
$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9
|
$DOTNET_ROOT/dotnet run --project RunTests/RunTests.csproj -- --target $1 --sdk $2 --runtime $3 --queue $4 --arch $5 --quarantined $6 --ef $7 --aspnetruntime $8 --aspnetref $9 --helixTimeout ${10}
|
||||||
exit_code=$?
|
exit_code=$?
|
||||||
echo "Finished tests...exit_code=$exit_code"
|
echo "Finished tests...exit_code=$exit_code"
|
||||||
exit $exit_code
|
exit $exit_code
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ Out-File -FilePath $sentinelFile -InputObject $JobName | Out-Null;
|
||||||
[System.Diagnostics.Process []]$AliveProcesses = @();
|
[System.Diagnostics.Process []]$AliveProcesses = @();
|
||||||
foreach ($candidate in $CandidateProcessNames) {
|
foreach ($candidate in $CandidateProcessNames) {
|
||||||
try {
|
try {
|
||||||
$candidateProcesses = Get-Process $candidate;
|
$candidateProcesses = Get-Process $candidate 2>$null
|
||||||
$candidateProcesses | ForEach-Object { Write-Output "Found candidate process $candidate with PID '$($_.Id)'." };
|
$candidateProcesses | ForEach-Object { Write-Output "Found candidate process $candidate with PID '$($_.Id)'." };
|
||||||
$AliveProcesses += $candidateProcesses;
|
$AliveProcesses += $candidateProcesses;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -115,8 +115,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
|
||||||
<TestAssembly>$(TargetFileName)</TestAssembly>
|
<TestAssembly>$(TargetFileName)</TestAssembly>
|
||||||
<PreCommands>@(HelixPreCommand)</PreCommands>
|
<PreCommands>@(HelixPreCommand)</PreCommands>
|
||||||
<PostCommands>@(HelixPostCommand)</PostCommands>
|
<PostCommands>@(HelixPostCommand)</PostCommands>
|
||||||
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg</Command>
|
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout)</Command>
|
||||||
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg</Command>
|
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture) $(RunQuarantinedTests) $(DotnetEfPackageVersion) Microsoft.AspNetCore.App.Runtime.win-x64.$(AppRuntimeVersion).nupkg Microsoft.AspNetCore.App.Ref.$(AppRuntimeVersion).nupkg $(HelixTimeout)</Command>
|
||||||
<Command Condition="$(HelixCommand) != ''">$(HelixCommand)</Command>
|
<Command Condition="$(HelixCommand) != ''">$(HelixCommand)</Command>
|
||||||
<Timeout>$(HelixTimeout)</Timeout>
|
<Timeout>$(HelixTimeout)</Timeout>
|
||||||
</HelixWorkItem>
|
</HelixWorkItem>
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,9 @@
|
||||||
This target resolves remaining Referene items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
|
This target resolves remaining Referene items to Packages, if possible. If not, they are left as Reference items fo the SDK to resolve.
|
||||||
This executes on NuGet restore and during DesignTimeBuild. It should not run in the outer, cross-targeting build.
|
This executes on NuGet restore and during DesignTimeBuild. It should not run in the outer, cross-targeting build.
|
||||||
-->
|
-->
|
||||||
<Target Name="ResolveCustomReferences" BeforeTargets="CollectPackageReferences;ResolveAssemblyReferencesDesignTime;ResolveAssemblyReferences" Condition=" '$(TargetFramework)' != '' AND '$(EnableCustomReferenceResolution)' == 'true' ">
|
<Target Name="ResolveCustomReferences"
|
||||||
|
BeforeTargets="CheckForImplicitPackageReferenceOverrides;CollectPackageReferences;ResolvePackageAssets"
|
||||||
|
Condition=" '$(TargetFramework)' != '' AND '$(EnableCustomReferenceResolution)' == 'true' ">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- Ensure only content asset are consumed from .Sources packages -->
|
<!-- Ensure only content asset are consumed from .Sources packages -->
|
||||||
<Reference>
|
<Reference>
|
||||||
|
|
|
||||||
|
|
@ -15,13 +15,14 @@
|
||||||
"Git": "2.22.0",
|
"Git": "2.22.0",
|
||||||
"jdk": "11.0.3",
|
"jdk": "11.0.3",
|
||||||
"vs": {
|
"vs": {
|
||||||
"version": "16.5",
|
"version": "16.6",
|
||||||
"components": [
|
"components": [
|
||||||
"Microsoft.VisualStudio.Component.VC.ATL",
|
"Microsoft.VisualStudio.Component.VC.ATL",
|
||||||
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
|
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
|
||||||
"Microsoft.VisualStudio.Component.Windows10SDK.17134"
|
"Microsoft.VisualStudio.Component.Windows10SDK.17134"
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
"xcopy-msbuild": "none"
|
||||||
},
|
},
|
||||||
"msbuild-sdks": {
|
"msbuild-sdks": {
|
||||||
"Yarn.MSBuild": "1.15.2",
|
"Yarn.MSBuild": "1.15.2",
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ using System.Diagnostics;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Components.Rendering
|
namespace Microsoft.AspNetCore.Components.Rendering
|
||||||
|
|
@ -763,5 +764,34 @@ namespace Microsoft.AspNetCore.Components.Rendering
|
||||||
Assert.Equal(TaskStatus.Canceled, task.Status);
|
Assert.Equal(TaskStatus.Canceled, task.Status);
|
||||||
await Assert.ThrowsAsync<TaskCanceledException>(async () => await task);
|
await Assert.ThrowsAsync<TaskCanceledException>(async () => await task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
|
public async Task InvokeAsync_SyncWorkInAsyncTaskIsCompletedFirst()
|
||||||
|
{
|
||||||
|
// Simplified version of ServerComponentRenderingTest.CanDispatchAsyncWorkToSyncContext
|
||||||
|
var expected = "First Second Third Fourth Fifth";
|
||||||
|
var context = new RendererSynchronizationContext();
|
||||||
|
string actual;
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await Task.Yield();
|
||||||
|
actual = "First";
|
||||||
|
|
||||||
|
var invokeTask = context.InvokeAsync(async () =>
|
||||||
|
{
|
||||||
|
// When the sync context is idle, queued work items start synchronously
|
||||||
|
actual += " Second";
|
||||||
|
await Task.Delay(250);
|
||||||
|
actual += " Fourth";
|
||||||
|
});
|
||||||
|
|
||||||
|
actual += " Third";
|
||||||
|
await invokeTask;
|
||||||
|
actual += " Fifth";
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal(expected, actual);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ using BasicTestApp;
|
||||||
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure;
|
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure;
|
||||||
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures;
|
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures;
|
||||||
using Microsoft.AspNetCore.E2ETesting;
|
using Microsoft.AspNetCore.E2ETesting;
|
||||||
|
using Microsoft.AspNetCore.Testing;
|
||||||
using OpenQA.Selenium;
|
using OpenQA.Selenium;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
|
@ -100,6 +101,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
|
[QuarantinedTest]
|
||||||
[InlineData("target")]
|
[InlineData("target")]
|
||||||
[InlineData("intermediate")]
|
[InlineData("intermediate")]
|
||||||
public void StopPropagation(string whereToStopPropagation)
|
public void StopPropagation(string whereToStopPropagation)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ using BasicTestApp;
|
||||||
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure;
|
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure;
|
||||||
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures;
|
using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures;
|
||||||
using Microsoft.AspNetCore.E2ETesting;
|
using Microsoft.AspNetCore.E2ETesting;
|
||||||
|
using Microsoft.AspNetCore.Testing;
|
||||||
using OpenQA.Selenium;
|
using OpenQA.Selenium;
|
||||||
using OpenQA.Selenium.Interactions;
|
using OpenQA.Selenium.Interactions;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -91,6 +92,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/22034")]
|
||||||
public void CanDeleteUnkeyed()
|
public void CanDeleteUnkeyed()
|
||||||
{
|
{
|
||||||
PerformTest(
|
PerformTest(
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
||||||
<FrameworkListOutputPath>$(ArtifactsObjDir)$(FrameworkListFileName)</FrameworkListOutputPath>
|
<FrameworkListOutputPath>$(ArtifactsObjDir)$(FrameworkListFileName)</FrameworkListOutputPath>
|
||||||
|
|
||||||
<!-- Runtime extensions transport paths -->
|
<!-- Runtime extensions transport paths -->
|
||||||
<!-- TODO: revert tfm to $(TargetFramework) when we have updated to net5.0 -->
|
<RuntimeExtensionsReferenceDirectory>$(PkgMicrosoft_Extensions_Internal_Transport)\ref\$(TargetFramework)\</RuntimeExtensionsReferenceDirectory>
|
||||||
<RuntimeExtensionsReferenceDirectory>$(PkgMicrosoft_Extensions_Internal_Transport)\ref\net5.0\</RuntimeExtensionsReferenceDirectory>
|
|
||||||
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
||||||
<!-- There is no way to suppress the .dev.runtimeconfig.json generation. -->
|
<!-- There is no way to suppress the .dev.runtimeconfig.json generation. -->
|
||||||
<ProjectRuntimeConfigDevFilePath>$(IntermediateOutputPath)ignoreme.dev.runtimeconfig.json</ProjectRuntimeConfigDevFilePath>
|
<ProjectRuntimeConfigDevFilePath>$(IntermediateOutputPath)ignoreme.dev.runtimeconfig.json</ProjectRuntimeConfigDevFilePath>
|
||||||
|
|
||||||
<VersionFileIntermediateOutputPath>$(IntermediateOutputPath)$(SharedFxName).versions.txt</VersionFileIntermediateOutputPath>
|
<VersionTxtFileIntermediateOutputPath>$(IntermediateOutputPath)$(SharedFxName).versions.txt</VersionTxtFileIntermediateOutputPath>
|
||||||
|
<DotVersionFileIntermediateOutputPath>$(IntermediateOutputPath).version</DotVersionFileIntermediateOutputPath>
|
||||||
|
|
||||||
<!-- The project representing the shared framework doesn't produce a .NET assembly or symbols. -->
|
<!-- The project representing the shared framework doesn't produce a .NET assembly or symbols. -->
|
||||||
<DebugType>none</DebugType>
|
<DebugType>none</DebugType>
|
||||||
|
|
@ -259,7 +260,12 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<WriteLinesToFile
|
<WriteLinesToFile
|
||||||
File="$(VersionFileIntermediateOutputPath)"
|
File="$(VersionTxtFileIntermediateOutputPath)"
|
||||||
|
Lines="@(VersionLines)"
|
||||||
|
Overwrite="true" />
|
||||||
|
|
||||||
|
<WriteLinesToFile
|
||||||
|
File="$(DotVersionFileIntermediateOutputPath)"
|
||||||
Lines="@(VersionLines)"
|
Lines="@(VersionLines)"
|
||||||
Overwrite="true" />
|
Overwrite="true" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
@ -402,7 +408,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
||||||
|
|
||||||
<Target Name="_ResolveSharedFrameworkContent" DependsOnTargets="ResolveReferences;Crossgen">
|
<Target Name="_ResolveSharedFrameworkContent" DependsOnTargets="ResolveReferences;Crossgen">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<SharedFxContent Include="$(VersionFileIntermediateOutputPath)" />
|
<SharedFxContent Include="$(DotVersionFileIntermediateOutputPath)" />
|
||||||
<SharedFxContent Include="$(ProjectDepsFilePath)" />
|
<SharedFxContent Include="$(ProjectDepsFilePath)" />
|
||||||
<SharedFxContent Include="$(ProjectRuntimeConfigFilePath)" />
|
<SharedFxContent Include="$(ProjectRuntimeConfigFilePath)" />
|
||||||
<SharedFxContent Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)' != '.pdb'" />
|
<SharedFxContent Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)' != '.pdb'" />
|
||||||
|
|
@ -501,7 +507,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
||||||
BeforeTargets="_GetPackageFiles">
|
BeforeTargets="_GetPackageFiles">
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="$(VersionFileIntermediateOutputPath)" Pack="true" PackagePath="." />
|
<None Include="$(VersionTxtFileIntermediateOutputPath)" Pack="true" PackagePath="." />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ namespace Microsoft.AspNetCore
|
||||||
{
|
{
|
||||||
private readonly string _expectedTfm;
|
private readonly string _expectedTfm;
|
||||||
private readonly string _expectedRid;
|
private readonly string _expectedRid;
|
||||||
|
private readonly string _expectedVersionFileName;
|
||||||
private readonly string _sharedFxRoot;
|
private readonly string _sharedFxRoot;
|
||||||
private readonly ITestOutputHelper _output;
|
private readonly ITestOutputHelper _output;
|
||||||
|
|
||||||
|
|
@ -26,6 +27,7 @@ namespace Microsoft.AspNetCore
|
||||||
_sharedFxRoot = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("ASPNET_RUNTIME_PATH"))
|
_sharedFxRoot = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("ASPNET_RUNTIME_PATH"))
|
||||||
? Path.Combine(TestData.GetTestDataValue("SharedFrameworkLayoutRoot"), "shared", TestData.GetTestDataValue("RuntimePackageVersion"))
|
? Path.Combine(TestData.GetTestDataValue("SharedFrameworkLayoutRoot"), "shared", TestData.GetTestDataValue("RuntimePackageVersion"))
|
||||||
: Environment.GetEnvironmentVariable("ASPNET_RUNTIME_PATH");
|
: Environment.GetEnvironmentVariable("ASPNET_RUNTIME_PATH");
|
||||||
|
_expectedVersionFileName = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("ASPNET_RUNTIME_PATH")) ? ".version" : "Microsoft.AspNetCore.App.versions.txt";
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -133,7 +135,7 @@ namespace Microsoft.AspNetCore
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ItContainsVersionFile()
|
public void ItContainsVersionFile()
|
||||||
{
|
{
|
||||||
var versionFile = Path.Combine(_sharedFxRoot, "Microsoft.AspNetCore.App.versions.txt");
|
var versionFile = Path.Combine(_sharedFxRoot, _expectedVersionFileName);
|
||||||
AssertEx.FileExists(versionFile);
|
AssertEx.FileExists(versionFile);
|
||||||
var lines = File.ReadAllLines(versionFile);
|
var lines = File.ReadAllLines(versionFile);
|
||||||
Assert.Equal(2, lines.Length);
|
Assert.Equal(2, lines.Length);
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace InteropTests
|
namespace InteropTests
|
||||||
{
|
{
|
||||||
|
// All interop test cases, minus GCE authentication specific tests.
|
||||||
|
// Tests are separate methods so that they can be quarantined separately.
|
||||||
public class InteropTests
|
public class InteropTests
|
||||||
{
|
{
|
||||||
private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(30);
|
private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(30);
|
||||||
|
|
@ -25,9 +27,67 @@ namespace InteropTests
|
||||||
_output = output;
|
_output = output;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Fact]
|
||||||
[MemberData(nameof(TestCaseData))]
|
public Task EmptyUnary() => InteropTestCase("empty_unary");
|
||||||
public async Task InteropTestCase(string name)
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
|
public Task LargeUnary() => InteropTestCase("large_unary");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
|
public Task ClientStreaming() => InteropTestCase("client_streaming");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task ServerStreaming() => InteropTestCase("server_streaming");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/22101")]
|
||||||
|
public Task PingPong() => InteropTestCase("ping_pong");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task EmptyStream() => InteropTestCase("empty_stream");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task CancelAfterBegin() => InteropTestCase("cancel_after_begin");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task CancelAfterFirstResponse() => InteropTestCase("cancel_after_first_response");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task TimeoutOnSleepingServer() => InteropTestCase("timeout_on_sleeping_server");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
|
public Task CustomMetadata() => InteropTestCase("custom_metadata");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task StatusCodeAndMessage() => InteropTestCase("status_code_and_message");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task SpecialStatusMessage() => InteropTestCase("special_status_message");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task UnimplementedService() => InteropTestCase("unimplemented_service");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task UnimplementedMethod() => InteropTestCase("unimplemented_method");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
|
public Task ClientCompressedUnary() => InteropTestCase("client_compressed_unary");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task ClientCompressedStreaming() => InteropTestCase("client_compressed_streaming");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
|
public Task ServerCompressedUnary() => InteropTestCase("server_compressed_unary");
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public Task ServerCompressedStreaming() => InteropTestCase("server_compressed_streaming");
|
||||||
|
|
||||||
|
private async Task InteropTestCase(string name)
|
||||||
{
|
{
|
||||||
using (var serverProcess = new WebsiteProcess(_serverPath, _output))
|
using (var serverProcess = new WebsiteProcess(_serverPath, _output))
|
||||||
{
|
{
|
||||||
|
|
@ -43,33 +103,5 @@ namespace InteropTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region TestData
|
|
||||||
// All interop test cases, minus GCE authentication specific tests
|
|
||||||
private static string[] AllTests = new string[]
|
|
||||||
{
|
|
||||||
"empty_unary",
|
|
||||||
"large_unary",
|
|
||||||
"client_streaming",
|
|
||||||
"server_streaming",
|
|
||||||
"ping_pong",
|
|
||||||
"empty_stream",
|
|
||||||
|
|
||||||
"cancel_after_begin",
|
|
||||||
"cancel_after_first_response",
|
|
||||||
"timeout_on_sleeping_server",
|
|
||||||
"custom_metadata",
|
|
||||||
"status_code_and_message",
|
|
||||||
"special_status_message",
|
|
||||||
"unimplemented_service",
|
|
||||||
"unimplemented_method",
|
|
||||||
"client_compressed_unary",
|
|
||||||
"client_compressed_streaming",
|
|
||||||
"server_compressed_unary",
|
|
||||||
"server_compressed_streaming"
|
|
||||||
};
|
|
||||||
|
|
||||||
public static IEnumerable<object[]> TestCaseData => AllTests.Select(t => new object[] { t });
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -274,7 +274,6 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
[QuarantinedTest]
|
|
||||||
public async Task RunAsync_PublishersCanTimeout()
|
public async Task RunAsync_PublishersCanTimeout()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
|
||||||
|
|
@ -433,7 +433,6 @@ namespace Microsoft.AspNetCore.TestHost
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/20164")]
|
|
||||||
public async Task ClientStreaming_ResponseCompletesWithoutResponseBodyWrite()
|
public async Task ClientStreaming_ResponseCompletesWithoutResponseBodyWrite()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
|
||||||
|
|
@ -248,6 +248,8 @@ namespace Microsoft.AspNetCore.Http
|
||||||
public static readonly string Post;
|
public static readonly string Post;
|
||||||
public static readonly string Put;
|
public static readonly string Put;
|
||||||
public static readonly string Trace;
|
public static readonly string Trace;
|
||||||
|
public static bool Equals(string methodA, string methodB) { throw null; }
|
||||||
|
public static string GetCanonicalizedValue(string method) { throw null; }
|
||||||
public static bool IsConnect(string method) { throw null; }
|
public static bool IsConnect(string method) { throw null; }
|
||||||
public static bool IsDelete(string method) { throw null; }
|
public static bool IsDelete(string method) { throw null; }
|
||||||
public static bool IsGet(string method) { throw null; }
|
public static bool IsGet(string method) { throw null; }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsConnect(string method)
|
public static bool IsConnect(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Connect, method) || StringComparer.OrdinalIgnoreCase.Equals(Connect, method);
|
return Equals(Connect, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsDelete(string method)
|
public static bool IsDelete(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Delete, method) || StringComparer.OrdinalIgnoreCase.Equals(Delete, method);
|
return Equals(Delete, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -57,11 +57,11 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="method">The HTTP request method.</param>
|
/// <param name="method">The HTTP request method.</param>
|
||||||
/// <returns>
|
/// <returns>
|
||||||
/// <see langword="true" /> if the method is GET; otherwise, <see langword="false" />.
|
/// <see langword="true" /> if the method is GET; otherwise, <see langword="false" />.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsGet(string method)
|
public static bool IsGet(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Get, method) || StringComparer.OrdinalIgnoreCase.Equals(Get, method);
|
return Equals(Get, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -69,11 +69,11 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="method">The HTTP request method.</param>
|
/// <param name="method">The HTTP request method.</param>
|
||||||
/// <returns>
|
/// <returns>
|
||||||
/// <see langword="true" /> if the method is HEAD; otherwise, <see langword="false" />.
|
/// <see langword="true" /> if the method is HEAD; otherwise, <see langword="false" />.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsHead(string method)
|
public static bool IsHead(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Head, method) || StringComparer.OrdinalIgnoreCase.Equals(Head, method);
|
return Equals(Head, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -81,11 +81,11 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="method">The HTTP request method.</param>
|
/// <param name="method">The HTTP request method.</param>
|
||||||
/// <returns>
|
/// <returns>
|
||||||
/// <see langword="true" /> if the method is OPTIONS; otherwise, <see langword="false" />.
|
/// <see langword="true" /> if the method is OPTIONS; otherwise, <see langword="false" />.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsOptions(string method)
|
public static bool IsOptions(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Options, method) || StringComparer.OrdinalIgnoreCase.Equals(Options, method);
|
return Equals(Options, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -97,7 +97,7 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsPatch(string method)
|
public static bool IsPatch(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Patch, method) || StringComparer.OrdinalIgnoreCase.Equals(Patch, method);
|
return Equals(Patch, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -109,7 +109,7 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsPost(string method)
|
public static bool IsPost(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Post, method) || StringComparer.OrdinalIgnoreCase.Equals(Post, method);
|
return Equals(Post, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -121,7 +121,7 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsPut(string method)
|
public static bool IsPut(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Put, method) || StringComparer.OrdinalIgnoreCase.Equals(Put, method);
|
return Equals(Put, method);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -133,7 +133,39 @@ namespace Microsoft.AspNetCore.Http
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public static bool IsTrace(string method)
|
public static bool IsTrace(string method)
|
||||||
{
|
{
|
||||||
return object.ReferenceEquals(Trace, method) || StringComparer.OrdinalIgnoreCase.Equals(Trace, method);
|
return Equals(Trace, method);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the equivalent static instance, or the original instance if none match. This conversion is optional but allows for performance optimizations when comparing method values elsewhere.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="method"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetCanonicalizedValue(string method) => method switch
|
||||||
|
{
|
||||||
|
string _ when IsGet(method) => Get,
|
||||||
|
string _ when IsPost(method) => Post,
|
||||||
|
string _ when IsPut(method) => Put,
|
||||||
|
string _ when IsDelete(method) => Delete,
|
||||||
|
string _ when IsOptions(method) => Options,
|
||||||
|
string _ when IsHead(method) => Head,
|
||||||
|
string _ when IsPatch(method) => Patch,
|
||||||
|
string _ when IsTrace(method) => Trace,
|
||||||
|
string _ when IsConnect(method) => Connect,
|
||||||
|
string _ => method
|
||||||
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a value that indicates if the HTTP methods are the same.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="methodA">The first HTTP request method to compare.</param>
|
||||||
|
/// <param name="methodB">The second HTTP request method to compare.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// <see langword="true" /> if the methods are the same; otherwise, <see langword="false" />.
|
||||||
|
/// </returns>
|
||||||
|
public static bool Equals(string methodA, string methodB)
|
||||||
|
{
|
||||||
|
return object.ReferenceEquals(methodA, methodB) || StringComparer.OrdinalIgnoreCase.Equals(methodA, methodB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Http.Abstractions
|
||||||
|
{
|
||||||
|
public class HttpMethodslTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void CanonicalizedValue_Success()
|
||||||
|
{
|
||||||
|
var testCases = new List<(string[] methods, string expectedMethod)>
|
||||||
|
{
|
||||||
|
(new string[] { "GET", "Get", "get" }, HttpMethods.Get),
|
||||||
|
(new string[] { "POST", "Post", "post" }, HttpMethods.Post),
|
||||||
|
(new string[] { "PUT", "Put", "put" }, HttpMethods.Put),
|
||||||
|
(new string[] { "DELETE", "Delete", "delete" }, HttpMethods.Delete),
|
||||||
|
(new string[] { "HEAD", "Head", "head" }, HttpMethods.Head),
|
||||||
|
(new string[] { "CONNECT", "Connect", "connect" }, HttpMethods.Connect),
|
||||||
|
(new string[] { "OPTIONS", "Options", "options" }, HttpMethods.Options),
|
||||||
|
(new string[] { "PATCH", "Patch", "patch" }, HttpMethods.Patch),
|
||||||
|
(new string[] { "TRACE", "Trace", "trace" }, HttpMethods.Trace)
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int i = 0; i < testCases.Count; i++)
|
||||||
|
{
|
||||||
|
var testCase = testCases[i];
|
||||||
|
for (int j = 0; j < testCase.methods.Length; j++)
|
||||||
|
{
|
||||||
|
CanonicalizedValueTest(testCase.methods[j], testCase.expectedMethod);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void CanonicalizedValueTest(string method, string expectedMethod)
|
||||||
|
{
|
||||||
|
string inputMethod = CreateStringAtRuntime(method);
|
||||||
|
var canonicalizedValue = HttpMethods.GetCanonicalizedValue(inputMethod);
|
||||||
|
|
||||||
|
Assert.Same(expectedMethod, canonicalizedValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string CreateStringAtRuntime(string input)
|
||||||
|
{
|
||||||
|
return new StringBuilder(input).ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -5,6 +5,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using static Microsoft.AspNetCore.Http.HttpMethods;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing
|
namespace Microsoft.AspNetCore.Routing
|
||||||
{
|
{
|
||||||
|
|
@ -41,7 +42,7 @@ namespace Microsoft.AspNetCore.Routing
|
||||||
throw new ArgumentNullException(nameof(httpMethods));
|
throw new ArgumentNullException(nameof(httpMethods));
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpMethods = httpMethods.ToArray();
|
HttpMethods = httpMethods.Select(GetCanonicalizedValue).ToArray();
|
||||||
AcceptCorsPreflight = acceptCorsPreflight;
|
AcceptCorsPreflight = acceptCorsPreflight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,15 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
_parameterPolicyFactory = parameterPolicyFactory;
|
_parameterPolicyFactory = parameterPolicyFactory;
|
||||||
_selector = selector;
|
_selector = selector;
|
||||||
|
|
||||||
|
if (AppContext.TryGetSwitch("Microsoft.AspNetCore.Routing.UseCorrectCatchAllBehavior", out var enabled))
|
||||||
|
{
|
||||||
|
UseCorrectCatchAllBehavior = enabled;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UseCorrectCatchAllBehavior = false; // default to bugged behavior
|
||||||
|
}
|
||||||
|
|
||||||
var (nodeBuilderPolicies, endpointComparerPolicies, endpointSelectorPolicies) = ExtractPolicies(policies.OrderBy(p => p.Order));
|
var (nodeBuilderPolicies, endpointComparerPolicies, endpointSelectorPolicies) = ExtractPolicies(policies.OrderBy(p => p.Order));
|
||||||
_endpointSelectorPolicies = endpointSelectorPolicies;
|
_endpointSelectorPolicies = endpointSelectorPolicies;
|
||||||
_nodeBuilders = nodeBuilderPolicies;
|
_nodeBuilders = nodeBuilderPolicies;
|
||||||
|
|
@ -56,6 +65,9 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
// Used in tests
|
// Used in tests
|
||||||
internal EndpointComparer Comparer => _comparer;
|
internal EndpointComparer Comparer => _comparer;
|
||||||
|
|
||||||
|
// Used in tests
|
||||||
|
internal bool UseCorrectCatchAllBehavior { get; set; }
|
||||||
|
|
||||||
public override void AddEndpoint(RouteEndpoint endpoint)
|
public override void AddEndpoint(RouteEndpoint endpoint)
|
||||||
{
|
{
|
||||||
_endpoints.Add(endpoint);
|
_endpoints.Add(endpoint);
|
||||||
|
|
@ -63,6 +75,15 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
|
|
||||||
public DfaNode BuildDfaTree(bool includeLabel = false)
|
public DfaNode BuildDfaTree(bool includeLabel = false)
|
||||||
{
|
{
|
||||||
|
if (!UseCorrectCatchAllBehavior)
|
||||||
|
{
|
||||||
|
// In 3.0 we did a global sort of the endpoints up front. This was a bug, because we actually want
|
||||||
|
// do do the sort at each level of the tree based on precedence.
|
||||||
|
//
|
||||||
|
// _useLegacy30Behavior enables opt-out via an AppContext switch.
|
||||||
|
_endpoints.Sort(_comparer);
|
||||||
|
}
|
||||||
|
|
||||||
// Since we're doing a BFS we will process each 'level' of the tree in stages
|
// Since we're doing a BFS we will process each 'level' of the tree in stages
|
||||||
// this list will hold the set of items we need to process at the current
|
// this list will hold the set of items we need to process at the current
|
||||||
// stage.
|
// stage.
|
||||||
|
|
@ -116,8 +137,13 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
nextWork = previousWork;
|
nextWork = previousWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
// See comments on precedenceDigitComparer
|
if (UseCorrectCatchAllBehavior)
|
||||||
work.Sort(0, workCount, precedenceDigitComparer);
|
{
|
||||||
|
// The fix for the 3.0 sorting behavior bug.
|
||||||
|
|
||||||
|
// See comments on precedenceDigitComparer
|
||||||
|
work.Sort(0, workCount, precedenceDigitComparer);
|
||||||
|
}
|
||||||
|
|
||||||
for (var i = 0; i < workCount; i++)
|
for (var i = 0; i < workCount; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -460,7 +486,10 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
candidates,
|
candidates,
|
||||||
endpointSelectorPolicies?.ToArray() ?? Array.Empty<IEndpointSelectorPolicy>(),
|
endpointSelectorPolicies?.ToArray() ?? Array.Empty<IEndpointSelectorPolicy>(),
|
||||||
JumpTableBuilder.Build(currentDefaultDestination, currentExitDestination, pathEntries),
|
JumpTableBuilder.Build(currentDefaultDestination, currentExitDestination, pathEntries),
|
||||||
BuildPolicy(currentExitDestination, node.NodeBuilder, policyEntries));
|
// Use the final exit destination when building the policy state.
|
||||||
|
// We don't want to use either of the current destinations because they refer routing states,
|
||||||
|
// and a policy state should never transition back to a routing state.
|
||||||
|
BuildPolicy(exitDestination, node.NodeBuilder, policyEntries));
|
||||||
|
|
||||||
return currentStateIndex;
|
return currentStateIndex;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.Internal;
|
using Microsoft.Extensions.Internal;
|
||||||
|
|
@ -21,7 +22,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
// Used in tests
|
// Used in tests
|
||||||
internal static readonly string OriginHeader = "Origin";
|
internal static readonly string OriginHeader = "Origin";
|
||||||
internal static readonly string AccessControlRequestMethod = "Access-Control-Request-Method";
|
internal static readonly string AccessControlRequestMethod = "Access-Control-Request-Method";
|
||||||
internal static readonly string PreflightHttpMethod = "OPTIONS";
|
internal static readonly string PreflightHttpMethod = HttpMethods.Options;
|
||||||
|
|
||||||
// Used in tests
|
// Used in tests
|
||||||
internal const string Http405EndpointDisplayName = "405 HTTP Method Not Supported";
|
internal const string Http405EndpointDisplayName = "405 HTTP Method Not Supported";
|
||||||
|
|
@ -133,7 +134,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
var httpMethod = httpContext.Request.Method;
|
var httpMethod = httpContext.Request.Method;
|
||||||
var headers = httpContext.Request.Headers;
|
var headers = httpContext.Request.Headers;
|
||||||
if (metadata.AcceptCorsPreflight &&
|
if (metadata.AcceptCorsPreflight &&
|
||||||
string.Equals(httpMethod, PreflightHttpMethod, StringComparison.OrdinalIgnoreCase) &&
|
HttpMethods.Equals(httpMethod, PreflightHttpMethod) &&
|
||||||
headers.ContainsKey(HeaderNames.Origin) &&
|
headers.ContainsKey(HeaderNames.Origin) &&
|
||||||
headers.TryGetValue(HeaderNames.AccessControlRequestMethod, out var accessControlRequestMethod) &&
|
headers.TryGetValue(HeaderNames.AccessControlRequestMethod, out var accessControlRequestMethod) &&
|
||||||
!StringValues.IsNullOrEmpty(accessControlRequestMethod))
|
!StringValues.IsNullOrEmpty(accessControlRequestMethod))
|
||||||
|
|
@ -146,7 +147,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
for (var j = 0; j < metadata.HttpMethods.Count; j++)
|
for (var j = 0; j < metadata.HttpMethods.Count; j++)
|
||||||
{
|
{
|
||||||
var candidateMethod = metadata.HttpMethods[j];
|
var candidateMethod = metadata.HttpMethods[j];
|
||||||
if (!string.Equals(httpMethod, candidateMethod, StringComparison.OrdinalIgnoreCase))
|
if (!HttpMethods.Equals(httpMethod, candidateMethod))
|
||||||
{
|
{
|
||||||
methods = methods ?? new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
methods = methods ?? new HashSet<string>(StringComparer.OrdinalIgnoreCase);
|
||||||
methods.Add(candidateMethod);
|
methods.Add(candidateMethod);
|
||||||
|
|
@ -396,9 +397,19 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
|
|
||||||
private static bool ContainsHttpMethod(List<string> httpMethods, string httpMethod)
|
private static bool ContainsHttpMethod(List<string> httpMethods, string httpMethod)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < httpMethods.Count; i++)
|
var methods = CollectionsMarshal.AsSpan(httpMethods);
|
||||||
|
for (var i = 0; i < methods.Length; i++)
|
||||||
{
|
{
|
||||||
if (string.Equals(httpMethods[i], httpMethod, StringComparison.OrdinalIgnoreCase))
|
// This is a fast path for when everything is using static HttpMethods instances.
|
||||||
|
if (object.ReferenceEquals(methods[i], httpMethod))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < methods.Length; i++)
|
||||||
|
{
|
||||||
|
if (HttpMethods.Equals(methods[i], httpMethod))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -437,7 +448,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
var httpMethod = httpContext.Request.Method;
|
var httpMethod = httpContext.Request.Method;
|
||||||
var headers = httpContext.Request.Headers;
|
var headers = httpContext.Request.Headers;
|
||||||
if (_supportsCorsPreflight &&
|
if (_supportsCorsPreflight &&
|
||||||
string.Equals(httpMethod, PreflightHttpMethod, StringComparison.OrdinalIgnoreCase) &&
|
HttpMethods.Equals(httpMethod, PreflightHttpMethod) &&
|
||||||
headers.ContainsKey(HeaderNames.Origin) &&
|
headers.ContainsKey(HeaderNames.Origin) &&
|
||||||
headers.TryGetValue(HeaderNames.AccessControlRequestMethod, out var accessControlRequestMethod) &&
|
headers.TryGetValue(HeaderNames.AccessControlRequestMethod, out var accessControlRequestMethod) &&
|
||||||
!StringValues.IsNullOrEmpty(accessControlRequestMethod))
|
!StringValues.IsNullOrEmpty(accessControlRequestMethod))
|
||||||
|
|
@ -499,7 +510,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
IsCorsPreflightRequest == other.IsCorsPreflightRequest &&
|
IsCorsPreflightRequest == other.IsCorsPreflightRequest &&
|
||||||
string.Equals(HttpMethod, other.HttpMethod, StringComparison.OrdinalIgnoreCase);
|
HttpMethods.Equals(HttpMethod, other.HttpMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
// This file is used by Code Analysis to maintain SuppressMessage
|
||||||
|
// attributes that are applied to this project.
|
||||||
|
// Project-level suppressions either have no target or are given
|
||||||
|
// a specific target and scoped to a namespace, type, member, etc.
|
||||||
|
|
||||||
|
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(
|
||||||
|
"Build",
|
||||||
|
"xUnit1013:Public method 'Quirks_CatchAllParameter' on test class 'FullFeaturedMatcherConformanceTest' should be marked as a Theory.",
|
||||||
|
Justification = "This is a bug in the xUnit analyzer. This method is already marked as a theory.",
|
||||||
|
Scope = "member",
|
||||||
|
Target = "~M:Microsoft.AspNetCore.Routing.Matching.FullFeaturedMatcherConformanceTest.Quirks_CatchAllParameter(System.String,System.String,System.String[],System.String[])~System.Threading.Tasks.Task")]
|
||||||
|
|
@ -460,12 +460,40 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
}
|
}
|
||||||
|
|
||||||
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
|
||||||
|
//
|
||||||
|
// This case behaves the same for all combinations.
|
||||||
[Fact]
|
[Fact]
|
||||||
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1()
|
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_CorrectBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = true;
|
||||||
|
BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
|
||||||
|
//
|
||||||
|
// This case behaves the same for all combinations.
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_DefaultBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
|
||||||
|
//
|
||||||
|
// This case behaves the same for all combinations.
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_LegacyBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = false;
|
||||||
|
BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order1_Core(DfaMatcherBuilder builder)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var builder = CreateDfaMatcherBuilder();
|
|
||||||
|
|
||||||
var endpoint1 = CreateEndpoint("a/{b}", order: 0);
|
var endpoint1 = CreateEndpoint("a/{b}", order: 0);
|
||||||
builder.AddEndpoint(endpoint1);
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
||||||
|
|
@ -504,11 +532,31 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
|
|
||||||
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
|
||||||
[Fact]
|
[Fact]
|
||||||
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2()
|
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_CorrectBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = true;
|
||||||
|
BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_CorrectBehavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_DefaultBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_LegacyBehavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_LegacyBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = false;
|
||||||
|
BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_LegacyBehavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_CorrectBehavior_Core(DfaMatcherBuilder builder)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var builder = CreateDfaMatcherBuilder();
|
|
||||||
|
|
||||||
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
|
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
|
||||||
builder.AddEndpoint(endpoint1);
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
||||||
|
|
@ -545,12 +593,49 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
Assert.Same(catchAll, catchAll.CatchAll);
|
Assert.Same(catchAll, catchAll.CatchAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void BuildDfaTree_MultipleEndpoint_ParameterAndCatchAll_OnSameNode_Order2_LegacyBehavior_Core(DfaMatcherBuilder builder)
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
|
||||||
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
||||||
|
var endpoint2 = CreateEndpoint("a/{b}", order: 1);
|
||||||
|
builder.AddEndpoint(endpoint2);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var root = builder.BuildDfaTree();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Null(root.Matches);
|
||||||
|
Assert.Null(root.Parameters);
|
||||||
|
|
||||||
|
var next = Assert.Single(root.Literals);
|
||||||
|
Assert.Equal("a", next.Key);
|
||||||
|
|
||||||
|
var a = next.Value;
|
||||||
|
Assert.Same(endpoint1, Assert.Single(a.Matches));
|
||||||
|
Assert.Null(a.Literals);
|
||||||
|
|
||||||
|
var b = a.Parameters;
|
||||||
|
Assert.Same(endpoint1, Assert.Single(a.Matches));
|
||||||
|
Assert.Null(b.Literals);
|
||||||
|
Assert.Null(b.Parameters);
|
||||||
|
Assert.Null(b.CatchAll);
|
||||||
|
|
||||||
|
var catchAll = a.CatchAll;
|
||||||
|
Assert.Same(endpoint1, Assert.Single(catchAll.Matches));
|
||||||
|
Assert.Null(catchAll.Literals);
|
||||||
|
Assert.Same(catchAll, catchAll.Parameters);
|
||||||
|
Assert.Same(catchAll, catchAll.CatchAll);
|
||||||
|
}
|
||||||
|
|
||||||
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
[Fact]
|
[Fact]
|
||||||
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1()
|
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_CorrectBehavior()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var builder = CreateDfaMatcherBuilder();
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = true;
|
||||||
|
|
||||||
var endpoint1 = CreateEndpoint("{a}/{b}", order: 0);
|
var endpoint1 = CreateEndpoint("{a}/{b}", order: 0);
|
||||||
builder.AddEndpoint(endpoint1);
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
@ -601,10 +686,11 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
|
|
||||||
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
[Fact]
|
[Fact]
|
||||||
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2()
|
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_CorrectBehavior()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var builder = CreateDfaMatcherBuilder();
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = true;
|
||||||
|
|
||||||
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
|
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
|
||||||
builder.AddEndpoint(endpoint1);
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
@ -653,6 +739,123 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
Assert.Null(b2.CatchAll);
|
Assert.Null(b2.CatchAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_DefaultBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_Legacy30Behavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_Legacy30Behavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = false;
|
||||||
|
BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_Legacy30Behavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_Legacy30Behavior_Core(DfaMatcherBuilder builder)
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var endpoint1 = CreateEndpoint("{a}/{b}", order: 0);
|
||||||
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
||||||
|
var endpoint2 = CreateEndpoint("a/{*b}", order: 1);
|
||||||
|
builder.AddEndpoint(endpoint2);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var root = builder.BuildDfaTree();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Null(root.Matches);
|
||||||
|
|
||||||
|
var next = Assert.Single(root.Literals);
|
||||||
|
Assert.Equal("a", next.Key);
|
||||||
|
|
||||||
|
var a1 = next.Value;
|
||||||
|
Assert.Same(endpoint2, Assert.Single(a1.Matches));
|
||||||
|
Assert.Null(a1.Literals);
|
||||||
|
Assert.Null(a1.Parameters);
|
||||||
|
|
||||||
|
var catchAll1 = a1.CatchAll;
|
||||||
|
Assert.Same(endpoint2, Assert.Single(catchAll1.Matches));
|
||||||
|
Assert.Null(catchAll1.Literals);
|
||||||
|
Assert.Same(catchAll1, catchAll1.Parameters);
|
||||||
|
Assert.Same(catchAll1, catchAll1.CatchAll);
|
||||||
|
|
||||||
|
var a2 = root.Parameters;
|
||||||
|
Assert.Null(a2.Matches);
|
||||||
|
Assert.Null(a2.Literals);
|
||||||
|
|
||||||
|
var b2 = a2.Parameters;
|
||||||
|
Assert.Collection(
|
||||||
|
b2.Matches,
|
||||||
|
e => Assert.Same(endpoint1, e));
|
||||||
|
Assert.Null(b2.Literals);
|
||||||
|
Assert.Null(b2.Parameters);
|
||||||
|
Assert.Null(b2.CatchAll);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_DefaultBehavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_Legacy30Behavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
[Fact]
|
||||||
|
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_Legacy30Behavior()
|
||||||
|
{
|
||||||
|
var builder = CreateDfaMatcherBuilder();
|
||||||
|
builder.UseCorrectCatchAllBehavior = false;
|
||||||
|
BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_Legacy30Behavior_Core(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_Legacy30Behavior_Core(DfaMatcherBuilder builder)
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
|
||||||
|
builder.AddEndpoint(endpoint1);
|
||||||
|
|
||||||
|
var endpoint2 = CreateEndpoint("{a}/{b}", order: 1);
|
||||||
|
builder.AddEndpoint(endpoint2);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var root = builder.BuildDfaTree();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Null(root.Matches);
|
||||||
|
|
||||||
|
var next = Assert.Single(root.Literals);
|
||||||
|
Assert.Equal("a", next.Key);
|
||||||
|
|
||||||
|
var a1 = next.Value;
|
||||||
|
Assert.Same(endpoint1, Assert.Single(a1.Matches));
|
||||||
|
Assert.Null(a1.Literals);
|
||||||
|
|
||||||
|
var b1 = a1.Parameters;
|
||||||
|
Assert.Same(endpoint2, Assert.Single(b1.Matches));
|
||||||
|
Assert.Null(b1.Literals);
|
||||||
|
Assert.Null(b1.Parameters);
|
||||||
|
Assert.Null(b1.CatchAll);
|
||||||
|
|
||||||
|
var a2 = root.Parameters;
|
||||||
|
Assert.Null(a2.Matches);
|
||||||
|
Assert.Null(a2.Literals);
|
||||||
|
|
||||||
|
var b2 = a2.Parameters;
|
||||||
|
Assert.Collection(
|
||||||
|
b2.Matches,
|
||||||
|
e => Assert.Same(endpoint2, e));
|
||||||
|
Assert.Null(b2.Literals);
|
||||||
|
Assert.Null(b2.Parameters);
|
||||||
|
Assert.Null(b2.CatchAll);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void BuildDfaTree_WithPolicies()
|
public void BuildDfaTree_WithPolicies()
|
||||||
{
|
{
|
||||||
|
|
@ -941,6 +1144,8 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
new TestMetadata2MatcherPolicy(),
|
new TestMetadata2MatcherPolicy(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var comparer = new EndpointComparer(policies.OrderBy(p => p.Order).OfType<IEndpointComparerPolicy>().ToArray());
|
||||||
|
|
||||||
var builder = CreateDfaMatcherBuilder(policies);
|
var builder = CreateDfaMatcherBuilder(policies);
|
||||||
|
|
||||||
((TestMetadata1MatcherPolicy)policies[0]).OnGetEdges = VerifyOrder;
|
((TestMetadata1MatcherPolicy)policies[0]).OnGetEdges = VerifyOrder;
|
||||||
|
|
@ -961,7 +1166,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
void VerifyOrder(IReadOnlyList<Endpoint> endpoints)
|
void VerifyOrder(IReadOnlyList<Endpoint> endpoints)
|
||||||
{
|
{
|
||||||
// The list should already be in sorted order, every time build is called.
|
// The list should already be in sorted order, every time build is called.
|
||||||
Assert.Equal(endpoints, endpoints.OrderBy(e => e, builder.Comparer));
|
Assert.Equal(endpoints, endpoints.OrderBy(e => e, comparer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing.Matching
|
namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
{
|
{
|
||||||
|
|
@ -23,7 +24,132 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
MatcherAssert.AssertMatch(httpContext, endpoint, keys, values);
|
MatcherAssert.AssertMatch(httpContext, endpoint, keys, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
[Theory]
|
||||||
|
[InlineData("/middleware", 1)]
|
||||||
|
[InlineData("/middleware/test", 1)]
|
||||||
|
[InlineData("/middleware/test1/test2", 1)]
|
||||||
|
[InlineData("/bill/boga", 0)]
|
||||||
|
public async Task Match_Regression_1867_CorrectBehavior(string path, int endpointIndex)
|
||||||
|
{
|
||||||
|
var endpoints = new RouteEndpoint[]
|
||||||
|
{
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"{firstName}/{lastName}",
|
||||||
|
order: 0,
|
||||||
|
defaults: new { controller = "TestRoute", action = "Index", }),
|
||||||
|
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"middleware/{**_}",
|
||||||
|
order: 0),
|
||||||
|
};
|
||||||
|
|
||||||
|
var expected = endpoints[endpointIndex];
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(useCorrectCatchAllBehavior: true, endpoints);
|
||||||
|
var httpContext = CreateContext(path);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
//
|
||||||
|
[Theory]
|
||||||
|
[InlineData("/middleware", 1)]
|
||||||
|
[InlineData("/middleware/test", 0)]
|
||||||
|
[InlineData("/middleware/test1/test2", -1)]
|
||||||
|
[InlineData("/bill/boga", 0)]
|
||||||
|
public async Task Match_Regression_1867_DefaultBehavior(string path, int endpointIndex)
|
||||||
|
{
|
||||||
|
var endpoints = new RouteEndpoint[]
|
||||||
|
{
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"{firstName}/{lastName}",
|
||||||
|
order: 0,
|
||||||
|
defaults: new { controller = "TestRoute", action = "Index", }),
|
||||||
|
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"middleware/{**_}",
|
||||||
|
order: 0),
|
||||||
|
};
|
||||||
|
|
||||||
|
var expected = endpointIndex switch
|
||||||
|
{
|
||||||
|
-1 => null,
|
||||||
|
_ => endpoints[endpointIndex],
|
||||||
|
};
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(useCorrectCatchAllBehavior: default, endpoints);
|
||||||
|
var httpContext = CreateContext(path);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
if (expected == null)
|
||||||
|
{
|
||||||
|
MatcherAssert.AssertNotMatch(httpContext);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
//
|
||||||
|
[Theory]
|
||||||
|
[InlineData("/middleware", 1)]
|
||||||
|
[InlineData("/middleware/test", 0)]
|
||||||
|
[InlineData("/middleware/test1/test2", -1)]
|
||||||
|
[InlineData("/bill/boga", 0)]
|
||||||
|
public async Task Match_Regression_1867_LegacyBehavior(string path, int endpointIndex)
|
||||||
|
{
|
||||||
|
var endpoints = new RouteEndpoint[]
|
||||||
|
{
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"{firstName}/{lastName}",
|
||||||
|
order: 0,
|
||||||
|
defaults: new { controller = "TestRoute", action = "Index", }),
|
||||||
|
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"middleware/{**_}",
|
||||||
|
order: 0),
|
||||||
|
};
|
||||||
|
|
||||||
|
var expected = endpointIndex switch
|
||||||
|
{
|
||||||
|
-1 => null,
|
||||||
|
_ => endpoints[endpointIndex],
|
||||||
|
};
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(useCorrectCatchAllBehavior: false, endpoints);
|
||||||
|
var httpContext = CreateContext(path);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
if (expected == null)
|
||||||
|
{
|
||||||
|
MatcherAssert.AssertNotMatch(httpContext);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal override Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
internal override Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
||||||
|
{
|
||||||
|
return CreateMatcher(useCorrectCatchAllBehavior: default, endpoints);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal Matcher CreateMatcher(bool? useCorrectCatchAllBehavior, params RouteEndpoint[] endpoints)
|
||||||
{
|
{
|
||||||
var services = new ServiceCollection()
|
var services = new ServiceCollection()
|
||||||
.AddLogging()
|
.AddLogging()
|
||||||
|
|
@ -32,6 +158,11 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
.BuildServiceProvider();
|
.BuildServiceProvider();
|
||||||
|
|
||||||
var builder = services.GetRequiredService<DfaMatcherBuilder>();
|
var builder = services.GetRequiredService<DfaMatcherBuilder>();
|
||||||
|
if (useCorrectCatchAllBehavior.HasValue)
|
||||||
|
{
|
||||||
|
builder.UseCorrectCatchAllBehavior = useCorrectCatchAllBehavior.Value;
|
||||||
|
}
|
||||||
|
|
||||||
for (var i = 0; i < endpoints.Length; i++)
|
for (var i = 0; i < endpoints.Length; i++)
|
||||||
{
|
{
|
||||||
builder.AddEndpoint(endpoints[i]);
|
builder.AddEndpoint(endpoints[i]);
|
||||||
|
|
|
||||||
|
|
@ -504,37 +504,5 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
// Assert
|
// Assert
|
||||||
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://github.com/dotnet/aspnetcore/issues/18677
|
|
||||||
[Theory]
|
|
||||||
[InlineData("/middleware", 1)]
|
|
||||||
[InlineData("/middleware/test", 1)]
|
|
||||||
[InlineData("/middleware/test1/test2", 1)]
|
|
||||||
[InlineData("/bill/boga", 0)]
|
|
||||||
public virtual async Task Match_Regression_18677(string path, int endpointIndex)
|
|
||||||
{
|
|
||||||
var endpoints = new RouteEndpoint[]
|
|
||||||
{
|
|
||||||
EndpointFactory.CreateRouteEndpoint(
|
|
||||||
"{firstName}/{lastName}",
|
|
||||||
order: 0,
|
|
||||||
defaults: new { controller = "TestRoute", action = "Index", }),
|
|
||||||
|
|
||||||
EndpointFactory.CreateRouteEndpoint(
|
|
||||||
"middleware/{**_}",
|
|
||||||
order: 0),
|
|
||||||
};
|
|
||||||
|
|
||||||
var expected = endpoints[endpointIndex];
|
|
||||||
|
|
||||||
var matcher = CreateMatcher(endpoints);
|
|
||||||
var httpContext = CreateContext(path);
|
|
||||||
|
|
||||||
// Act
|
|
||||||
await matcher.MatchAsync(httpContext);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -337,6 +337,38 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
MatcherAssert.AssertMatch(httpContext, endpoint);
|
MatcherAssert.AssertMatch(httpContext, endpoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Match_CatchAllRouteWithMatchingHost_Success()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var endpoint = CreateEndpoint("/{**path}", hosts: new string[] { "contoso.com", });
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(endpoint);
|
||||||
|
var httpContext = CreateContext("/hello", "contoso.com");
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
MatcherAssert.AssertMatch(httpContext, endpoint, new { path = "hello" });
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Match_CatchAllRouteFailureHost_NoMatch()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var endpoint = CreateEndpoint("/{**path}", hosts: new string[] { "contoso.com", });
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(endpoint);
|
||||||
|
var httpContext = CreateContext("/hello", "nomatch.com");
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
MatcherAssert.AssertNotMatch(httpContext);
|
||||||
|
}
|
||||||
|
|
||||||
private static Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
private static Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
||||||
{
|
{
|
||||||
var services = new ServiceCollection()
|
var services = new ServiceCollection()
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,46 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Routing.Matching
|
namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
{
|
{
|
||||||
public class RouteMatcherConformanceTest : FullFeaturedMatcherConformanceTest
|
public class RouteMatcherConformanceTest : FullFeaturedMatcherConformanceTest
|
||||||
{
|
{
|
||||||
|
// https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
//
|
||||||
|
[Theory]
|
||||||
|
[InlineData("/middleware", 1)]
|
||||||
|
[InlineData("/middleware/test", 1)]
|
||||||
|
[InlineData("/middleware/test1/test2", 1)]
|
||||||
|
[InlineData("/bill/boga", 0)]
|
||||||
|
public async Task Match_Regression_1867(string path, int endpointIndex)
|
||||||
|
{
|
||||||
|
var endpoints = new RouteEndpoint[]
|
||||||
|
{
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"{firstName}/{lastName}",
|
||||||
|
order: 0,
|
||||||
|
defaults: new { controller = "TestRoute", action = "Index", }),
|
||||||
|
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"middleware/{**_}",
|
||||||
|
order: 0),
|
||||||
|
};
|
||||||
|
|
||||||
|
var expected = endpoints[endpointIndex];
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(endpoints);
|
||||||
|
var httpContext = CreateContext(path);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
||||||
|
}
|
||||||
|
|
||||||
internal override Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
internal override Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
||||||
{
|
{
|
||||||
var builder = new RouteMatcherBuilder();
|
var builder = new RouteMatcherBuilder();
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
@ -22,6 +22,39 @@ namespace Microsoft.AspNetCore.Routing.Matching
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://github.com/dotnet/aspnetcore/issues/18677
|
||||||
|
//
|
||||||
|
[Theory]
|
||||||
|
[InlineData("/middleware", 1)]
|
||||||
|
[InlineData("/middleware/test", 1)]
|
||||||
|
[InlineData("/middleware/test1/test2", 1)]
|
||||||
|
[InlineData("/bill/boga", 0)]
|
||||||
|
public async Task Match_Regression_1867(string path, int endpointIndex)
|
||||||
|
{
|
||||||
|
var endpoints = new RouteEndpoint[]
|
||||||
|
{
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"{firstName}/{lastName}",
|
||||||
|
order: 0,
|
||||||
|
defaults: new { controller = "TestRoute", action = "Index", }),
|
||||||
|
|
||||||
|
EndpointFactory.CreateRouteEndpoint(
|
||||||
|
"middleware/{**_}",
|
||||||
|
order: 0),
|
||||||
|
};
|
||||||
|
|
||||||
|
var expected = endpoints[endpointIndex];
|
||||||
|
|
||||||
|
var matcher = CreateMatcher(endpoints);
|
||||||
|
var httpContext = CreateContext(path);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await matcher.MatchAsync(httpContext);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
MatcherAssert.AssertMatch(httpContext, expected, ignoreValues: true);
|
||||||
|
}
|
||||||
|
|
||||||
internal override Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
internal override Matcher CreateMatcher(params RouteEndpoint[] endpoints)
|
||||||
{
|
{
|
||||||
var builder = new TreeRouterMatcherBuilder();
|
var builder = new TreeRouterMatcherBuilder();
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -49,7 +49,7 @@ namespace Swaggatherer
|
||||||
|
|
||||||
if (entry.Method != null)
|
if (entry.Method != null)
|
||||||
{
|
{
|
||||||
setupRequestsLines.Add($" Requests[{i}].Request.Method = \"{entries[i].Method.ToUpperInvariant()}\";");
|
setupRequestsLines.Add($" Requests[{i}].Request.Method = HttpMethods.GetCanonicalizedValue({entries[i].Method});");
|
||||||
}
|
}
|
||||||
|
|
||||||
setupRequestsLines.Add($" Requests[{i}].Request.Path = \"{entries[i].RequestUrl}\";");
|
setupRequestsLines.Add($" Requests[{i}].Request.Path = \"{entries[i].RequestUrl}\";");
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,6 @@ namespace Microsoft.AspNetCore.WebUtilities
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute]
|
[System.Diagnostics.DebuggerStepThroughAttribute]
|
||||||
public override System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
|
public override System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute]
|
[System.Diagnostics.DebuggerStepThroughAttribute]
|
||||||
public System.Threading.Tasks.Task DrainBufferAsync(System.IO.Pipelines.PipeWriter destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute]
|
|
||||||
public System.Threading.Tasks.Task DrainBufferAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
|
public System.Threading.Tasks.Task DrainBufferAsync(System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
|
||||||
public override void Flush() { }
|
public override void Flush() { }
|
||||||
public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
|
public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||||
|
|
|
||||||
|
|
@ -186,25 +186,8 @@ namespace Microsoft.AspNetCore.WebUtilities
|
||||||
// unspooled content. Copy the FileStream content first when available.
|
// unspooled content. Copy the FileStream content first when available.
|
||||||
if (FileStream != null)
|
if (FileStream != null)
|
||||||
{
|
{
|
||||||
// We make a new stream for async reads from disk and async writes to the destination
|
await FileStream.FlushAsync(cancellationToken);
|
||||||
await using var readStream = new FileStream(FileStream.Name, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite, bufferSize: 1, useAsync: true);
|
|
||||||
|
|
||||||
await readStream.CopyToAsync(destination, cancellationToken);
|
|
||||||
|
|
||||||
// This is created with delete on close
|
|
||||||
await FileStream.DisposeAsync();
|
|
||||||
FileStream = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
await PagedByteBuffer.MoveToAsync(destination, cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task DrainBufferAsync(PipeWriter destination, CancellationToken cancellationToken = default)
|
|
||||||
{
|
|
||||||
// When not null, FileStream always has "older" spooled content. The PagedByteBuffer always has "newer"
|
|
||||||
// unspooled content. Copy the FileStream content first when available.
|
|
||||||
if (FileStream != null)
|
|
||||||
{
|
|
||||||
// We make a new stream for async reads from disk and async writes to the destination
|
// We make a new stream for async reads from disk and async writes to the destination
|
||||||
await using var readStream = new FileStream(FileStream.Name, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite, bufferSize: 1, useAsync: true);
|
await using var readStream = new FileStream(FileStream.Name, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite, bufferSize: 1, useAsync: true);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -371,6 +371,24 @@ namespace Microsoft.AspNetCore.WebUtilities
|
||||||
Assert.Equal(0, bufferingStream.Length);
|
Assert.Equal(0, bufferingStream.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task DrainBufferAsync_IncludesContentPossiblyBufferedByFileStream()
|
||||||
|
{
|
||||||
|
// We want to ensure that the FileStream (which has a 1-byte buffer) flushes prior to the other read stream reading input.
|
||||||
|
// Arrange
|
||||||
|
var input = new byte[] { 3, };
|
||||||
|
using var bufferingStream = new FileBufferingWriteStream(0, tempFileDirectoryAccessor: () => TempDirectory);
|
||||||
|
bufferingStream.Write(input, 0, input.Length);
|
||||||
|
var memoryStream = new MemoryStream();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await bufferingStream.DrainBufferAsync(memoryStream, default);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal(input, memoryStream.ToArray());
|
||||||
|
Assert.Equal(0, bufferingStream.Length);
|
||||||
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
||||||
|
|
@ -1450,6 +1450,7 @@ namespace Microsoft.AspNetCore.Identity.Test
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Task</returns>
|
/// <returns>Task</returns>
|
||||||
[Fact]
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
public async Task ChangePhoneNumberFailsWithWrongPhoneNumber()
|
public async Task ChangePhoneNumberFailsWithWrongPhoneNumber()
|
||||||
{
|
{
|
||||||
var manager = CreateManager();
|
var manager = CreateManager();
|
||||||
|
|
@ -1485,8 +1486,8 @@ namespace Microsoft.AspNetCore.Identity.Test
|
||||||
Assert.NotEqual(token1, token2);
|
Assert.NotEqual(token1, token2);
|
||||||
Assert.True(await manager.VerifyChangePhoneNumberTokenAsync(user, token1, num1));
|
Assert.True(await manager.VerifyChangePhoneNumberTokenAsync(user, token1, num1));
|
||||||
Assert.True(await manager.VerifyChangePhoneNumberTokenAsync(user, token2, num2));
|
Assert.True(await manager.VerifyChangePhoneNumberTokenAsync(user, token2, num2));
|
||||||
Assert.False(await manager.VerifyChangePhoneNumberTokenAsync(user, token2, num1));
|
Assert.False(await manager.VerifyChangePhoneNumberTokenAsync(user, "bogus", num1));
|
||||||
Assert.False(await manager.VerifyChangePhoneNumberTokenAsync(user, token1, num2));
|
Assert.False(await manager.VerifyChangePhoneNumberTokenAsync(user, "bogus", num2));
|
||||||
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: ChangePhoneNumber:{num1} for user {await manager.GetUserIdAsync(user)}.");
|
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: ChangePhoneNumber:{num1} for user {await manager.GetUserIdAsync(user)}.");
|
||||||
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: ChangePhoneNumber:{num2} for user {await manager.GetUserIdAsync(user)}.");
|
IdentityResultAssert.VerifyLogMessage(manager.Logger, $"VerifyUserTokenAsync() failed with purpose: ChangePhoneNumber:{num2} for user {await manager.GetUserIdAsync(user)}.");
|
||||||
}
|
}
|
||||||
|
|
@ -1518,6 +1519,7 @@ namespace Microsoft.AspNetCore.Identity.Test
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Task</returns>
|
/// <returns>Task</returns>
|
||||||
[Fact]
|
[Fact]
|
||||||
|
[QuarantinedTest]
|
||||||
public async Task CanChangeEmailOnlyIfEmailSame()
|
public async Task CanChangeEmailOnlyIfEmailSame()
|
||||||
{
|
{
|
||||||
var manager = CreateManager();
|
var manager = CreateManager();
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ namespace Microsoft.AspNetCore.Identity.Test
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(ScriptWithIntegrityData))]
|
[MemberData(nameof(ScriptWithIntegrityData))]
|
||||||
[QuarantinedTest]
|
|
||||||
public async Task IdentityUI_ScriptTags_SubresourceIntegrityCheck(ScriptTag scriptTag)
|
public async Task IdentityUI_ScriptTags_SubresourceIntegrityCheck(ScriptTag scriptTag)
|
||||||
{
|
{
|
||||||
var integrity = await GetShaIntegrity(scriptTag);
|
var integrity = await GetShaIntegrity(scriptTag);
|
||||||
|
|
@ -80,7 +79,6 @@ namespace Microsoft.AspNetCore.Identity.Test
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(ScriptWithFallbackSrcData))]
|
[MemberData(nameof(ScriptWithFallbackSrcData))]
|
||||||
[QuarantinedTest("https://github.com/dotnet/aspnetcore-internal/issues/2267")]
|
|
||||||
public async Task IdentityUI_ScriptTags_FallbackSourceContent_Matches_CDNContent(ScriptTag scriptTag)
|
public async Task IdentityUI_ScriptTags_FallbackSourceContent_Matches_CDNContent(ScriptTag scriptTag)
|
||||||
{
|
{
|
||||||
var wwwrootDir = Path.Combine(GetProjectBasePath(), "wwwroot", scriptTag.Version);
|
var wwwrootDir = Path.Combine(GetProjectBasePath(), "wwwroot", scriptTag.Version);
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,11 @@
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PackageFileName>$(RuntimeInstallerBaseName)-$(PackageVersion)-win-$(Platform)$(TargetExt)</PackageFileName>
|
<!-- Everything built in this project _except_ the final package & MSI are shipping assets. -->
|
||||||
|
<_GeneratedPackageVersion>$(PackageVersion)</_GeneratedPackageVersion>
|
||||||
|
<_GeneratedPackageVersion
|
||||||
|
Condition="! $(PackageVersion.Contains('$(_PreReleaseLabel)'))">$(PackageVersion)-$(_PreReleaseLabel)$(_BuildNumberLabels)</_GeneratedPackageVersion>
|
||||||
|
<PackageFileName>$(RuntimeInstallerBaseName)-$(_GeneratedPackageVersion)-win-$(Platform)$(TargetExt)</PackageFileName>
|
||||||
<ProductName>Microsoft ASP.NET Core $(PackageBrandingVersion) Shared Framework ($(Platform))</ProductName>
|
<ProductName>Microsoft ASP.NET Core $(PackageBrandingVersion) Shared Framework ($(Platform))</ProductName>
|
||||||
<DefineConstants>$(DefineConstants);ProductName=$(ProductName)</DefineConstants>
|
<DefineConstants>$(DefineConstants);ProductName=$(ProductName)</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
@ -84,11 +88,6 @@
|
||||||
<Target Name="CreateSharedFrameworkNugetPackage" AfterTargets="CopyToArtifactsDirectory;Build">
|
<Target Name="CreateSharedFrameworkNugetPackage" AfterTargets="CopyToArtifactsDirectory;Build">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<MsiFullPath>$(InstallersOutputPath)$(PackageFileName)</MsiFullPath>
|
<MsiFullPath>$(InstallersOutputPath)$(PackageFileName)</MsiFullPath>
|
||||||
|
|
||||||
<!-- Everything built in this project _except_ the final package are shipping assets. -->
|
|
||||||
<_GeneratedPackageVersion>$(PackageVersion)</_GeneratedPackageVersion>
|
|
||||||
<_GeneratedPackageVersion
|
|
||||||
Condition="! $(PackageVersion.Contains('$(_PreReleaseLabel)'))">$(PackageVersion)-$(_PreReleaseLabel)$(_BuildNumberLabels)</_GeneratedPackageVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Exec Command="powershell -NoProfile -NoLogo $(GenerateNupkgPowershellScript) ^
|
<Exec Command="powershell -NoProfile -NoLogo $(GenerateNupkgPowershellScript) ^
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,12 @@
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
<!-- Everything built in this project _except_ the final package are shipping assets. -->
|
||||||
|
<_GeneratedPackageVersion>$(PackageVersion)</_GeneratedPackageVersion>
|
||||||
|
<_GeneratedPackageVersion
|
||||||
|
Condition="! $(PackageVersion.Contains('$(_PreReleaseLabel)'))">$(PackageVersion)-$(_PreReleaseLabel)$(_BuildNumberLabels)</_GeneratedPackageVersion>
|
||||||
<ProductName>Microsoft ASP.NET Core $(PackageBrandingVersion) Targeting Pack ($(Platform))</ProductName>
|
<ProductName>Microsoft ASP.NET Core $(PackageBrandingVersion) Targeting Pack ($(Platform))</ProductName>
|
||||||
<PackageFileName>$(TargetingPackInstallerBaseName)-$(PackageVersion)-win-$(Platform)$(TargetExt)</PackageFileName>
|
<PackageFileName>$(TargetingPackInstallerBaseName)-$(_GeneratedPackageVersion)-win-$(Platform)$(TargetExt)</PackageFileName>
|
||||||
<DefineConstants>$(DefineConstants);ProductName=$(ProductName)</DefineConstants>
|
<DefineConstants>$(DefineConstants);ProductName=$(ProductName)</DefineConstants>
|
||||||
|
|
||||||
<!-- Suppresses building this project completely during servicing builds. -->
|
<!-- Suppresses building this project completely during servicing builds. -->
|
||||||
|
|
@ -82,11 +86,6 @@
|
||||||
Condition="'$(IsTargetingPackBuilding)' != 'false'">
|
Condition="'$(IsTargetingPackBuilding)' != 'false'">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<MsiFullPath>$(InstallersOutputPath)$(PackageFileName)</MsiFullPath>
|
<MsiFullPath>$(InstallersOutputPath)$(PackageFileName)</MsiFullPath>
|
||||||
|
|
||||||
<!-- Everything built in this project _except_ the final package are shipping assets. -->
|
|
||||||
<_GeneratedPackageVersion>$(PackageVersion)</_GeneratedPackageVersion>
|
|
||||||
<_GeneratedPackageVersion
|
|
||||||
Condition="! $(PackageVersion.Contains('$(_PreReleaseLabel)'))">$(PackageVersion)-$(_PreReleaseLabel)$(_BuildNumberLabels)</_GeneratedPackageVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Exec Command="powershell -NoProfile -NoLogo $(GenerateNupkgPowershellScript) ^
|
<Exec Command="powershell -NoProfile -NoLogo $(GenerateNupkgPowershellScript) ^
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<GuidInputs>$(Version);$(Platform);$(VersionSuffix)</GuidInputs>
|
<GuidInputs>$(Version);$(Platform);$(VersionSuffix);$(_BuildNumberLabels)</GuidInputs>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Target Name="GenerateGUIDs" BeforeTargets="BeforeBuild" DependsOnTargets="_GeneratePackageGuids;_GenerateBundleGuids" Condition=" '$(DisableGuidGeneration)' != 'true' " />
|
<Target Name="GenerateGUIDs" BeforeTargets="BeforeBuild" DependsOnTargets="_GeneratePackageGuids;_GenerateBundleGuids" Condition=" '$(DisableGuidGeneration)' != 'true' " />
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ namespace Microsoft.AspNetCore.NodeServices.Util
|
||||||
// get the rest
|
// get the rest
|
||||||
if (lineBreakPos < 0 && startPos < chunkLength)
|
if (lineBreakPos < 0 && startPos < chunkLength)
|
||||||
{
|
{
|
||||||
_linesBuffer.Append(buf, startPos, chunkLength);
|
_linesBuffer.Append(buf, startPos, chunkLength - startPos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -261,7 +261,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
||||||
if (fileBufferingWriteStream != null)
|
if (fileBufferingWriteStream != null)
|
||||||
{
|
{
|
||||||
response.ContentLength = fileBufferingWriteStream.Length;
|
response.ContentLength = fileBufferingWriteStream.Length;
|
||||||
await fileBufferingWriteStream.DrainBufferAsync(response.BodyWriter);
|
await fileBufferingWriteStream.DrainBufferAsync(response.Body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
||||||
{
|
{
|
||||||
private readonly IArrayPool<char> _charPool;
|
private readonly IArrayPool<char> _charPool;
|
||||||
private readonly MvcOptions _mvcOptions;
|
private readonly MvcOptions _mvcOptions;
|
||||||
|
private JsonSerializerSettings _serializerSettings;
|
||||||
// Perf: JsonSerializers are relatively expensive to create, and are thread safe. We cache
|
|
||||||
// the serializer and invalidate it when the settings change.
|
|
||||||
private JsonSerializer _serializer;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new <see cref="NewtonsoftJsonOutputFormatter"/> instance.
|
/// Initializes a new <see cref="NewtonsoftJsonOutputFormatter"/> instance.
|
||||||
|
|
@ -99,12 +96,13 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
||||||
/// <returns>The <see cref="JsonSerializer"/> used during serialization and deserialization.</returns>
|
/// <returns>The <see cref="JsonSerializer"/> used during serialization and deserialization.</returns>
|
||||||
protected virtual JsonSerializer CreateJsonSerializer()
|
protected virtual JsonSerializer CreateJsonSerializer()
|
||||||
{
|
{
|
||||||
if (_serializer == null)
|
if (_serializerSettings == null)
|
||||||
{
|
{
|
||||||
_serializer = JsonSerializer.Create(SerializerSettings);
|
// Lock the serializer settings once the first serialization has been initiated.
|
||||||
|
_serializerSettings = ShallowCopy(SerializerSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _serializer;
|
return JsonSerializer.Create(_serializerSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -155,7 +153,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
||||||
if (fileBufferingWriteStream != null)
|
if (fileBufferingWriteStream != null)
|
||||||
{
|
{
|
||||||
response.ContentLength = fileBufferingWriteStream.Length;
|
response.ContentLength = fileBufferingWriteStream.Length;
|
||||||
await fileBufferingWriteStream.DrainBufferAsync(response.BodyWriter);
|
await fileBufferingWriteStream.DrainBufferAsync(response.Body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
|
@ -166,5 +164,43 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static JsonSerializerSettings ShallowCopy(JsonSerializerSettings settings)
|
||||||
|
{
|
||||||
|
var copiedSettings = new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
FloatParseHandling = settings.FloatParseHandling,
|
||||||
|
FloatFormatHandling = settings.FloatFormatHandling,
|
||||||
|
DateParseHandling = settings.DateParseHandling,
|
||||||
|
DateTimeZoneHandling = settings.DateTimeZoneHandling,
|
||||||
|
DateFormatHandling = settings.DateFormatHandling,
|
||||||
|
Formatting = settings.Formatting,
|
||||||
|
MaxDepth = settings.MaxDepth,
|
||||||
|
DateFormatString = settings.DateFormatString,
|
||||||
|
Context = settings.Context,
|
||||||
|
Error = settings.Error,
|
||||||
|
SerializationBinder = settings.SerializationBinder,
|
||||||
|
TraceWriter = settings.TraceWriter,
|
||||||
|
Culture = settings.Culture,
|
||||||
|
ReferenceResolverProvider = settings.ReferenceResolverProvider,
|
||||||
|
EqualityComparer = settings.EqualityComparer,
|
||||||
|
ContractResolver = settings.ContractResolver,
|
||||||
|
ConstructorHandling = settings.ConstructorHandling,
|
||||||
|
TypeNameAssemblyFormatHandling = settings.TypeNameAssemblyFormatHandling,
|
||||||
|
MetadataPropertyHandling = settings.MetadataPropertyHandling,
|
||||||
|
TypeNameHandling = settings.TypeNameHandling,
|
||||||
|
PreserveReferencesHandling = settings.PreserveReferencesHandling,
|
||||||
|
Converters = settings.Converters,
|
||||||
|
DefaultValueHandling = settings.DefaultValueHandling,
|
||||||
|
NullValueHandling = settings.NullValueHandling,
|
||||||
|
ObjectCreationHandling = settings.ObjectCreationHandling,
|
||||||
|
MissingMemberHandling = settings.MissingMemberHandling,
|
||||||
|
ReferenceLoopHandling = settings.ReferenceLoopHandling,
|
||||||
|
CheckAdditionalContent = settings.CheckAdditionalContent,
|
||||||
|
StringEscapeHandling = settings.StringEscapeHandling,
|
||||||
|
};
|
||||||
|
|
||||||
|
return copiedSettings;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -326,6 +326,40 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
||||||
Assert.NotNull(outputFormatterContext.HttpContext.Response.ContentLength);
|
Assert.NotNull(outputFormatterContext.HttpContext.Response.ContentLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task SerializingWithPreserveReferenceHandling()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var expected = "{\"$id\":\"1\",\"fullName\":\"John\",\"age\":35}";
|
||||||
|
var user = new User { FullName = "John", age = 35 };
|
||||||
|
|
||||||
|
var settings = new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
ContractResolver = new DefaultContractResolver
|
||||||
|
{
|
||||||
|
NamingStrategy = new CamelCaseNamingStrategy(),
|
||||||
|
},
|
||||||
|
PreserveReferencesHandling = PreserveReferencesHandling.All,
|
||||||
|
};
|
||||||
|
var formatter = new TestableJsonOutputFormatter(settings);
|
||||||
|
|
||||||
|
for (var i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
// Act
|
||||||
|
var context = GetOutputFormatterContext(user, typeof(User));
|
||||||
|
await formatter.WriteResponseBodyAsync(context, Encoding.UTF8);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
var body = context.HttpContext.Response.Body;
|
||||||
|
|
||||||
|
Assert.NotNull(body);
|
||||||
|
body.Position = 0;
|
||||||
|
|
||||||
|
var content = new StreamReader(body, Encoding.UTF8).ReadToEnd();
|
||||||
|
Assert.Equal(expected, content);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class TestableJsonOutputFormatter : NewtonsoftJsonOutputFormatter
|
private class TestableJsonOutputFormatter : NewtonsoftJsonOutputFormatter
|
||||||
{
|
{
|
||||||
public TestableJsonOutputFormatter(JsonSerializerSettings serializerSettings)
|
public TestableJsonOutputFormatter(JsonSerializerSettings serializerSettings)
|
||||||
|
|
|
||||||
|
|
@ -154,15 +154,17 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
|
||||||
Assert.Equal(expected, await response.Content.ReadAsStringAsync());
|
Assert.Equal(expected, await response.Content.ReadAsStringAsync());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public virtual async Task Formatting_LargeObject()
|
[InlineData(65 * 1024)]
|
||||||
|
[InlineData(2 * 1024 * 1024)]
|
||||||
|
public virtual async Task Formatting_LargeObject(int size)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var expectedName = "This is long so we can test large objects " + new string('a', 1024 * 65);
|
var expectedName = "This is long so we can test large objects " + new string('a', size);
|
||||||
var expected = $"{{\"id\":10,\"name\":\"{expectedName}\",\"streetName\":null}}";
|
var expected = $"{{\"id\":10,\"name\":\"{expectedName}\",\"streetName\":null}}";
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await Client.GetAsync($"/JsonOutputFormatter/{nameof(JsonOutputFormatterController.LargeObjectResult)}");
|
var response = await Client.GetAsync($"/JsonOutputFormatter/{nameof(JsonOutputFormatterController.LargeObjectResult)}/{size}");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
await response.AssertStatusCodeAsync(HttpStatusCode.OK);
|
await response.AssertStatusCodeAsync(HttpStatusCode.OK);
|
||||||
|
|
|
||||||
|
|
@ -44,12 +44,12 @@ namespace FormatterWebSite.Controllers
|
||||||
["Key3"] = null,
|
["Key3"] = null,
|
||||||
};
|
};
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet("{size:int}")]
|
||||||
public ActionResult<SimpleModel> LargeObjectResult() =>
|
public ActionResult<SimpleModel> LargeObjectResult(int size) =>
|
||||||
new SimpleModel
|
new SimpleModel
|
||||||
{
|
{
|
||||||
Id = 10,
|
Id = 10,
|
||||||
Name = "This is long so we can test large objects " + new string('a', 1024 * 65),
|
Name = "This is long so we can test large objects " + new string('a', size),
|
||||||
};
|
};
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
@ -24,7 +26,7 @@ namespace Templates.Test
|
||||||
|
|
||||||
public Project Project { get; private set; }
|
public Project Project { get; private set; }
|
||||||
|
|
||||||
[ConditionalFact(Skip = "This test ran for over an hour")]
|
[Fact]
|
||||||
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/20172")]
|
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/20172")]
|
||||||
public async Task BlazorServerTemplateWorks_NoAuth()
|
public async Task BlazorServerTemplateWorks_NoAuth()
|
||||||
{
|
{
|
||||||
|
|
@ -137,9 +139,23 @@ namespace Templates.Test
|
||||||
|
|
||||||
private void TestBasicNavigation()
|
private void TestBasicNavigation()
|
||||||
{
|
{
|
||||||
// Give components.server enough time to load so that it can replace
|
var retries = 3;
|
||||||
// the prerendered content before we start making assertions.
|
var connected = false;
|
||||||
Thread.Sleep(5000);
|
do
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Browser.Contains("Information: WebSocket connected to",
|
||||||
|
() => string.Join(Environment.NewLine, Browser.GetBrowserLogs(LogLevel.Info).Select(b => b.Message)));
|
||||||
|
connected = true;
|
||||||
|
}
|
||||||
|
catch (TimeoutException) when(retries-- > 0)
|
||||||
|
{
|
||||||
|
Browser.Navigate().Refresh();
|
||||||
|
}
|
||||||
|
} while (!connected && retries > 0);
|
||||||
|
|
||||||
|
|
||||||
Browser.Exists(By.TagName("ul"));
|
Browser.Exists(By.TagName("ul"));
|
||||||
// <title> element gets project ID injected into it during template execution
|
// <title> element gets project ID injected into it during template execution
|
||||||
Browser.Equal(Project.ProjectName.Trim(), () => Browser.Title.Trim());
|
Browser.Equal(Project.ProjectName.Trim(), () => Browser.Title.Trim());
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@
|
||||||
"Web.ItemTemplates\\Microsoft.DotNet.Web.ItemTemplates.csproj",
|
"Web.ItemTemplates\\Microsoft.DotNet.Web.ItemTemplates.csproj",
|
||||||
"Web.ProjectTemplates\\Microsoft.DotNet.Web.ProjectTemplates.csproj",
|
"Web.ProjectTemplates\\Microsoft.DotNet.Web.ProjectTemplates.csproj",
|
||||||
"Web.Spa.ProjectTemplates\\Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj",
|
"Web.Spa.ProjectTemplates\\Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj",
|
||||||
"test\\ProjectTemplates.Tests.csproj"
|
"test\\ProjectTemplates.Tests.csproj",
|
||||||
|
"BlazorTemplates.Tests\\BlazorTemplates.Tests.csproj"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -44,7 +44,7 @@ namespace Templates.Test.Helpers
|
||||||
string workingDirectory,
|
string workingDirectory,
|
||||||
string dllPath,
|
string dllPath,
|
||||||
IDictionary<string, string> environmentVariables,
|
IDictionary<string, string> environmentVariables,
|
||||||
bool published = true,
|
bool published,
|
||||||
bool hasListeningUri = true,
|
bool hasListeningUri = true,
|
||||||
ILogger logger = null)
|
ILogger logger = null)
|
||||||
{
|
{
|
||||||
|
|
@ -63,9 +63,9 @@ namespace Templates.Test.Helpers
|
||||||
Timeout = TimeSpan.FromMinutes(2)
|
Timeout = TimeSpan.FromMinutes(2)
|
||||||
};
|
};
|
||||||
|
|
||||||
output.WriteLine("Running ASP.NET application...");
|
output.WriteLine("Running ASP.NET Core application...");
|
||||||
|
|
||||||
var arguments = published ? $"exec {dllPath}" : "run";
|
var arguments = published ? $"exec {dllPath}" : "run --no-build";
|
||||||
|
|
||||||
logger?.LogInformation($"AspNetProcess - process: {DotNetMuxer.MuxerPathOrDefault()} arguments: {arguments}");
|
logger?.LogInformation($"AspNetProcess - process: {DotNetMuxer.MuxerPathOrDefault()} arguments: {arguments}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ namespace Templates.Test.Helpers
|
||||||
|
|
||||||
public async Task WaitAsync(TimeSpan? timeout = null)
|
public async Task WaitAsync(TimeSpan? timeout = null)
|
||||||
{
|
{
|
||||||
timeout ??= TimeSpan.FromMinutes(2);
|
timeout ??= TimeSpan.FromMinutes(20);
|
||||||
Assert.True(await Semaphore.WaitAsync(timeout.Value), $"Unable to acquire process lock for process {Name}");
|
Assert.True(await Semaphore.WaitAsync(timeout.Value), $"Unable to acquire process lock for process {Name}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,48 +109,30 @@ namespace Templates.Test.Helpers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal async Task<ProcessResult> RunDotNetPublishAsync(bool takeNodeLock = false, IDictionary<string, string> packageOptions = null, string additionalArgs = null)
|
internal async Task<ProcessResult> RunDotNetPublishAsync(IDictionary<string, string> packageOptions = null, string additionalArgs = null)
|
||||||
{
|
{
|
||||||
Output.WriteLine("Publishing ASP.NET application...");
|
Output.WriteLine("Publishing ASP.NET Core application...");
|
||||||
|
|
||||||
// This is going to trigger a build, so we need to acquire the lock like in the other cases.
|
// Avoid restoring as part of build or publish. These projects should have already restored as part of running dotnet new. Explicitly disabling restore
|
||||||
// We want to take the node lock as some builds run NPM as part of the build and we want to make sure
|
// should avoid any global contention and we can execute a build or publish in a lock-free way
|
||||||
// it's run without interruptions.
|
|
||||||
var effectiveLock = takeNodeLock ? new OrderedLock(NodeLock, DotNetNewLock) : new OrderedLock(nodeLock: null, DotNetNewLock);
|
using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"publish --no-restore -c Release /bl {additionalArgs}", packageOptions);
|
||||||
await effectiveLock.WaitAsync();
|
await result.Exited;
|
||||||
try
|
CaptureBinLogOnFailure(result);
|
||||||
{
|
return new ProcessResult(result);
|
||||||
using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"publish -c Release /bl {additionalArgs}", packageOptions);
|
|
||||||
await result.Exited;
|
|
||||||
CaptureBinLogOnFailure(result);
|
|
||||||
return new ProcessResult(result);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
effectiveLock.Release();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal async Task<ProcessResult> RunDotNetBuildAsync(bool takeNodeLock = false, IDictionary<string, string> packageOptions = null, string additionalArgs = null)
|
internal async Task<ProcessResult> RunDotNetBuildAsync(IDictionary<string, string> packageOptions = null, string additionalArgs = null)
|
||||||
{
|
{
|
||||||
Output.WriteLine("Building ASP.NET application...");
|
Output.WriteLine("Building ASP.NET Core application...");
|
||||||
|
|
||||||
// This is going to trigger a build, so we need to acquire the lock like in the other cases.
|
// Avoid restoring as part of build or publish. These projects should have already restored as part of running dotnet new. Explicitly disabling restore
|
||||||
// We want to take the node lock as some builds run NPM as part of the build and we want to make sure
|
// should avoid any global contention and we can execute a build or publish in a lock-free way
|
||||||
// it's run without interruptions.
|
|
||||||
var effectiveLock = takeNodeLock ? new OrderedLock(NodeLock, DotNetNewLock) : new OrderedLock(nodeLock: null, DotNetNewLock);
|
using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"build --no-restore -c Debug /bl {additionalArgs}", packageOptions);
|
||||||
await effectiveLock.WaitAsync();
|
await result.Exited;
|
||||||
try
|
CaptureBinLogOnFailure(result);
|
||||||
{
|
return new ProcessResult(result);
|
||||||
using var result = ProcessEx.Run(Output, TemplateOutputDir, DotNetMuxer.MuxerPathOrDefault(), $"build -c Debug /bl {additionalArgs}", packageOptions);
|
|
||||||
await result.Exited;
|
|
||||||
CaptureBinLogOnFailure(result);
|
|
||||||
return new ProcessResult(result);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
effectiveLock.Release();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal AspNetProcess StartBuiltProjectAsync(bool hasListeningUri = true, ILogger logger = null)
|
internal AspNetProcess StartBuiltProjectAsync(bool hasListeningUri = true, ILogger logger = null)
|
||||||
|
|
@ -165,8 +147,33 @@ namespace Templates.Test.Helpers
|
||||||
["ASPNETCORE_Logging__Console__IncludeScopes"] = "true",
|
["ASPNETCORE_Logging__Console__IncludeScopes"] = "true",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var launchSettingsJson = Path.Combine(TemplateOutputDir, "Properties", "launchSettings.json");
|
||||||
|
if (File.Exists(launchSettingsJson))
|
||||||
|
{
|
||||||
|
// When executing "dotnet run", the launch urls specified in the app's launchSettings.json have higher precedence
|
||||||
|
// than ambient environment variables. When present, we have to edit this file to allow the application to pick random ports.
|
||||||
|
var original = File.ReadAllText(launchSettingsJson);
|
||||||
|
var updated = original.Replace(
|
||||||
|
"\"applicationUrl\": \"https://localhost:5001;http://localhost:5000\"",
|
||||||
|
$"\"applicationUrl\": \"{_urls}\"");
|
||||||
|
|
||||||
|
if (updated == original)
|
||||||
|
{
|
||||||
|
Output.WriteLine("applicationUrl is not specified in launchSettings.json");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Output.WriteLine("Updating applicationUrl in launchSettings.json");
|
||||||
|
File.WriteAllText(launchSettingsJson, updated);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Output.WriteLine("No launchSettings.json found to update.");
|
||||||
|
}
|
||||||
|
|
||||||
var projectDll = Path.Combine(TemplateBuildDir, $"{ProjectName}.dll");
|
var projectDll = Path.Combine(TemplateBuildDir, $"{ProjectName}.dll");
|
||||||
return new AspNetProcess(Output, TemplateOutputDir, projectDll, environment, hasListeningUri: hasListeningUri, logger: logger);
|
return new AspNetProcess(Output, TemplateOutputDir, projectDll, environment, published: false, hasListeningUri: hasListeningUri, logger: logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal AspNetProcess StartPublishedProjectAsync(bool hasListeningUri = true)
|
internal AspNetProcess StartPublishedProjectAsync(bool hasListeningUri = true)
|
||||||
|
|
@ -181,7 +188,7 @@ namespace Templates.Test.Helpers
|
||||||
};
|
};
|
||||||
|
|
||||||
var projectDll = $"{ProjectName}.dll";
|
var projectDll = $"{ProjectName}.dll";
|
||||||
return new AspNetProcess(Output, TemplatePublishDir, projectDll, environment, hasListeningUri: hasListeningUri);
|
return new AspNetProcess(Output, TemplatePublishDir, projectDll, environment, published: true, hasListeningUri: hasListeningUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal async Task<ProcessResult> RunDotNetEfCreateMigrationAsync(string migrationName)
|
internal async Task<ProcessResult> RunDotNetEfCreateMigrationAsync(string migrationName)
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,8 @@ using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Internal;
|
using Microsoft.AspNetCore.Internal;
|
||||||
using Microsoft.AspNetCore.Testing;
|
|
||||||
using Microsoft.Extensions.CommandLineUtils;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
|
@ -18,7 +16,6 @@ namespace Templates.Test.Helpers
|
||||||
{
|
{
|
||||||
internal static class TemplatePackageInstaller
|
internal static class TemplatePackageInstaller
|
||||||
{
|
{
|
||||||
private static readonly SemaphoreSlim InstallerLock = new SemaphoreSlim(1);
|
|
||||||
private static bool _haveReinstalledTemplatePackages;
|
private static bool _haveReinstalledTemplatePackages;
|
||||||
|
|
||||||
private static readonly string[] _templatePackages = new[]
|
private static readonly string[] _templatePackages = new[]
|
||||||
|
|
@ -52,7 +49,7 @@ namespace Templates.Test.Helpers
|
||||||
|
|
||||||
public static async Task EnsureTemplatingEngineInitializedAsync(ITestOutputHelper output)
|
public static async Task EnsureTemplatingEngineInitializedAsync(ITestOutputHelper output)
|
||||||
{
|
{
|
||||||
Assert.True(await InstallerLock.WaitAsync(TimeSpan.FromMinutes(1)), "Unable to grab installer lock");
|
await ProcessLock.DotNetNewLock.WaitAsync();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!_haveReinstalledTemplatePackages)
|
if (!_haveReinstalledTemplatePackages)
|
||||||
|
|
@ -67,7 +64,7 @@ namespace Templates.Test.Helpers
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
InstallerLock.Release();
|
ProcessLock.DotNetNewLock.Release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Controllers/HomeController.fs" />
|
|
||||||
<Compile Include="Models/ErrorViewModel.fs" />
|
<Compile Include="Models/ErrorViewModel.fs" />
|
||||||
|
<Compile Include="Controllers/HomeController.fs" />
|
||||||
<Compile Include="Startup.fs" />
|
<Compile Include="Startup.fs" />
|
||||||
<Compile Include="Program.fs" />
|
<Compile Include="Program.fs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,7 @@ open Microsoft.Extensions.Hosting
|
||||||
open Microsoft.Extensions.Logging
|
open Microsoft.Extensions.Logging
|
||||||
|
|
||||||
module Program =
|
module Program =
|
||||||
let exitCode = 0
|
let createHostBuilder args =
|
||||||
|
|
||||||
let CreateHostBuilder args =
|
|
||||||
Host.CreateDefaultBuilder(args)
|
Host.CreateDefaultBuilder(args)
|
||||||
.ConfigureWebHostDefaults(fun webBuilder ->
|
.ConfigureWebHostDefaults(fun webBuilder ->
|
||||||
webBuilder.UseStartup<Startup>() |> ignore
|
webBuilder.UseStartup<Startup>() |> ignore
|
||||||
|
|
@ -22,6 +20,6 @@ module Program =
|
||||||
|
|
||||||
[<EntryPoint>]
|
[<EntryPoint>]
|
||||||
let main args =
|
let main args =
|
||||||
CreateHostBuilder(args).Build().Run()
|
createHostBuilder(args).Build().Run()
|
||||||
|
|
||||||
exitCode
|
0 // Exit code
|
||||||
|
|
|
||||||
|
|
@ -11,16 +11,16 @@ type Startup() =
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to add services to the container.
|
// This method gets called by the runtime. Use this method to add services to the container.
|
||||||
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
||||||
member this.ConfigureServices(services: IServiceCollection) =
|
member _.ConfigureServices(services: IServiceCollection) =
|
||||||
()
|
()
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
member this.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) =
|
member _.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) =
|
||||||
if env.IsDevelopment() then
|
if env.IsDevelopment() then
|
||||||
app.UseDeveloperExceptionPage() |> ignore
|
app.UseDeveloperExceptionPage() |> ignore
|
||||||
|
|
||||||
app.UseRouting() |> ignore
|
app.UseRouting()
|
||||||
|
.UseEndpoints(fun endpoints ->
|
||||||
app.UseEndpoints(fun endpoints ->
|
endpoints.MapGet("/", fun context ->
|
||||||
endpoints.MapGet("/", fun context -> context.Response.WriteAsync("Hello World!")) |> ignore
|
context.Response.WriteAsync("Hello World!")) |> ignore
|
||||||
) |> ignore
|
) |> ignore
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,13 @@ open System
|
||||||
open System.Collections.Generic
|
open System.Collections.Generic
|
||||||
open System.Linq
|
open System.Linq
|
||||||
open System.Threading.Tasks
|
open System.Threading.Tasks
|
||||||
|
open System.Diagnostics
|
||||||
|
|
||||||
open Microsoft.AspNetCore.Mvc
|
open Microsoft.AspNetCore.Mvc
|
||||||
open Microsoft.Extensions.Logging
|
open Microsoft.Extensions.Logging
|
||||||
|
|
||||||
|
open Company.WebApplication1.Models
|
||||||
|
|
||||||
type HomeController (logger : ILogger<HomeController>) =
|
type HomeController (logger : ILogger<HomeController>) =
|
||||||
inherit Controller()
|
inherit Controller()
|
||||||
|
|
||||||
|
|
@ -16,5 +20,12 @@ type HomeController (logger : ILogger<HomeController>) =
|
||||||
member this.Privacy () =
|
member this.Privacy () =
|
||||||
this.View()
|
this.View()
|
||||||
|
|
||||||
|
[<ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)>]
|
||||||
member this.Error () =
|
member this.Error () =
|
||||||
this.View();
|
let reqId =
|
||||||
|
if isNull Activity.Current then
|
||||||
|
this.HttpContext.TraceIdentifier
|
||||||
|
else
|
||||||
|
Activity.Current.Id
|
||||||
|
|
||||||
|
this.View({ RequestId = reqId })
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
namespace Company.WebApplication1
|
namespace Company.WebApplication1.Models
|
||||||
|
|
||||||
open System
|
open System
|
||||||
|
|
||||||
type ErrorViewModel private () =
|
type ErrorViewModel =
|
||||||
member val RequestId : string = null with get, set
|
{ RequestId: string }
|
||||||
|
|
||||||
member val ShowRequestId : bool = true with get, set
|
member this.ShowRequestId =
|
||||||
|
not (String.IsNullOrEmpty(this.RequestId))
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@model ErrorViewModel
|
@using Company.WebApplication1.Models
|
||||||
|
@model ErrorViewModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Error";
|
ViewData["Title"] = "Error";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,22 @@ open Company.WebApplication1
|
||||||
type WeatherForecastController (logger : ILogger<WeatherForecastController>) =
|
type WeatherForecastController (logger : ILogger<WeatherForecastController>) =
|
||||||
inherit ControllerBase()
|
inherit ControllerBase()
|
||||||
|
|
||||||
let summaries = [| "Freezing"; "Bracing"; "Chilly"; "Cool"; "Mild"; "Warm"; "Balmy"; "Hot"; "Sweltering"; "Scorching" |]
|
let summaries =
|
||||||
|
[|
|
||||||
|
"Freezing"
|
||||||
|
"Bracing"
|
||||||
|
"Chilly"
|
||||||
|
"Cool"
|
||||||
|
"Mild"
|
||||||
|
"Warm"
|
||||||
|
"Balmy"
|
||||||
|
"Hot"
|
||||||
|
"Sweltering"
|
||||||
|
"Scorching"
|
||||||
|
|]
|
||||||
|
|
||||||
[<HttpGet>]
|
[<HttpGet>]
|
||||||
member __.Get() : WeatherForecast[] =
|
member _.Get() =
|
||||||
let rng = System.Random()
|
let rng = System.Random()
|
||||||
[|
|
[|
|
||||||
for index in 0..4 ->
|
for index in 0..4 ->
|
||||||
|
|
|
||||||
|
|
@ -14,32 +14,29 @@ open Microsoft.Extensions.Configuration
|
||||||
open Microsoft.Extensions.DependencyInjection
|
open Microsoft.Extensions.DependencyInjection
|
||||||
open Microsoft.Extensions.Hosting
|
open Microsoft.Extensions.Hosting
|
||||||
|
|
||||||
type Startup private () =
|
type Startup(configuration: IConfiguration) =
|
||||||
new (configuration: IConfiguration) as this =
|
member _.Configuration = configuration
|
||||||
Startup() then
|
|
||||||
this.Configuration <- configuration
|
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to add services to the container.
|
// This method gets called by the runtime. Use this method to add services to the container.
|
||||||
member this.ConfigureServices(services: IServiceCollection) =
|
member _.ConfigureServices(services: IServiceCollection) =
|
||||||
// Add framework services.
|
// Add framework services.
|
||||||
services.AddControllers() |> ignore
|
services.AddControllers() |> ignore
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
member this.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) =
|
member _.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) =
|
||||||
if (env.IsDevelopment()) then
|
if (env.IsDevelopment()) then
|
||||||
app.UseDeveloperExceptionPage() |> ignore
|
app.UseDeveloperExceptionPage() |> ignore
|
||||||
#if (!NoHttps)
|
#if (!NoHttps)
|
||||||
|
app.UseHttpsRedirection()
|
||||||
app.UseHttpsRedirection() |> ignore
|
.UseRouting()
|
||||||
#else
|
.UseAuthorization()
|
||||||
|
.UseEndpoints(fun endpoints ->
|
||||||
#endif
|
endpoints.MapControllers() |> ignore
|
||||||
app.UseRouting() |> ignore
|
|
||||||
|
|
||||||
app.UseAuthorization() |> ignore
|
|
||||||
|
|
||||||
app.UseEndpoints(fun endpoints ->
|
|
||||||
endpoints.MapControllers() |> ignore
|
|
||||||
) |> ignore
|
) |> ignore
|
||||||
|
#else
|
||||||
member val Configuration : IConfiguration = null with get, set
|
app.UseRouting()
|
||||||
|
.UseAuthorization()
|
||||||
|
.UseEndpoints(fun endpoints ->
|
||||||
|
endpoints.MapControllers() |> ignore
|
||||||
|
) |> ignore
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,4 @@ type WeatherForecast =
|
||||||
Summary: string }
|
Summary: string }
|
||||||
|
|
||||||
member this.TemperatureF =
|
member this.TemperatureF =
|
||||||
32 + (int (float this.TemperatureC / 0.5556))
|
32.0 + (float this.TemperatureC / 0.5556)
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ namespace Templates.Test
|
||||||
|
|
||||||
[ConditionalFact]
|
[ConditionalFact]
|
||||||
[SkipOnHelix("Cert failures", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")]
|
[SkipOnHelix("Cert failures", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")]
|
||||||
|
[QuarantinedTest]
|
||||||
public async Task WebApiTemplateCSharp() => await WebApiTemplateCore(languageOverride: null);
|
public async Task WebApiTemplateCSharp() => await WebApiTemplateCore(languageOverride: null);
|
||||||
|
|
||||||
private async Task WebApiTemplateCore(string languageOverride)
|
private async Task WebApiTemplateCore(string languageOverride)
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomPolicyProvider", "sam
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StaticFilesAuth", "samples\StaticFilesAuth\StaticFilesAuth.csproj", "{E1E8A599-AB42-4551-8C24-BE4404B65283}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StaticFilesAuth", "samples\StaticFilesAuth\StaticFilesAuth.csproj", "{E1E8A599-AB42-4551-8C24-BE4404B65283}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomAuthorizationFailureResponse", "samples\CustomAuthorizationFailureResponse\CustomAuthorizationFailureResponse.csproj", "{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
|
@ -402,6 +404,18 @@ Global
|
||||||
{E1E8A599-AB42-4551-8C24-BE4404B65283}.Release|x64.Build.0 = Release|Any CPU
|
{E1E8A599-AB42-4551-8C24-BE4404B65283}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{E1E8A599-AB42-4551-8C24-BE4404B65283}.Release|x86.ActiveCfg = Release|Any CPU
|
{E1E8A599-AB42-4551-8C24-BE4404B65283}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{E1E8A599-AB42-4551-8C24-BE4404B65283}.Release|x86.Build.0 = Release|Any CPU
|
{E1E8A599-AB42-4551-8C24-BE4404B65283}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
@ -434,6 +448,7 @@ Global
|
||||||
{82C0816D-7051-4DDB-9B9E-6777973AD7AE} = {142C8260-90B5-4D72-9564-17BFDD72F496}
|
{82C0816D-7051-4DDB-9B9E-6777973AD7AE} = {142C8260-90B5-4D72-9564-17BFDD72F496}
|
||||||
{38C0E122-64D0-497F-ABB0-C6A9C3349F02} = {CA4538F5-9DA8-4139-B891-A13279889F79}
|
{38C0E122-64D0-497F-ABB0-C6A9C3349F02} = {CA4538F5-9DA8-4139-B891-A13279889F79}
|
||||||
{E1E8A599-AB42-4551-8C24-BE4404B65283} = {CA4538F5-9DA8-4139-B891-A13279889F79}
|
{E1E8A599-AB42-4551-8C24-BE4404B65283} = {CA4538F5-9DA8-4139-B891-A13279889F79}
|
||||||
|
{EA51BBBC-58AC-42F8-97C1-5CF3C9725513} = {CA4538F5-9DA8-4139-B891-A13279889F79}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {39E3AF62-B1FD-4156-92AA-F4FA99B5AD89}
|
SolutionGuid = {39E3AF62-B1FD-4156-92AA-F4FA99B5AD89}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ namespace Microsoft.Extensions.Logging
|
||||||
private static Action<ILogger, Exception> _challengeNegotiate;
|
private static Action<ILogger, Exception> _challengeNegotiate;
|
||||||
private static Action<ILogger, Exception> _reauthenticating;
|
private static Action<ILogger, Exception> _reauthenticating;
|
||||||
private static Action<ILogger, Exception> _deferring;
|
private static Action<ILogger, Exception> _deferring;
|
||||||
|
private static Action<ILogger, string, Exception> _negotiateError;
|
||||||
|
|
||||||
static NegotiateLoggingExtensions()
|
static NegotiateLoggingExtensions()
|
||||||
{
|
{
|
||||||
|
|
@ -43,7 +44,7 @@ namespace Microsoft.Extensions.Logging
|
||||||
_challengeNegotiate = LoggerMessage.Define(
|
_challengeNegotiate = LoggerMessage.Define(
|
||||||
eventId: new EventId(6, "ChallengeNegotiate"),
|
eventId: new EventId(6, "ChallengeNegotiate"),
|
||||||
logLevel: LogLevel.Debug,
|
logLevel: LogLevel.Debug,
|
||||||
formatString: "Challenged 401 Negotiate");
|
formatString: "Challenged 401 Negotiate.");
|
||||||
_reauthenticating = LoggerMessage.Define(
|
_reauthenticating = LoggerMessage.Define(
|
||||||
eventId: new EventId(7, "Reauthenticating"),
|
eventId: new EventId(7, "Reauthenticating"),
|
||||||
logLevel: LogLevel.Debug,
|
logLevel: LogLevel.Debug,
|
||||||
|
|
@ -60,6 +61,10 @@ namespace Microsoft.Extensions.Logging
|
||||||
eventId: new EventId(10, "ClientError"),
|
eventId: new EventId(10, "ClientError"),
|
||||||
logLevel: LogLevel.Debug,
|
logLevel: LogLevel.Debug,
|
||||||
formatString: "The users authentication request was invalid.");
|
formatString: "The users authentication request was invalid.");
|
||||||
|
_negotiateError = LoggerMessage.Define<string>(
|
||||||
|
eventId: new EventId(11, "NegotiateError"),
|
||||||
|
logLevel: LogLevel.Debug,
|
||||||
|
formatString: "Negotiate error code: {error}.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void IncompleteNegotiateChallenge(this ILogger logger)
|
public static void IncompleteNegotiateChallenge(this ILogger logger)
|
||||||
|
|
@ -91,5 +96,8 @@ namespace Microsoft.Extensions.Logging
|
||||||
|
|
||||||
public static void ClientError(this ILogger logger, Exception ex)
|
public static void ClientError(this ILogger logger, Exception ex)
|
||||||
=> _clientError(logger, ex);
|
=> _clientError(logger, ex);
|
||||||
|
|
||||||
|
public static void NegotiateError(this ILogger logger, string error)
|
||||||
|
=> _negotiateError(logger, error, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -129,9 +129,9 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate
|
||||||
_negotiateState ??= Options.StateFactory.CreateInstance();
|
_negotiateState ??= Options.StateFactory.CreateInstance();
|
||||||
|
|
||||||
var outgoing = _negotiateState.GetOutgoingBlob(token, out var errorType, out var exception);
|
var outgoing = _negotiateState.GetOutgoingBlob(token, out var errorType, out var exception);
|
||||||
Logger.LogInformation(errorType.ToString());
|
|
||||||
if (errorType != BlobErrorType.None)
|
if (errorType != BlobErrorType.None)
|
||||||
{
|
{
|
||||||
|
Logger.NegotiateError(errorType.ToString());
|
||||||
_negotiateState.Dispose();
|
_negotiateState.Dispose();
|
||||||
_negotiateState = null;
|
_negotiateState = null;
|
||||||
if (persistence?.State != null)
|
if (persistence?.State != null)
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ namespace Microsoft.AspNetCore.Authentication.DataHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
[QuarantinedTest]
|
|
||||||
public void UnprotectWithDifferentPurposeFails()
|
public void UnprotectWithDifferentPurposeFails()
|
||||||
{
|
{
|
||||||
var provider = ServiceProvider.GetRequiredService<IDataProtectionProvider>();
|
var provider = ServiceProvider.GetRequiredService<IDataProtectionProvider>();
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return $"{nameof(DenyAnonymousAuthorizationRequirement)}:Requires an authenticated user.";
|
return $"{nameof(DenyAnonymousAuthorizationRequirement)}: Requires an authenticated user.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ namespace Microsoft.Extensions.Logging
|
||||||
_userAuthorizationFailed = LoggerMessage.Define<string>(
|
_userAuthorizationFailed = LoggerMessage.Define<string>(
|
||||||
eventId: new EventId(2, "UserAuthorizationFailed"),
|
eventId: new EventId(2, "UserAuthorizationFailed"),
|
||||||
logLevel: LogLevel.Information,
|
logLevel: LogLevel.Information,
|
||||||
formatString: "Authorization failed for {0}");
|
formatString: "Authorization failed. {0}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void UserAuthorizationSucceeded(this ILogger logger)
|
public static void UserAuthorizationSucceeded(this ILogger logger)
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,19 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute]
|
[System.Diagnostics.DebuggerStepThroughAttribute]
|
||||||
public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
|
public System.Threading.Tasks.Task Invoke(Microsoft.AspNetCore.Http.HttpContext context) { throw null; }
|
||||||
}
|
}
|
||||||
|
public partial interface IAuthorizationMiddlewareResultHandler
|
||||||
|
{
|
||||||
|
System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult authorizeResult);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
namespace Microsoft.AspNetCore.Authorization.Policy
|
namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
{
|
{
|
||||||
|
public partial class AuthorizationMiddlewareResultHandler : Microsoft.AspNetCore.Authorization.IAuthorizationMiddlewareResultHandler
|
||||||
|
{
|
||||||
|
public AuthorizationMiddlewareResultHandler() { }
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute]
|
||||||
|
public System.Threading.Tasks.Task HandleAsync(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult authorizeResult) { throw null; }
|
||||||
|
}
|
||||||
public partial interface IPolicyEvaluator
|
public partial interface IPolicyEvaluator
|
||||||
{
|
{
|
||||||
System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticateResult> AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context);
|
System.Threading.Tasks.Task<Microsoft.AspNetCore.Authentication.AuthenticateResult> AuthenticateAsync(Microsoft.AspNetCore.Authorization.AuthorizationPolicy policy, Microsoft.AspNetCore.Http.HttpContext context);
|
||||||
|
|
@ -20,11 +30,13 @@ namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
public partial class PolicyAuthorizationResult
|
public partial class PolicyAuthorizationResult
|
||||||
{
|
{
|
||||||
internal PolicyAuthorizationResult() { }
|
internal PolicyAuthorizationResult() { }
|
||||||
|
public Microsoft.AspNetCore.Authorization.AuthorizationFailure AuthorizationFailure { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
||||||
public bool Challenged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
public bool Challenged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
||||||
public bool Forbidden { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
public bool Forbidden { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
||||||
public bool Succeeded { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
public bool Succeeded { [System.Runtime.CompilerServices.CompilerGeneratedAttribute] get { throw null; } }
|
||||||
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Challenge() { throw null; }
|
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Challenge() { throw null; }
|
||||||
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid() { throw null; }
|
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid() { throw null; }
|
||||||
|
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Forbid(Microsoft.AspNetCore.Authorization.AuthorizationFailure authorizationFailure) { throw null; }
|
||||||
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Success() { throw null; }
|
public static Microsoft.AspNetCore.Authorization.Policy.PolicyAuthorizationResult Success() { throw null; }
|
||||||
}
|
}
|
||||||
public partial class PolicyEvaluator : Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator
|
public partial class PolicyEvaluator : Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator
|
||||||
|
|
@ -44,6 +56,7 @@ namespace Microsoft.AspNetCore.Builder
|
||||||
}
|
}
|
||||||
public static partial class AuthorizationEndpointConventionBuilderExtensions
|
public static partial class AuthorizationEndpointConventionBuilderExtensions
|
||||||
{
|
{
|
||||||
|
public static TBuilder AllowAnonymous<TBuilder>(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
||||||
public static TBuilder RequireAuthorization<TBuilder>(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
public static TBuilder RequireAuthorization<TBuilder>(this TBuilder builder) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
||||||
public static TBuilder RequireAuthorization<TBuilder>(this TBuilder builder, params Microsoft.AspNetCore.Authorization.IAuthorizeData[] authorizeData) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
public static TBuilder RequireAuthorization<TBuilder>(this TBuilder builder, params Microsoft.AspNetCore.Authorization.IAuthorizeData[] authorizeData) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
||||||
public static TBuilder RequireAuthorization<TBuilder>(this TBuilder builder, params string[] policyNames) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
public static TBuilder RequireAuthorization<TBuilder>(this TBuilder builder, params string[] policyNames) where TBuilder : Microsoft.AspNetCore.Builder.IEndpointConventionBuilder { throw null; }
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ namespace Microsoft.AspNetCore.Builder
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class AuthorizationEndpointConventionBuilderExtensions
|
public static class AuthorizationEndpointConventionBuilderExtensions
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private static readonly IAllowAnonymous _allowAnonymousMetadata = new AllowAnonymousAttribute();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds the default authorization policy to the endpoint(s).
|
/// Adds the default authorization policy to the endpoint(s).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -79,6 +82,22 @@ namespace Microsoft.AspNetCore.Builder
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Allows anonymous access to the endpoint by adding <see cref="AllowAnonymousAttribute" /> to the endpoint metadata. This will bypass
|
||||||
|
/// all authorization checks for the endpoint including the default authorization policy and fallback authorization policy.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="builder">The endpoint convention builder.</param>
|
||||||
|
/// <returns>The original convention builder parameter.</returns>
|
||||||
|
public static TBuilder AllowAnonymous<TBuilder>(this TBuilder builder) where TBuilder : IEndpointConventionBuilder
|
||||||
|
{
|
||||||
|
builder.Add(endpointBuilder =>
|
||||||
|
{
|
||||||
|
endpointBuilder.Metadata.Add(_allowAnonymousMetadata);
|
||||||
|
});
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void RequireAuthorizationCore<TBuilder>(TBuilder builder, IEnumerable<IAuthorizeData> authorizeData)
|
private static void RequireAuthorizationCore<TBuilder>(TBuilder builder, IEnumerable<IAuthorizeData> authorizeData)
|
||||||
where TBuilder : IEndpointConventionBuilder
|
where TBuilder : IEndpointConventionBuilder
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,7 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Authentication;
|
|
||||||
using Microsoft.AspNetCore.Authorization.Policy;
|
using Microsoft.AspNetCore.Authorization.Policy;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
@ -66,40 +64,8 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
// Note that the resource will be null if there is no matched endpoint
|
// Note that the resource will be null if there is no matched endpoint
|
||||||
var authorizeResult = await policyEvaluator.AuthorizeAsync(policy, authenticateResult, context, resource: endpoint);
|
var authorizeResult = await policyEvaluator.AuthorizeAsync(policy, authenticateResult, context, resource: endpoint);
|
||||||
|
|
||||||
if (authorizeResult.Challenged)
|
var authorizationMiddlewareResultHandler = context.RequestServices.GetRequiredService<IAuthorizationMiddlewareResultHandler>();
|
||||||
{
|
await authorizationMiddlewareResultHandler.HandleAsync(_next, context, policy, authorizeResult);
|
||||||
if (policy.AuthenticationSchemes.Count > 0)
|
|
||||||
{
|
|
||||||
foreach (var scheme in policy.AuthenticationSchemes)
|
|
||||||
{
|
|
||||||
await context.ChallengeAsync(scheme);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await context.ChallengeAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (authorizeResult.Forbidden)
|
|
||||||
{
|
|
||||||
if (policy.AuthenticationSchemes.Count > 0)
|
|
||||||
{
|
|
||||||
foreach (var scheme in policy.AuthenticationSchemes)
|
|
||||||
{
|
|
||||||
await context.ForbidAsync(scheme);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await context.ForbidAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await _next(context);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Authentication;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
|
{
|
||||||
|
public class AuthorizationMiddlewareResultHandler : IAuthorizationMiddlewareResultHandler
|
||||||
|
{
|
||||||
|
public async Task HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
|
||||||
|
{
|
||||||
|
if (authorizeResult.Challenged)
|
||||||
|
{
|
||||||
|
if (policy.AuthenticationSchemes.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var scheme in policy.AuthenticationSchemes)
|
||||||
|
{
|
||||||
|
await context.ChallengeAsync(scheme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await context.ChallengeAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (authorizeResult.Forbidden)
|
||||||
|
{
|
||||||
|
if (policy.AuthenticationSchemes.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var scheme in policy.AuthenticationSchemes)
|
||||||
|
{
|
||||||
|
await context.ForbidAsync(scheme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await context.ForbidAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await next(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Authorization.Policy;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Authorization
|
||||||
|
{
|
||||||
|
public interface IAuthorizationMiddlewareResultHandler
|
||||||
|
{
|
||||||
|
Task HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
/// If a resource is not required for policy evaluation you may pass null as the value.
|
/// If a resource is not required for policy evaluation you may pass null as the value.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>Returns <see cref="PolicyAuthorizationResult.Success"/> if authorization succeeds.
|
/// <returns>Returns <see cref="PolicyAuthorizationResult.Success"/> if authorization succeeds.
|
||||||
/// Otherwise returns <see cref="PolicyAuthorizationResult.Forbid"/> if <see cref="AuthenticateResult.Succeeded"/>, otherwise
|
/// Otherwise returns <see cref="PolicyAuthorizationResult.Forbid(AuthorizationFailure)"/> if <see cref="AuthenticateResult.Succeeded"/>, otherwise
|
||||||
/// returns <see cref="PolicyAuthorizationResult.Challenge"/></returns>
|
/// returns <see cref="PolicyAuthorizationResult.Challenge"/></returns>
|
||||||
Task<PolicyAuthorizationResult> AuthorizeAsync(AuthorizationPolicy policy, AuthenticateResult authenticationResult, HttpContext context, object resource);
|
Task<PolicyAuthorizationResult> AuthorizeAsync(AuthorizationPolicy policy, AuthenticateResult authenticationResult, HttpContext context, object resource);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,19 @@ namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Succeeded { get; private set; }
|
public bool Succeeded { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Contains information about why authorization failed.
|
||||||
|
/// </summary>
|
||||||
|
public AuthorizationFailure AuthorizationFailure { get; private set; }
|
||||||
|
|
||||||
public static PolicyAuthorizationResult Challenge()
|
public static PolicyAuthorizationResult Challenge()
|
||||||
=> new PolicyAuthorizationResult { Challenged = true };
|
=> new PolicyAuthorizationResult { Challenged = true };
|
||||||
|
|
||||||
public static PolicyAuthorizationResult Forbid()
|
public static PolicyAuthorizationResult Forbid()
|
||||||
=> new PolicyAuthorizationResult { Forbidden = true };
|
=> Forbid(null);
|
||||||
|
|
||||||
|
public static PolicyAuthorizationResult Forbid(AuthorizationFailure authorizationFailure)
|
||||||
|
=> new PolicyAuthorizationResult { Forbidden = true, AuthorizationFailure = authorizationFailure };
|
||||||
|
|
||||||
public static PolicyAuthorizationResult Success()
|
public static PolicyAuthorizationResult Success()
|
||||||
=> new PolicyAuthorizationResult { Succeeded = true };
|
=> new PolicyAuthorizationResult { Succeeded = true };
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
/// If a resource is not required for policy evaluation you may pass null as the value.
|
/// If a resource is not required for policy evaluation you may pass null as the value.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>Returns <see cref="PolicyAuthorizationResult.Success"/> if authorization succeeds.
|
/// <returns>Returns <see cref="PolicyAuthorizationResult.Success"/> if authorization succeeds.
|
||||||
/// Otherwise returns <see cref="PolicyAuthorizationResult.Forbid"/> if <see cref="AuthenticateResult.Succeeded"/>, otherwise
|
/// Otherwise returns <see cref="PolicyAuthorizationResult.Forbid(AuthorizationFailure)"/> if <see cref="AuthenticateResult.Succeeded"/>, otherwise
|
||||||
/// returns <see cref="PolicyAuthorizationResult.Challenge"/></returns>
|
/// returns <see cref="PolicyAuthorizationResult.Challenge"/></returns>
|
||||||
public virtual async Task<PolicyAuthorizationResult> AuthorizeAsync(AuthorizationPolicy policy, AuthenticateResult authenticationResult, HttpContext context, object resource)
|
public virtual async Task<PolicyAuthorizationResult> AuthorizeAsync(AuthorizationPolicy policy, AuthenticateResult authenticationResult, HttpContext context, object resource)
|
||||||
{
|
{
|
||||||
|
|
@ -89,7 +89,7 @@ namespace Microsoft.AspNetCore.Authorization.Policy
|
||||||
|
|
||||||
// If authentication was successful, return forbidden, otherwise challenge
|
// If authentication was successful, return forbidden, otherwise challenge
|
||||||
return (authenticationResult.Succeeded)
|
return (authenticationResult.Succeeded)
|
||||||
? PolicyAuthorizationResult.Forbid()
|
? PolicyAuthorizationResult.Forbid(result.Failure)
|
||||||
: PolicyAuthorizationResult.Challenge();
|
: PolicyAuthorizationResult.Challenge();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
}
|
}
|
||||||
|
|
||||||
services.TryAddSingleton<AuthorizationPolicyMarkerService>();
|
services.TryAddSingleton<AuthorizationPolicyMarkerService>();
|
||||||
services.TryAdd(ServiceDescriptor.Transient<IPolicyEvaluator, PolicyEvaluator>());
|
services.TryAddTransient<IPolicyEvaluator, PolicyEvaluator>();
|
||||||
|
services.TryAddTransient<IAuthorizationMiddlewareResultHandler, AuthorizationMiddlewareResultHandler>();
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,37 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
Assert.True(chainedBuilder.TestProperty);
|
Assert.True(chainedBuilder.TestProperty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void AllowAnonymous_Default()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var builder = new TestEndpointConventionBuilder();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
builder.AllowAnonymous();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
var convention = Assert.Single(builder.Conventions);
|
||||||
|
|
||||||
|
var endpointModel = new RouteEndpointBuilder((context) => Task.CompletedTask, RoutePatternFactory.Parse("/"), 0);
|
||||||
|
convention(endpointModel);
|
||||||
|
|
||||||
|
Assert.IsAssignableFrom<IAllowAnonymous>(Assert.Single(endpointModel.Metadata));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void AllowAnonymous_ChainedCall()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var builder = new TestEndpointConventionBuilder();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var chainedBuilder = builder.AllowAnonymous();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.True(chainedBuilder.TestProperty);
|
||||||
|
}
|
||||||
|
|
||||||
private class TestEndpointConventionBuilder : IEndpointConventionBuilder
|
private class TestEndpointConventionBuilder : IEndpointConventionBuilder
|
||||||
{
|
{
|
||||||
public IList<Action<EndpointBuilder>> Conventions { get; } = new List<Action<EndpointBuilder>>();
|
public IList<Action<EndpointBuilder>> Conventions { get; } = new List<Action<EndpointBuilder>>();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,150 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Authentication;
|
||||||
|
using Microsoft.AspNetCore.Authorization.Policy;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Moq;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
|
{
|
||||||
|
public class AuthorizationMiddlewareResultHandlerTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public async Task CallRequestDelegate_If_PolicyAuthorizationResultSucceeded()
|
||||||
|
{
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext();
|
||||||
|
var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Success();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
requestDelegate.Verify(next => next(It.IsAny<HttpContext>()), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task NotCallRequestDelegate_If_PolicyAuthorizationResultWasChallenged()
|
||||||
|
{
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext();
|
||||||
|
var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Challenge();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
requestDelegate.Verify(next => next(It.IsAny<HttpContext>()), Times.Never);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task NotCallRequestDelegate_If_PolicyAuthorizationResultWasForbidden()
|
||||||
|
{
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext();
|
||||||
|
var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Forbid();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
requestDelegate.Verify(next => next(It.IsAny<HttpContext>()), Times.Never);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ChallangeEachAuthenticationScheme_If_PolicyAuthorizationResultWasChallenged()
|
||||||
|
{
|
||||||
|
var authenticationServiceMock = new Mock<IAuthenticationService>();
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext(authenticationServiceMock.Object);
|
||||||
|
var firstScheme = Guid.NewGuid().ToString();
|
||||||
|
var secondScheme = Guid.NewGuid().ToString();
|
||||||
|
var thirdScheme = Guid.NewGuid().ToString();
|
||||||
|
var policy = new AuthorizationPolicyBuilder()
|
||||||
|
.RequireAuthenticatedUser()
|
||||||
|
.AddAuthenticationSchemes(firstScheme, secondScheme, thirdScheme)
|
||||||
|
.Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Challenge();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
authenticationServiceMock.Verify(service => service.ChallengeAsync(httpContext, It.IsAny<string>(), null), Times.Exactly(3));
|
||||||
|
authenticationServiceMock.Verify(service => service.ChallengeAsync(httpContext, firstScheme, null), Times.Once);
|
||||||
|
authenticationServiceMock.Verify(service => service.ChallengeAsync(httpContext, secondScheme, null), Times.Once);
|
||||||
|
authenticationServiceMock.Verify(service => service.ChallengeAsync(httpContext, thirdScheme, null), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ChallangeWithoutAuthenticationScheme_If_PolicyAuthorizationResultWasChallenged()
|
||||||
|
{
|
||||||
|
var authenticationServiceMock = new Mock<IAuthenticationService>();
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext(authenticationServiceMock.Object);
|
||||||
|
var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Challenge();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
authenticationServiceMock.Verify(service => service.ChallengeAsync(httpContext, null, null), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ForbidEachAuthenticationScheme_If_PolicyAuthorizationResultWasForbidden()
|
||||||
|
{
|
||||||
|
var authenticationServiceMock = new Mock<IAuthenticationService>();
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext(authenticationServiceMock.Object);
|
||||||
|
var firstScheme = Guid.NewGuid().ToString();
|
||||||
|
var secondScheme = Guid.NewGuid().ToString();
|
||||||
|
var thirdScheme = Guid.NewGuid().ToString();
|
||||||
|
var policy = new AuthorizationPolicyBuilder()
|
||||||
|
.RequireAuthenticatedUser()
|
||||||
|
.AddAuthenticationSchemes(firstScheme, secondScheme, thirdScheme)
|
||||||
|
.Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Forbid();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
authenticationServiceMock.Verify(service => service.ForbidAsync(httpContext, It.IsAny<string>(), null), Times.Exactly(3));
|
||||||
|
authenticationServiceMock.Verify(service => service.ForbidAsync(httpContext, firstScheme, null), Times.Once);
|
||||||
|
authenticationServiceMock.Verify(service => service.ForbidAsync(httpContext, secondScheme, null), Times.Once);
|
||||||
|
authenticationServiceMock.Verify(service => service.ForbidAsync(httpContext, thirdScheme, null), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ForbidWithoutAuthenticationScheme_If_PolicyAuthorizationResultWasForbidden()
|
||||||
|
{
|
||||||
|
var authenticationServiceMock = new Mock<IAuthenticationService>();
|
||||||
|
var requestDelegate = new Mock<RequestDelegate>();
|
||||||
|
var httpContext = CreateHttpContext(authenticationServiceMock.Object);
|
||||||
|
var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
|
||||||
|
var policyAuthorizationResult = PolicyAuthorizationResult.Forbid();
|
||||||
|
var handler = CreateAuthorizationMiddlewareResultHandler();
|
||||||
|
|
||||||
|
await handler.HandleAsync(requestDelegate.Object, httpContext, policy, policyAuthorizationResult);
|
||||||
|
|
||||||
|
authenticationServiceMock.Verify(service => service.ForbidAsync(httpContext, null, null), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
private HttpContext CreateHttpContext(IAuthenticationService authenticationService = null)
|
||||||
|
{
|
||||||
|
var services = new ServiceCollection();
|
||||||
|
|
||||||
|
services.AddTransient(provider => authenticationService ?? new Mock<IAuthenticationService>().Object);
|
||||||
|
|
||||||
|
var serviceProvider = services.BuildServiceProvider();
|
||||||
|
|
||||||
|
return new DefaultHttpContext { RequestServices = serviceProvider };
|
||||||
|
}
|
||||||
|
|
||||||
|
private AuthorizationMiddlewareResultHandler CreateAuthorizationMiddlewareResultHandler() => new AuthorizationMiddlewareResultHandler();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,9 +5,9 @@ using System;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Authentication;
|
using Microsoft.AspNetCore.Authentication;
|
||||||
|
using Microsoft.AspNetCore.Authorization.Policy;
|
||||||
using Microsoft.AspNetCore.Authorization.Test.TestObjects;
|
using Microsoft.AspNetCore.Authorization.Test.TestObjects;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Http.Features;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -449,6 +449,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
authenticationService = authenticationService ?? Mock.Of<IAuthenticationService>();
|
authenticationService = authenticationService ?? Mock.Of<IAuthenticationService>();
|
||||||
|
|
||||||
serviceCollection.AddSingleton(authenticationService);
|
serviceCollection.AddSingleton(authenticationService);
|
||||||
|
serviceCollection.AddTransient<IAuthorizationMiddlewareResultHandler, AuthorizationMiddlewareResultHandler>();
|
||||||
serviceCollection.AddOptions();
|
serviceCollection.AddOptions();
|
||||||
serviceCollection.AddLogging();
|
serviceCollection.AddLogging();
|
||||||
serviceCollection.AddAuthorization();
|
serviceCollection.AddAuthorization();
|
||||||
|
|
|
||||||
|
|
@ -1221,7 +1221,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
Assert.Equal("UserAuthorizationFailed", eventId.Name);
|
Assert.Equal("UserAuthorizationFailed", eventId.Name);
|
||||||
var message = formatter(state, exception);
|
var message = formatter(state, exception);
|
||||||
|
|
||||||
Assert.Equal("Authorization failed for These requirements were not met:" + Environment.NewLine + "LogRequirement" + Environment.NewLine + "LogRequirement", message);
|
Assert.Equal("Authorization failed. These requirements were not met:" + Environment.NewLine + "LogRequirement" + Environment.NewLine + "LogRequirement", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
var authorizationService = BuildAuthorizationService(services =>
|
var authorizationService = BuildAuthorizationService(services =>
|
||||||
|
|
@ -1254,7 +1254,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
Assert.Equal("UserAuthorizationFailed", eventId.Name);
|
Assert.Equal("UserAuthorizationFailed", eventId.Name);
|
||||||
var message = formatter(state, exception);
|
var message = formatter(state, exception);
|
||||||
|
|
||||||
Assert.Equal("Authorization failed for Fail() was explicitly called.", message);
|
Assert.Equal("Authorization failed. Fail() was explicitly called.", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
var authorizationService = BuildAuthorizationService(services =>
|
var authorizationService = BuildAuthorizationService(services =>
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
var formattedValue = requirement.ToString();
|
var formattedValue = requirement.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("DenyAnonymousAuthorizationRequirement:Requires an authenticated user.", formattedValue);
|
Assert.Equal("DenyAnonymousAuthorizationRequirement: Requires an authenticated user.", formattedValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Authentication;
|
using Microsoft.AspNetCore.Authentication;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Authorization.Policy.Test
|
namespace Microsoft.AspNetCore.Authorization.Policy.Test
|
||||||
|
|
@ -120,6 +121,28 @@ namespace Microsoft.AspNetCore.Authorization.Policy.Test
|
||||||
Assert.True(result.Forbidden);
|
Assert.True(result.Forbidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task AuthorizeForbidsAndFailureIsIncludedIfAuthenticationSuceeds()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var evaluator = BuildEvaluator();
|
||||||
|
var context = new DefaultHttpContext();
|
||||||
|
var policy = new AuthorizationPolicyBuilder()
|
||||||
|
.AddRequirements(new DummyRequirement())
|
||||||
|
.RequireAssertion(_ => false)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = await evaluator.AuthorizeAsync(policy, AuthenticateResult.Success(new AuthenticationTicket(new ClaimsPrincipal(), "scheme")), context, resource: null);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.False(result.Succeeded);
|
||||||
|
Assert.False(result.Challenged);
|
||||||
|
Assert.True(result.Forbidden);
|
||||||
|
Assert.NotNull(result.AuthorizationFailure);
|
||||||
|
Assert.Contains(result.AuthorizationFailure.FailedRequirements, requirement => requirement is DummyRequirement);
|
||||||
|
}
|
||||||
|
|
||||||
private IPolicyEvaluator BuildEvaluator(Action<IServiceCollection> setupServices = null)
|
private IPolicyEvaluator BuildEvaluator(Action<IServiceCollection> setupServices = null)
|
||||||
{
|
{
|
||||||
var services = new ServiceCollection()
|
var services = new ServiceCollection()
|
||||||
|
|
@ -204,5 +227,6 @@ namespace Microsoft.AspNetCore.Authorization.Policy.Test
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class DummyRequirement : IAuthorizationRequirement {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System.Security.Claims;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Authentication;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
|
namespace CustomAuthorizationFailureResponse.Authentication
|
||||||
|
{
|
||||||
|
public class SampleAuthenticationHandler : AuthenticationHandler<AuthenticationSchemeOptions>
|
||||||
|
{
|
||||||
|
private readonly ClaimsPrincipal _id;
|
||||||
|
|
||||||
|
public SampleAuthenticationHandler(IOptionsMonitor<AuthenticationSchemeOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) : base(options, logger, encoder, clock)
|
||||||
|
{
|
||||||
|
_id = new ClaimsPrincipal(new ClaimsIdentity("Api"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override Task<AuthenticateResult> HandleAuthenticateAsync()
|
||||||
|
=> Task.FromResult(AuthenticateResult.Success(new AuthenticationTicket(_id, "Api")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
namespace CustomAuthorizationFailureResponse.Authentication
|
||||||
|
{
|
||||||
|
public static class SampleAuthenticationSchemes
|
||||||
|
{
|
||||||
|
public const string CustomScheme = "CustomScheme";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using CustomAuthorizationFailureResponse.Authorization.Requirements;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
|
namespace CustomAuthorizationFailureResponse.Authorization.Handlers
|
||||||
|
{
|
||||||
|
public class SampleRequirementHandler : AuthorizationHandler<SampleRequirement>
|
||||||
|
{
|
||||||
|
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, SampleRequirement requirement)
|
||||||
|
{
|
||||||
|
// assuming the requirement was not met
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using CustomAuthorizationFailureResponse.Authorization.Requirements;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
|
namespace CustomAuthorizationFailureResponse.Authorization.Handlers
|
||||||
|
{
|
||||||
|
public class SampleWithCustomMessageRequirementHandler : AuthorizationHandler<SampleWithCustomMessageRequirement>
|
||||||
|
{
|
||||||
|
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, SampleWithCustomMessageRequirement requirement)
|
||||||
|
{
|
||||||
|
// assuming the requirement was not met
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
|
namespace CustomAuthorizationFailureResponse.Authorization.Requirements
|
||||||
|
{
|
||||||
|
public class SampleRequirement : IAuthorizationRequirement
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
|
namespace CustomAuthorizationFailureResponse.Authorization.Requirements
|
||||||
|
{
|
||||||
|
public class SampleWithCustomMessageRequirement : IAuthorizationRequirement
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue