Merge remote-tracking branch 'origin/release/3.1'

This commit is contained in:
N. Taylor Mullen 2020-05-13 17:27:44 -07:00
commit f9b4101852
14 changed files with 917 additions and 352 deletions

View File

@ -2,7 +2,7 @@
<Project>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<AspNetCoreBaselineVersion>3.1.3</AspNetCoreBaselineVersion>
<AspNetCoreBaselineVersion>3.1.4</AspNetCoreBaselineVersion>
</PropertyGroup>
<!-- Package: 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' " />
<!-- Package: dotnet-sql-cache-->
<PropertyGroup Condition=" '$(PackageId)' == 'dotnet-sql-cache' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: Microsoft.AspNetCore.ApiAuthorization.IdentityServer-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ApiAuthorization.IdentityServer' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.UI" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.4, )" />
<BaselinePackageReference Include="IdentityServer4" Version="[3.0.0, )" />
<BaselinePackageReference Include="IdentityServer4.AspNetIdentity" Version="[3.0.0, )" />
<BaselinePackageReference Include="IdentityServer4.EntityFramework" Version="[3.0.0, )" />
<BaselinePackageReference Include="IdentityServer4.EntityFramework.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>
<!-- Package: 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>
<!-- Package: Microsoft.AspNetCore.Authentication.AzureAD.UI-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureAD.UI' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.OpenIdConnect" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Authentication.AzureADB2C.UI-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.AzureADB2C.UI' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.OpenIdConnect" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Authentication.Certificate-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Certificate' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<!-- Package: Microsoft.AspNetCore.Authentication.Facebook-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Facebook' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<!-- Package: Microsoft.AspNetCore.Authentication.Google-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Google' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<!-- Package: Microsoft.AspNetCore.Authentication.JwtBearer-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.JwtBearer' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Authentication.MicrosoftAccount-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.MicrosoftAccount' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<!-- Package: Microsoft.AspNetCore.Authentication.Negotiate-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Negotiate' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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>
<!-- Package: Microsoft.AspNetCore.Authentication.OpenIdConnect-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.OpenIdConnect' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[5.5.0, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Authentication.Twitter-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.Twitter' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<!-- Package: Microsoft.AspNetCore.Authentication.WsFederation-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authentication.WsFederation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.IdentityModel.Protocols.WsFederation" Version="[5.5.0, )" />
@ -109,39 +109,39 @@
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Authorization-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Metadata" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.AzureAppServices.HostingStartup-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.HostingStartup' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.AzureAppServices.SiteExtension-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServices.SiteExtension' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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>
<!-- Package: Microsoft.AspNetCore.AzureAppServicesIntegration-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.AzureAppServicesIntegration' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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>
<!-- Package: Microsoft.AspNetCore.Blazor-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Blazor' ">
@ -184,277 +184,277 @@
</PropertyGroup>
<!-- Package: Microsoft.AspNetCore.Components-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
<BaselinePackageReference Include="System.ComponentModel.Annotations" Version="[4.7.0, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Analyzers" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Components.Analyzers-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Analyzers' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: Microsoft.AspNetCore.Components.Authorization-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Authorization' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Authorization" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Components.Forms-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Forms' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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 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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Components.Web-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Components.Web' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Forms" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
</ItemGroup>
<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.Forms" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Components.Forms" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.JSInterop" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.ConcurrencyLimiter-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ConcurrencyLimiter' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Connections.Abstractions-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Connections.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.0, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Features" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.1, )" />
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
</ItemGroup>
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Cryptography.Internal-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.Internal' AND '$(TargetFramework)' == 'netstandard2.0' " />
<!-- Package: Microsoft.AspNetCore.Cryptography.KeyDerivation-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Cryptography.KeyDerivation' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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 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 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>
<!-- Package: Microsoft.AspNetCore.DataProtection-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
<BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.Internal" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Win32.Registry" Version="[4.7.0, )" />
<BaselinePackageReference Include="System.Security.Cryptography.Xml" Version="[4.7.0, )" />
<BaselinePackageReference Include="System.Security.Principal.Windows" Version="[4.7.0, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.DataProtection.Abstractions-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Abstractions' AND '$(TargetFramework)' == 'netstandard2.0' " />
<!-- Package: Microsoft.AspNetCore.DataProtection.AzureKeyVault-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureKeyVault' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.IdentityModel.Clients.ActiveDirectory" Version="[3.19.8, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.DataProtection.AzureStorage-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.AzureStorage' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Data.OData" Version="[5.8.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.DataProtection.EntityFrameworkCore-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.DataProtection.Extensions-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.Extensions' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.DataProtection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.DataProtection.StackExchangeRedis-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.DataProtection.StackExchangeRedis' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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>
<!-- Package: Microsoft.AspNetCore.HeaderPropagation-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.HeaderPropagation' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Http" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Hosting.WindowsServices-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Hosting.WindowsServices' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="System.ServiceProcess.ServiceController" Version="[4.7.0, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Http.Connections.Client-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Client' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<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.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Http.Connections.Common-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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 Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Connections.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.1, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.2, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Http.Features-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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, )" />
</ItemGroup>
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Identity.EntityFrameworkCore-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Identity.Specification.Tests-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.Specification.Tests' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Configuration" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
<BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
<BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Identity.UI-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Identity.UI' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.FileProviders.Embedded" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Stores" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="[3.1.4, )" />
<BaselinePackageReference Include="Newtonsoft.Json" Version="[12.0.2, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.JsonPatch-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.JsonPatch' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.CSharp" Version="[4.7.0, )" />
@ -462,239 +462,239 @@
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Metadata-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Metadata' AND '$(TargetFramework)' == 'netstandard2.0' " />
<!-- Package: Microsoft.AspNetCore.MiddlewareAnalysis-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.MiddlewareAnalysis' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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>
<!-- Package: Microsoft.AspNetCore.Mvc.NewtonsoftJson-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Bson" Version="[1.0.2, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.CodeAnalysis.Razor" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.CodeAnalysis.Razor" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Mvc.Testing-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Mvc.Testing' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.TestHost" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Hosting" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.TestHost" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyModel" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Hosting" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.NodeServices-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.NodeServices' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.Owin-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Owin' AND '$(TargetFramework)' == 'netcoreapp3.1' " />
<!-- Package: 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>
<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="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.Client-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Http.Connections.Client" 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.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.Client.Core-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Client.Core' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Common" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.0, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.0, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="[1.1.1, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.1, )" />
</ItemGroup>
<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.Common" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.0, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.DependencyInjection" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
<BaselinePackageReference Include="System.Threading.Channels" Version="[4.7.1, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.Common-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Common' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.1, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
<BaselinePackageReference Include="System.Text.Json" Version="[4.7.2, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.Json-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.Json' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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 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>
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.MessagePack-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.MessagePack' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.Specification.Tests-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.Specification.Tests' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.MessagePack" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" 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.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="[3.1.4, )" />
<BaselinePackageReference Include="xunit.assert" Version="[2.4.1, )" />
<BaselinePackageReference Include="xunit.extensibility.core" Version="[2.4.1, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SignalR.StackExchangeRedis-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SignalR.StackExchangeRedis' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<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, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.SpaServices-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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>
<!-- Package: Microsoft.AspNetCore.SpaServices.Extensions-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.SpaServices.Extensions' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.SpaServices" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.SpaServices" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.AspNetCore.TestHost-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.TestHost' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="System.IO.Pipelines" Version="[4.7.1, )" />
</ItemGroup>
<!-- Package: Microsoft.dotnet-openapi-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.dotnet-openapi' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: Microsoft.DotNet.Web.Client.ItemTemplates-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.Client.ItemTemplates' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: Microsoft.DotNet.Web.ItemTemplates-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.DotNet.Web.ItemTemplates' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: 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>
<!-- Package: 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>
<!-- Package: Microsoft.Extensions.ApiDescription.Client-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Client' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: Microsoft.Extensions.ApiDescription.Server-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.ApiDescription.Server' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<!-- Package: Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore' AND '$(TargetFramework)' == 'netstandard2.1' ">
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.Extensions.Identity.Core-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netcoreapp3.1' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Core' AND '$(TargetFramework)' == 'netstandard2.0' ">
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Options" Version="[3.1.4, )" />
</ItemGroup>
<!-- Package: Microsoft.Extensions.Identity.Stores-->
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.Extensions.Identity.Stores' ">
<BaselinePackageVersion>3.1.3</BaselinePackageVersion>
<BaselinePackageVersion>3.1.4</BaselinePackageVersion>
</PropertyGroup>
<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.Caching.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
</ItemGroup>
<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.Caching.Abstractions" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.3, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Identity.Core" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="[3.1.4, )" />
<BaselinePackageReference Include="Microsoft.Extensions.Logging" Version="[3.1.4, )" />
</ItemGroup>
</Project>

View File

@ -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.
-->
<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.x86" Version="3.0.3" />
<Package Id="dotnet-sql-cache" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.App.Runtime.win-x64" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.Certificate" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.Google" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.Negotiate" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.Twitter" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authentication.WsFederation" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Authorization" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="3.1.3" />
<Package Id="dotnet-sql-cache" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.App.Runtime.win-x64" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.Certificate" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.Google" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.Negotiate" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.Twitter" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authentication.WsFederation" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Authorization" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.AzureAppServices.SiteExtension" Version="3.1.4" />
<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.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.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.Templates" Version="3.2.0-preview1.20073.1" />
<Package Id="Microsoft.AspNetCore.Components" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Components.Analyzers" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Components.Authorization" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Components.Forms" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Components.Web" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.ConcurrencyLimiter" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Cryptography.Internal" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection.Extensions" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.HeaderPropagation" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Hosting.WindowsServices" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Http.Features" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Identity.Specification.Tests" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Identity.UI" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.JsonPatch" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Metadata" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.MiddlewareAnalysis" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.NodeServices" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Owin" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Client" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Client.Core" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Common" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.Specification.Tests" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SpaServices" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.TestHost" Version="3.1.3" />
<Package Id="Microsoft.dotnet-openapi" Version="3.1.3" />
<Package Id="Microsoft.DotNet.Web.Client.ItemTemplates" Version="3.1.3" />
<Package Id="Microsoft.DotNet.Web.ItemTemplates" Version="3.1.3" />
<Package Id="Microsoft.DotNet.Web.ProjectTemplates.3.1" Version="3.1.3" />
<Package Id="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" Version="3.1.3" />
<Package Id="Microsoft.Extensions.ApiDescription.Client" Version="3.1.3" />
<Package Id="Microsoft.Extensions.ApiDescription.Server" Version="3.1.3" />
<Package Id="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="3.1.3" />
<Package Id="Microsoft.Extensions.Identity.Core" Version="3.1.3" />
<Package Id="Microsoft.Extensions.Identity.Stores" Version="3.1.3" />
<Package Id="Microsoft.AspNetCore.Components" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Components.Analyzers" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Components.Authorization" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Components.Forms" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Components.Web" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.ConcurrencyLimiter" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Cryptography.Internal" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection.Extensions" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.HeaderPropagation" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Hosting.WindowsServices" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Http.Features" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Identity.Specification.Tests" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Identity.UI" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.JsonPatch" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Metadata" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.MiddlewareAnalysis" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.NodeServices" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Owin" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Client" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Client.Core" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Common" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.Specification.Tests" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SpaServices" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.4" />
<Package Id="Microsoft.AspNetCore.TestHost" Version="3.1.4" />
<Package Id="Microsoft.dotnet-openapi" Version="3.1.4" />
<Package Id="Microsoft.DotNet.Web.Client.ItemTemplates" Version="3.1.4" />
<Package Id="Microsoft.DotNet.Web.ItemTemplates" Version="3.1.4" />
<Package Id="Microsoft.DotNet.Web.ProjectTemplates.3.1" Version="3.1.4" />
<Package Id="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" Version="3.1.4" />
<Package Id="Microsoft.Extensions.ApiDescription.Client" Version="3.1.4" />
<Package Id="Microsoft.Extensions.ApiDescription.Server" Version="3.1.4" />
<Package Id="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="3.1.4" />
<Package Id="Microsoft.Extensions.Identity.Core" Version="3.1.4" />
<Package Id="Microsoft.Extensions.Identity.Stores" Version="3.1.4" />
</Baseline>

View File

@ -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 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>
<!-- Ensure only content asset are consumed from .Sources packages -->
<Reference>
@ -214,6 +216,53 @@
<_CompileTfmUsingReferenceAssemblies
Condition=" '$(CompileUsingReferenceAssemblies)' != false AND '$(TargetFramework)' == '$(DefaultNetCoreTargetFramework)' ">true</_CompileTfmUsingReferenceAssemblies>
</PropertyGroup>
<PropertyGroup Condition=" $(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies) ">
<_ReferenceProjectFile>$(MSBuildProjectDirectory)/../ref/$(MSBuildProjectFile)</_ReferenceProjectFile>
<!--
Set properties controlling the item group GetTargetPathWithTargetPlatformMoniker, GetTargetPath and Build return.
Ensures dependent projects know about the ref/ assembly. Done late enough that Compile does not attempt to create
this assembly. Reset properties to avoid error when copying non-existent @(IntermediateRefAssembly) to
$(TargetRefPath).
-->
<GetTargetPathWithTargetPlatformMonikerDependsOn>
$(GetTargetPathWithTargetPlatformMonikerDependsOn);AddReferenceProjectMetadata
</GetTargetPathWithTargetPlatformMonikerDependsOn>
<PrepareForRunDependsOn>RemoveReferenceProjectMetadata;$(PrepareForRunDependsOn)</PrepareForRunDependsOn>
</PropertyGroup>
<ItemGroup Condition=" $(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies) ">
<!-- Ensure ref/ project is built prior to the implementation project. -->
<ProjectReference Include="$(_ReferenceProjectFile)">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Target Name="GetReferenceProjectTargetPathMetadata">
<Error Condition=" !($(HasReferenceAssembly) AND $(_CompileTfmUsingReferenceAssemblies)) "
Text="GetReferenceProjectTargetPathMetadata called in project without a reference assembly or when targeting non-default TFM." />
<MSBuild Projects="$(_ReferenceProjectFile)" Targets="GetTargetPathMetadata" RebaseOutputs="true" Properties="TargetFramework=$(DefaultNetCoreTargetFramework)">
<Output TaskParameter="TargetOutputs" ItemName="ReferenceProjectTargetPathMetadata" />
</MSBuild>
</Target>
<Target Name="GetTargetPathMetadata" Returns="@(TargetPathMetadata)">
<ItemGroup>
<TargetPathMetadata Include="$(TargetPath)">
<IntermediateAssembly>@(IntermediateAssembly)</IntermediateAssembly>
</TargetPathMetadata>
</ItemGroup>
</Target>
<Target Name="AddReferenceProjectMetadata" DependsOnTargets="GetReferenceProjectTargetPathMetadata">
<PropertyGroup>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
<TargetRefPath>@(ReferenceProjectTargetPathMetadata)</TargetRefPath>
</PropertyGroup>
</Target>
<Target Name="RemoveReferenceProjectMetadata">
<PropertyGroup>
<ProduceReferenceAssembly />
<TargetRefPath />
</PropertyGroup>
</Target>
<!--
If we have a ref/ assembly from dotnet/runtime for an Extension package, use that when compiling but do not reference its assemblies.
-->

View File

@ -22,6 +22,7 @@ Microsoft.AspNetCore.Http.HttpResponse</Description>
<ItemGroup>
<Reference Include="Microsoft.AspNetCore.Http.Features" />
<Reference Include="Microsoft.Extensions.ActivatorUtilities.Sources" />
<Reference Include="Microsoft.Net.Http.Headers" />
<Compile Include="$(SharedSourceRoot)ActivatorUtilities\*.cs" />

View File

@ -41,6 +41,15 @@ namespace Microsoft.AspNetCore.Routing.Matching
_parameterPolicyFactory = parameterPolicyFactory;
_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));
_endpointSelectorPolicies = endpointSelectorPolicies;
_nodeBuilders = nodeBuilderPolicies;
@ -56,6 +65,9 @@ namespace Microsoft.AspNetCore.Routing.Matching
// Used in tests
internal EndpointComparer Comparer => _comparer;
// Used in tests
internal bool UseCorrectCatchAllBehavior { get; set; }
public override void AddEndpoint(RouteEndpoint endpoint)
{
_endpoints.Add(endpoint);
@ -63,6 +75,15 @@ namespace Microsoft.AspNetCore.Routing.Matching
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
// this list will hold the set of items we need to process at the current
// stage.
@ -116,8 +137,13 @@ namespace Microsoft.AspNetCore.Routing.Matching
nextWork = previousWork;
}
// See comments on precedenceDigitComparer
work.Sort(0, workCount, precedenceDigitComparer);
if (UseCorrectCatchAllBehavior)
{
// 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++)
{
@ -460,7 +486,10 @@ namespace Microsoft.AspNetCore.Routing.Matching
candidates,
endpointSelectorPolicies?.ToArray() ?? Array.Empty<IEndpointSelectorPolicy>(),
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;

View File

@ -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")]

View File

@ -460,12 +460,40 @@ namespace Microsoft.AspNetCore.Routing.Matching
}
// 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()
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
var builder = CreateDfaMatcherBuilder();
var endpoint1 = CreateEndpoint("a/{b}", order: 0);
builder.AddEndpoint(endpoint1);
@ -504,11 +532,31 @@ namespace Microsoft.AspNetCore.Routing.Matching
// Regression test for https://github.com/dotnet/aspnetcore/issues/16579
[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
var builder = CreateDfaMatcherBuilder();
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
builder.AddEndpoint(endpoint1);
@ -545,12 +593,49 @@ namespace Microsoft.AspNetCore.Routing.Matching
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
[Fact]
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1()
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order1_CorrectBehavior()
{
// Arrange
var builder = CreateDfaMatcherBuilder();
builder.UseCorrectCatchAllBehavior = true;
var endpoint1 = CreateEndpoint("{a}/{b}", order: 0);
builder.AddEndpoint(endpoint1);
@ -601,10 +686,11 @@ namespace Microsoft.AspNetCore.Routing.Matching
// Regression test for https://github.com/dotnet/aspnetcore/issues/18677
[Fact]
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2()
public void BuildDfaTree_MultipleEndpoint_CatchAllWithHigherPrecedenceThanParameter_Order2_CorrectBehavior()
{
// Arrange
var builder = CreateDfaMatcherBuilder();
builder.UseCorrectCatchAllBehavior = true;
var endpoint1 = CreateEndpoint("a/{*b}", order: 0);
builder.AddEndpoint(endpoint1);
@ -653,6 +739,123 @@ namespace Microsoft.AspNetCore.Routing.Matching
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]
public void BuildDfaTree_WithPolicies()
{
@ -941,6 +1144,8 @@ namespace Microsoft.AspNetCore.Routing.Matching
new TestMetadata2MatcherPolicy(),
};
var comparer = new EndpointComparer(policies.OrderBy(p => p.Order).OfType<IEndpointComparerPolicy>().ToArray());
var builder = CreateDfaMatcherBuilder(policies);
((TestMetadata1MatcherPolicy)policies[0]).OnGetEdges = VerifyOrder;
@ -961,7 +1166,7 @@ namespace Microsoft.AspNetCore.Routing.Matching
void VerifyOrder(IReadOnlyList<Endpoint> endpoints)
{
// 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));
}
}

View File

@ -3,6 +3,7 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
namespace Microsoft.AspNetCore.Routing.Matching
{
@ -23,7 +24,132 @@ namespace Microsoft.AspNetCore.Routing.Matching
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)
{
return CreateMatcher(useCorrectCatchAllBehavior: default, endpoints);
}
internal Matcher CreateMatcher(bool? useCorrectCatchAllBehavior, params RouteEndpoint[] endpoints)
{
var services = new ServiceCollection()
.AddLogging()
@ -32,6 +158,11 @@ namespace Microsoft.AspNetCore.Routing.Matching
.BuildServiceProvider();
var builder = services.GetRequiredService<DfaMatcherBuilder>();
if (useCorrectCatchAllBehavior.HasValue)
{
builder.UseCorrectCatchAllBehavior = useCorrectCatchAllBehavior.Value;
}
for (var i = 0; i < endpoints.Length; i++)
{
builder.AddEndpoint(endpoints[i]);

View File

@ -504,37 +504,5 @@ namespace Microsoft.AspNetCore.Routing.Matching
// Assert
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);
}
}
}

View File

@ -337,6 +337,38 @@ namespace Microsoft.AspNetCore.Routing.Matching
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)
{
var services = new ServiceCollection()

View File

@ -1,16 +1,52 @@
// 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.
using System.Threading.Tasks;
using Xunit;
namespace Microsoft.AspNetCore.Routing.Matching
{
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)
{
var builder = new RouteMatcherBuilder();
for (var i = 0; i < endpoints.Length; i++)
{
builder.AddEndpoint(endpoints[i]);
builder.AddEndpoint(endpoints[i]);
}
return builder.Build();
}

View File

@ -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.
using System.Threading.Tasks;
@ -22,6 +22,39 @@ namespace Microsoft.AspNetCore.Routing.Matching
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)
{
var builder = new TreeRouterMatcherBuilder();

View File

@ -20,10 +20,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
{
private readonly IArrayPool<char> _charPool;
private readonly MvcOptions _mvcOptions;
// 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;
private JsonSerializerSettings _serializerSettings;
/// <summary>
/// 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>
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>
@ -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;
}
}
}

View File

@ -326,6 +326,40 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
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
{
public TestableJsonOutputFormatter(JsonSerializerSettings serializerSettings)