Merge branch 'master' into merge/release/3.0-preview5-to-master
This commit is contained in:
commit
497e9d2e51
|
|
@ -14,4 +14,7 @@ jobs:
|
||||||
agentOs: Windows
|
agentOs: Windows
|
||||||
jobName: SignalRDailyTests
|
jobName: SignalRDailyTests
|
||||||
jobDisplayName: "SignalR Daily Tests"
|
jobDisplayName: "SignalR Daily Tests"
|
||||||
|
artifacts:
|
||||||
|
- name: Windows_Logs
|
||||||
|
path: ../../artifacts/logs/
|
||||||
|
publishOnError: true
|
||||||
|
|
|
||||||
|
|
@ -9,384 +9,384 @@
|
||||||
-->
|
-->
|
||||||
<Dependencies>
|
<Dependencies>
|
||||||
<ProductDependencies>
|
<ProductDependencies>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview5.19223.7">
|
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview6.19223.8">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>49a4fddd93e9b7149dab07af13d7a414f12f8363</Sha>
|
<Sha>6c827ad0c86649f1031101fa1092e9fbeb7f879a</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview5.19223.7">
|
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview6.19223.8">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>49a4fddd93e9b7149dab07af13d7a414f12f8363</Sha>
|
<Sha>6c827ad0c86649f1031101fa1092e9fbeb7f879a</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview5.19223.7">
|
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview6.19223.8">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>49a4fddd93e9b7149dab07af13d7a414f12f8363</Sha>
|
<Sha>6c827ad0c86649f1031101fa1092e9fbeb7f879a</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview5.19223.7">
|
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview6.19223.8">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>49a4fddd93e9b7149dab07af13d7a414f12f8363</Sha>
|
<Sha>6c827ad0c86649f1031101fa1092e9fbeb7f879a</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="dotnet-ef" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="dotnet-ef" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview5.19223.8">
|
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview6.19223.5">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>683be04e01369814e9036cc54562b91c546aa0cb</Sha>
|
<Sha>6aa79388897911a47844b02be51c06a996854a13</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Bcl.Json.Sources" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="Microsoft.Bcl.Json.Sources" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview5-27623-11" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview6-27622-26" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||||
<Sha>0090de2841deb405c70cd577dfdc0b5ee694b6c8</Sha>
|
<Sha>e2865679bc1d91dd4deb6a05507a24e998b58737</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview5-27623-11" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="Microsoft.NETCore.App" Version="3.0.0-preview6-27622-26" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||||
<Sha>0090de2841deb405c70cd577dfdc0b5ee694b6c8</Sha>
|
<Sha>e2865679bc1d91dd4deb6a05507a24e998b58737</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ProductDependencies>
|
</ProductDependencies>
|
||||||
<ToolsetDependencies>
|
<ToolsetDependencies>
|
||||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview5.19222.11" CoherentParentDependency="Microsoft.NETCore.App">
|
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview6.19222.9" CoherentParentDependency="Microsoft.NETCore.App">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>9bc12a7d118f4ae59138a1aeb35335884738cd06</Sha>
|
<Sha>6cc58374f68b28ef991c3f155f1e87a5902cacf8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19218.7">
|
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19222.2">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>5e7ce5b394f3477bb0a485a4b761b7742e95be37</Sha>
|
<Sha>851e36df83d3361e4bd8a70a2a8a89f762469f9a</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview5.19223.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview6.19222.23" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>97eb1b81543a1dec436bfba6d91cd72cd74970c5</Sha>
|
<Sha>c3be53d2c8e78d388af8d47827fee604d9dcac59</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ToolsetDependencies>
|
</ToolsetDependencies>
|
||||||
</Dependencies>
|
</Dependencies>
|
||||||
|
|
|
||||||
|
|
@ -17,106 +17,106 @@
|
||||||
-->
|
-->
|
||||||
<PropertyGroup Label="Automated">
|
<PropertyGroup Label="Automated">
|
||||||
<!-- Packages from dotnet/arcade -->
|
<!-- Packages from dotnet/arcade -->
|
||||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19218.7</MicrosoftDotNetGenAPIPackageVersion>
|
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19222.2</MicrosoftDotNetGenAPIPackageVersion>
|
||||||
<!-- Packages from dotnet/core-setup -->
|
<!-- Packages from dotnet/core-setup -->
|
||||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview5-27623-11</MicrosoftExtensionsDependencyModelPackageVersion>
|
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview6-27622-26</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||||
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview5-27623-11</MicrosoftNETCoreAppPackageVersion>
|
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview6-27622-26</MicrosoftNETCoreAppPackageVersion>
|
||||||
<!-- Packages from dotnet/corefx -->
|
<!-- Packages from dotnet/corefx -->
|
||||||
<MicrosoftBclJsonSourcesPackageVersion>4.6.0-preview5.19222.11</MicrosoftBclJsonSourcesPackageVersion>
|
<MicrosoftBclJsonSourcesPackageVersion>4.6.0-preview6.19222.9</MicrosoftBclJsonSourcesPackageVersion>
|
||||||
<MicrosoftCSharpPackageVersion>4.6.0-preview5.19222.11</MicrosoftCSharpPackageVersion>
|
<MicrosoftCSharpPackageVersion>4.6.0-preview6.19222.9</MicrosoftCSharpPackageVersion>
|
||||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview5.19222.11</MicrosoftWin32RegistryPackageVersion>
|
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview6.19222.9</MicrosoftWin32RegistryPackageVersion>
|
||||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview5.19222.11</SystemComponentModelAnnotationsPackageVersion>
|
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview6.19222.9</SystemComponentModelAnnotationsPackageVersion>
|
||||||
<SystemDataSqlClientPackageVersion>4.7.0-preview5.19222.11</SystemDataSqlClientPackageVersion>
|
<SystemDataSqlClientPackageVersion>4.7.0-preview6.19222.9</SystemDataSqlClientPackageVersion>
|
||||||
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview5.19222.11</SystemDiagnosticsEventLogPackageVersion>
|
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview6.19222.9</SystemDiagnosticsEventLogPackageVersion>
|
||||||
<SystemIOPipelinesPackageVersion>4.6.0-preview5.19222.11</SystemIOPipelinesPackageVersion>
|
<SystemIOPipelinesPackageVersion>4.6.0-preview6.19222.9</SystemIOPipelinesPackageVersion>
|
||||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview5.19222.11</SystemNetHttpWinHttpHandlerPackageVersion>
|
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview6.19222.9</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview5.19222.11</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview6.19222.9</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||||
<SystemReflectionMetadataPackageVersion>1.7.0-preview5.19222.11</SystemReflectionMetadataPackageVersion>
|
<SystemReflectionMetadataPackageVersion>1.7.0-preview6.19222.9</SystemReflectionMetadataPackageVersion>
|
||||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview5.19222.11</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview6.19222.9</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||||
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview5.19222.11</SystemSecurityCryptographyCngPackageVersion>
|
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview6.19222.9</SystemSecurityCryptographyCngPackageVersion>
|
||||||
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview5.19222.11</SystemSecurityCryptographyPkcsPackageVersion>
|
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview6.19222.9</SystemSecurityCryptographyPkcsPackageVersion>
|
||||||
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview5.19222.11</SystemSecurityCryptographyXmlPackageVersion>
|
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview6.19222.9</SystemSecurityCryptographyXmlPackageVersion>
|
||||||
<SystemSecurityPermissionsPackageVersion>4.6.0-preview5.19222.11</SystemSecurityPermissionsPackageVersion>
|
<SystemSecurityPermissionsPackageVersion>4.6.0-preview6.19222.9</SystemSecurityPermissionsPackageVersion>
|
||||||
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview5.19222.11</SystemSecurityPrincipalWindowsPackageVersion>
|
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview6.19222.9</SystemSecurityPrincipalWindowsPackageVersion>
|
||||||
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview5.19222.11</SystemServiceProcessServiceControllerPackageVersion>
|
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview6.19222.9</SystemServiceProcessServiceControllerPackageVersion>
|
||||||
<SystemTextEncodingsWebPackageVersion>4.6.0-preview5.19222.11</SystemTextEncodingsWebPackageVersion>
|
<SystemTextEncodingsWebPackageVersion>4.6.0-preview6.19222.9</SystemTextEncodingsWebPackageVersion>
|
||||||
<SystemThreadingChannelsPackageVersion>4.6.0-preview5.19222.11</SystemThreadingChannelsPackageVersion>
|
<SystemThreadingChannelsPackageVersion>4.6.0-preview6.19222.9</SystemThreadingChannelsPackageVersion>
|
||||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||||
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview5.19222.11</MicrosoftNETCorePlatformsPackageVersion>
|
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview6.19222.9</MicrosoftNETCorePlatformsPackageVersion>
|
||||||
<!-- Packages from aspnet/Extensions -->
|
<!-- Packages from aspnet/Extensions -->
|
||||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview5.19223.5</InternalAspNetCoreAnalyzersPackageVersion>
|
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview6.19222.23</InternalAspNetCoreAnalyzersPackageVersion>
|
||||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview5.19223.5</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview6.19222.23</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview5.19223.5</MicrosoftAspNetCoreTestingPackageVersion>
|
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview6.19222.23</MicrosoftAspNetCoreTestingPackageVersion>
|
||||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsCachingMemoryPackageVersion>
|
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationIniPackageVersion>
|
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationPackageVersion>
|
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsHostingPackageVersion>
|
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsHostingPackageVersion>
|
||||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsHttpPackageVersion>
|
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsHttpPackageVersion>
|
||||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLocalizationPackageVersion>
|
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLocalizationPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingConsolePackageVersion>
|
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingDebugPackageVersion>
|
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingPackageVersion>
|
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingTestingPackageVersion>
|
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsObjectPoolPackageVersion>
|
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsOptionsPackageVersion>
|
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsOptionsPackageVersion>
|
||||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsPrimitivesPackageVersion>
|
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview5.19223.5</MicrosoftExtensionsWebEncodersPackageVersion>
|
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview6.19222.23</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview5.19223.5</MicrosoftInternalExtensionsRefsPackageVersion>
|
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview6.19222.23</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||||
<MicrosoftJSInteropPackageVersion>3.0.0-preview5.19223.5</MicrosoftJSInteropPackageVersion>
|
<MicrosoftJSInteropPackageVersion>3.0.0-preview6.19222.23</MicrosoftJSInteropPackageVersion>
|
||||||
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview5.19223.5</MonoWebAssemblyInteropPackageVersion>
|
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview6.19222.23</MonoWebAssemblyInteropPackageVersion>
|
||||||
<!-- Packages from aspnet/EntityFrameworkCore -->
|
<!-- Packages from aspnet/EntityFrameworkCore -->
|
||||||
<dotnetefPackageVersion>3.0.0-preview5.19223.8</dotnetefPackageVersion>
|
<dotnetefPackageVersion>3.0.0-preview6.19223.5</dotnetefPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview5.19223.8</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview6.19223.5</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview5.19223.8</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview6.19223.5</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview5.19223.8</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview6.19223.5</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview5.19223.8</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview6.19223.5</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview5.19223.8</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview6.19223.5</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview5.19223.8</MicrosoftEntityFrameworkCorePackageVersion>
|
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview6.19223.5</MicrosoftEntityFrameworkCorePackageVersion>
|
||||||
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
||||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview5.19223.7</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview6.19223.8</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview5.19223.7</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview6.19223.8</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview5.19223.7</MicrosoftCodeAnalysisRazorPackageVersion>
|
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview6.19223.8</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||||
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview5.19223.7</MicrosoftNETSdkRazorPackageVersion>
|
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview6.19223.8</MicrosoftNETSdkRazorPackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ try {
|
||||||
if ($changedFiles) {
|
if ($changedFiles) {
|
||||||
foreach ($file in $changedFiles) {
|
foreach ($file in $changedFiles) {
|
||||||
$filePath = Resolve-Path "${repoRoot}/${file}"
|
$filePath = Resolve-Path "${repoRoot}/${file}"
|
||||||
LogError "Generated code is not up to date in $file." -filepath $filePath
|
LogError "Generated code is not up to date in $file. You might need to regenerate the reference assemblies or project list (see docs/ReferenceAssemblies.md and docs/ReferenceResolution.md)" -filepath $filePath
|
||||||
& git --no-pager diff --ignore-space-at-eol $filePath
|
& git --no-pager diff --ignore-space-at-eol $filePath
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -350,7 +350,7 @@ namespace Test
|
||||||
// Assert: Captured ChildContent frames are correct
|
// Assert: Captured ChildContent frames are correct
|
||||||
var childFrames = GetFrames((RenderFragment)frames[2].AttributeValue);
|
var childFrames = GetFrames((RenderFragment)frames[2].AttributeValue);
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
childFrames,
|
childFrames.AsEnumerable(),
|
||||||
frame => AssertFrame.Text(frame, "Some text", 3),
|
frame => AssertFrame.Text(frame, "Some text", 3),
|
||||||
frame => AssertFrame.Element(frame, "some-child", 4, 4),
|
frame => AssertFrame.Element(frame, "some-child", 4, 4),
|
||||||
frame => AssertFrame.Attribute(frame, "a", "1", 5),
|
frame => AssertFrame.Attribute(frame, "a", "1", 5),
|
||||||
|
|
@ -393,7 +393,7 @@ namespace Test
|
||||||
// correct relative to each other (i.e., incrementing) within the nesting level.
|
// correct relative to each other (i.e., incrementing) within the nesting level.
|
||||||
// As an implementation detail, it happens that they do follow on from the parent
|
// As an implementation detail, it happens that they do follow on from the parent
|
||||||
// level, but we could change that part of the implementation if we wanted.
|
// level, but we could change that part of the implementation if we wanted.
|
||||||
var innerFrames = GetFrames((RenderFragment)frames[1].AttributeValue).ToArray();
|
var innerFrames = GetFrames((RenderFragment)frames[1].AttributeValue).AsEnumerable().ToArray();
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
innerFrames,
|
innerFrames,
|
||||||
frame => AssertFrame.Component(frame, "Test.MyComponent", 2, 2),
|
frame => AssertFrame.Component(frame, "Test.MyComponent", 2, 2),
|
||||||
|
|
@ -401,7 +401,7 @@ namespace Test
|
||||||
|
|
||||||
// Assert: second level of ChildContent is correct
|
// Assert: second level of ChildContent is correct
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
GetFrames((RenderFragment)innerFrames[1].AttributeValue),
|
GetFrames((RenderFragment)innerFrames[1].AttributeValue).AsEnumerable(),
|
||||||
frame => AssertFrame.Text(frame, "Some text", 4));
|
frame => AssertFrame.Text(frame, "Some text", 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -547,7 +547,7 @@ namespace Test
|
||||||
// Assert: Captured ChildContent frames are correct
|
// Assert: Captured ChildContent frames are correct
|
||||||
var childFrames = GetFrames((RenderFragment)frames[6].AttributeValue);
|
var childFrames = GetFrames((RenderFragment)frames[6].AttributeValue);
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
childFrames,
|
childFrames.AsEnumerable(),
|
||||||
frame => AssertFrame.MarkupWhitespace(frame, 7),
|
frame => AssertFrame.MarkupWhitespace(frame, 7),
|
||||||
frame => AssertFrame.Markup(frame, "<div><span></span><span></span></div>\n ", 8),
|
frame => AssertFrame.Markup(frame, "<div><span></span><span></span></div>\n ", 8),
|
||||||
frame => AssertFrame.Element(frame, "div", 2, 9),
|
frame => AssertFrame.Element(frame, "div", 2, 9),
|
||||||
|
|
|
||||||
|
|
@ -457,7 +457,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
||||||
|
|
||||||
protected override Task UpdateDisplayAsync(in RenderBatch renderBatch)
|
protected override Task UpdateDisplayAsync(in RenderBatch renderBatch)
|
||||||
{
|
{
|
||||||
LatestBatchReferenceFrames = renderBatch.ReferenceFrames.ToArray();
|
LatestBatchReferenceFrames = renderBatch.ReferenceFrames.AsEnumerable().ToArray();
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -244,22 +244,6 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
||||||
frame => AssertFrame.Attribute(frame, "attr", "Hello, WORLD with number 246!", 1));
|
frame => AssertFrame.Attribute(frame, "attr", "Hello, WORLD with number 246!", 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This test exercises the case where two IntermediateTokens are part of the same expression.
|
|
||||||
// In these case they are split by a comment.
|
|
||||||
[Fact]
|
|
||||||
public void SupportsAttributesWithInterpolatedStringExpressionValues_SplitByComment()
|
|
||||||
{
|
|
||||||
// Arrange/Act
|
|
||||||
var component = CompileToComponent(
|
|
||||||
"@{ var myValue = \"world\"; var myNum=123; }"
|
|
||||||
+ "<elem attr=\"Hello, @myValue.ToUpperInvariant() with number @(myN@* Blazor is Blawesome! *@um*2)!\" />");
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Collection(GetRenderTree(component),
|
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
|
||||||
frame => AssertFrame.Attribute(frame, "attr", "Hello, WORLD with number 246!", 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void SupportsAttributesWithInterpolatedTernaryExpressionValues()
|
public void SupportsAttributesWithInterpolatedTernaryExpressionValues()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -726,14 +726,12 @@ namespace Microsoft.AspNetCore.Components.Rendering
|
||||||
namespace Microsoft.AspNetCore.Components.RenderTree
|
namespace Microsoft.AspNetCore.Components.RenderTree
|
||||||
{
|
{
|
||||||
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
|
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
|
||||||
public readonly partial struct ArrayRange<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
|
public readonly partial struct ArrayRange<T>
|
||||||
{
|
{
|
||||||
public readonly T[] Array;
|
public readonly T[] Array;
|
||||||
public readonly int Count;
|
public readonly int Count;
|
||||||
public ArrayRange(T[] array, int count) { throw null; }
|
public ArrayRange(T[] array, int count) { throw null; }
|
||||||
public Microsoft.AspNetCore.Components.RenderTree.ArrayRange<T> Clone() { throw null; }
|
public Microsoft.AspNetCore.Components.RenderTree.ArrayRange<T> Clone() { throw null; }
|
||||||
System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() { throw null; }
|
|
||||||
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; }
|
|
||||||
}
|
}
|
||||||
public partial class RenderTreeBuilder
|
public partial class RenderTreeBuilder
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,13 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Components.RenderTree
|
namespace Microsoft.AspNetCore.Components.RenderTree
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a range of elements in an array that are in use.
|
/// Represents a range of elements in an array that are in use.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">The array item type.</typeparam>
|
/// <typeparam name="T">The array item type.</typeparam>
|
||||||
public readonly struct ArrayRange<T> : IEnumerable, IEnumerable<T>
|
public readonly struct ArrayRange<T>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the underlying array instance.
|
/// Gets the underlying array instance.
|
||||||
|
|
@ -34,14 +30,6 @@ namespace Microsoft.AspNetCore.Components.RenderTree
|
||||||
Count = count;
|
Count = count;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
IEnumerator<T> IEnumerable<T>.GetEnumerator()
|
|
||||||
=> ((IEnumerable<T>)new ArraySegment<T>(Array, 0, Count)).GetEnumerator();
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
IEnumerator IEnumerable.GetEnumerator()
|
|
||||||
=> ((IEnumerable)new ArraySegment<T>(Array, 0, Count)).GetEnumerator();
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a shallow clone of the instance.
|
/// Creates a shallow clone of the instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
// Assert
|
// Assert
|
||||||
var frames = builder.GetFrames();
|
var frames = builder.GetFrames();
|
||||||
Assert.NotNull(frames.Array);
|
Assert.NotNull(frames.Array);
|
||||||
Assert.Empty(frames);
|
Assert.Empty(frames.AsEnumerable());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var frames = builder.GetFrames();
|
var frames = builder.GetFrames();
|
||||||
Assert.Collection(frames,
|
Assert.Collection(frames.AsEnumerable(),
|
||||||
frame => AssertFrame.Text(frame, "First item"),
|
frame => AssertFrame.Text(frame, "First item"),
|
||||||
frame => AssertFrame.Text(frame, string.Empty),
|
frame => AssertFrame.Text(frame, string.Empty),
|
||||||
frame => AssertFrame.Text(frame, "Second item"));
|
frame => AssertFrame.Text(frame, "Second item"));
|
||||||
|
|
@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var frames = builder.GetFrames();
|
var frames = builder.GetFrames();
|
||||||
Assert.Collection(frames,
|
Assert.Collection(frames.AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "some elem", 3),
|
frame => AssertFrame.Element(frame, "some elem", 3),
|
||||||
frame => AssertFrame.Markup(frame, "Blah"),
|
frame => AssertFrame.Markup(frame, "Blah"),
|
||||||
frame => AssertFrame.Markup(frame, string.Empty));
|
frame => AssertFrame.Markup(frame, string.Empty));
|
||||||
|
|
@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var frames = builder.GetFrames();
|
var frames = builder.GetFrames();
|
||||||
Assert.Collection(frames,
|
Assert.Collection(frames.AsEnumerable(),
|
||||||
frame => AssertFrame.Markup(frame, "Some markup"),
|
frame => AssertFrame.Markup(frame, "Some markup"),
|
||||||
frame => AssertFrame.Markup(frame, string.Empty));
|
frame => AssertFrame.Markup(frame, string.Empty));
|
||||||
}
|
}
|
||||||
|
|
@ -106,7 +106,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var frames = builder.GetFrames();
|
var frames = builder.GetFrames();
|
||||||
Assert.Collection(frames,
|
Assert.Collection(frames.AsEnumerable(),
|
||||||
frame => AssertFrame.Markup(frame, string.Empty));
|
frame => AssertFrame.Markup(frame, string.Empty));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -123,7 +123,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var frames = builder.GetFrames();
|
var frames = builder.GetFrames();
|
||||||
Assert.Collection(frames,
|
Assert.Collection(frames.AsEnumerable(),
|
||||||
frame => AssertFrame.Text(frame, "1234"),
|
frame => AssertFrame.Text(frame, "1234"),
|
||||||
frame => AssertFrame.Text(frame, string.Empty));
|
frame => AssertFrame.Text(frame, string.Empty));
|
||||||
}
|
}
|
||||||
|
|
@ -138,7 +138,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.OpenElement(0, "my element");
|
builder.OpenElement(0, "my element");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var frame = builder.GetFrames().Single();
|
var frame = builder.GetFrames().AsEnumerable().Single();
|
||||||
AssertFrame.Element(frame, "my element", 0);
|
AssertFrame.Element(frame, "my element", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -203,7 +203,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.AddContent(0, "standalone text 2"); // 11: standalone text 2
|
builder.AddContent(0, "standalone text 2"); // 11: standalone text 2
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Text(frame, "standalone text 1"),
|
frame => AssertFrame.Text(frame, "standalone text 1"),
|
||||||
frame => AssertFrame.Element(frame, "root", 10),
|
frame => AssertFrame.Element(frame, "root", 10),
|
||||||
frame => AssertFrame.Text(frame, "root text 1"),
|
frame => AssertFrame.Text(frame, "root text 1"),
|
||||||
|
|
@ -236,7 +236,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement(); // </myelement>
|
builder.CloseElement(); // </myelement>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "myelement", 6),
|
frame => AssertFrame.Element(frame, "myelement", 6),
|
||||||
frame => AssertFrame.Attribute(frame, "attribute1", "value 1"),
|
frame => AssertFrame.Attribute(frame, "attribute1", "value 1"),
|
||||||
frame => AssertFrame.Attribute(frame, "attribute2", "123"),
|
frame => AssertFrame.Attribute(frame, "attribute2", "123"),
|
||||||
|
|
@ -363,7 +363,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement(); // </parent>
|
builder.CloseElement(); // </parent>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "parent", 6),
|
frame => AssertFrame.Element(frame, "parent", 6),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame),
|
frame => AssertFrame.Component<TestComponent>(frame),
|
||||||
frame => AssertFrame.Attribute(frame, "child1attribute1", "A"),
|
frame => AssertFrame.Attribute(frame, "child1attribute1", "A"),
|
||||||
|
|
@ -391,7 +391,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement(); // </parent>
|
builder.CloseElement(); // </parent>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "parent", 6),
|
frame => AssertFrame.Element(frame, "parent", 6),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame),
|
frame => AssertFrame.Component<TestComponent>(frame),
|
||||||
frame => AssertFrame.Attribute(frame, "child1attribute1", "A"),
|
frame => AssertFrame.Attribute(frame, "child1attribute1", "A"),
|
||||||
|
|
@ -419,7 +419,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement(); // </parent>
|
builder.CloseElement(); // </parent>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "parent", 6, 10),
|
frame => AssertFrame.Element(frame, "parent", 6, 10),
|
||||||
frame => AssertFrame.Region(frame, 5, 11),
|
frame => AssertFrame.Region(frame, 5, 11),
|
||||||
frame => AssertFrame.Text(frame, "Hello", 3),
|
frame => AssertFrame.Text(frame, "Hello", 3),
|
||||||
|
|
@ -447,7 +447,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement();
|
builder.CloseElement();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "parent", 5, 10),
|
frame => AssertFrame.Element(frame, "parent", 5, 10),
|
||||||
frame => AssertFrame.Region(frame, 4, 11),
|
frame => AssertFrame.Region(frame, 4, 11),
|
||||||
frame => AssertFrame.Text(frame, "Hello from the fragment", 0),
|
frame => AssertFrame.Text(frame, "Hello from the fragment", 0),
|
||||||
|
|
@ -470,7 +470,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement(); // </myelement>
|
builder.CloseElement(); // </myelement>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "myelement", 4, 0),
|
frame => AssertFrame.Element(frame, "myelement", 4, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attribute2", "123", 1),
|
frame => AssertFrame.Attribute(frame, "attribute2", "123", 1),
|
||||||
frame => AssertFrame.ElementReferenceCapture(frame, referenceCaptureAction, 2),
|
frame => AssertFrame.ElementReferenceCapture(frame, referenceCaptureAction, 2),
|
||||||
|
|
@ -538,7 +538,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseElement();
|
builder.CloseElement();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "myelement", 3),
|
frame => AssertFrame.Element(frame, "myelement", 3),
|
||||||
frame => AssertFrame.ElementReferenceCapture(frame, referenceCaptureAction1),
|
frame => AssertFrame.ElementReferenceCapture(frame, referenceCaptureAction1),
|
||||||
frame => AssertFrame.ElementReferenceCapture(frame, referenceCaptureAction2));
|
frame => AssertFrame.ElementReferenceCapture(frame, referenceCaptureAction2));
|
||||||
|
|
@ -559,7 +559,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseComponent(); // </TestComponent>
|
builder.CloseComponent(); // </TestComponent>
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 4, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 4, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attribute2", 123, 1),
|
frame => AssertFrame.Attribute(frame, "attribute2", 123, 1),
|
||||||
frame => AssertFrame.ComponentReferenceCapture(frame, myAction, 2),
|
frame => AssertFrame.ComponentReferenceCapture(frame, myAction, 2),
|
||||||
|
|
@ -627,7 +627,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.CloseComponent();
|
builder.CloseComponent();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(builder.GetFrames(),
|
Assert.Collection(builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 3),
|
frame => AssertFrame.Component<TestComponent>(frame, 3),
|
||||||
frame => AssertFrame.ComponentReferenceCapture(frame, referenceCaptureAction1),
|
frame => AssertFrame.ComponentReferenceCapture(frame, referenceCaptureAction1),
|
||||||
frame => AssertFrame.ComponentReferenceCapture(frame, referenceCaptureAction2));
|
frame => AssertFrame.ComponentReferenceCapture(frame, referenceCaptureAction2));
|
||||||
|
|
@ -647,7 +647,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
builder.Clear();
|
builder.Clear();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Empty(builder.GetFrames());
|
Assert.Empty(builder.GetFrames().AsEnumerable());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -663,7 +663,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", true, 1));
|
frame => AssertFrame.Attribute(frame, "attr", true, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -681,7 +681,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -700,7 +700,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -718,7 +718,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", "hi", 1));
|
frame => AssertFrame.Attribute(frame, "attr", "hi", 1));
|
||||||
}
|
}
|
||||||
|
|
@ -736,7 +736,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -755,7 +755,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -775,7 +775,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -793,7 +793,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -812,7 +812,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -830,7 +830,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -854,7 +854,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -872,7 +872,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", true, 1));
|
frame => AssertFrame.Attribute(frame, "attr", true, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -890,7 +890,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -909,7 +909,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -927,7 +927,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", "hi", 1));
|
frame => AssertFrame.Attribute(frame, "attr", "hi", 1));
|
||||||
}
|
}
|
||||||
|
|
@ -945,7 +945,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", "hi", 1));
|
frame => AssertFrame.Attribute(frame, "attr", "hi", 1));
|
||||||
}
|
}
|
||||||
|
|
@ -965,7 +965,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -985,7 +985,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -1005,7 +1005,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
frame => AssertFrame.Element(frame, "elem", 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -1025,7 +1025,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
frame => AssertFrame.Component<TestComponent>(frame, 2, 0),
|
||||||
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
frame => AssertFrame.Attribute(frame, "attr", value, 1));
|
||||||
}
|
}
|
||||||
|
|
@ -1043,7 +1043,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(
|
Assert.Collection(
|
||||||
builder.GetFrames(),
|
builder.GetFrames().AsEnumerable(),
|
||||||
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
frame => AssertFrame.Element(frame, "elem", 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -486,7 +486,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
Assert.NotEqual(0, removedEventHandlerFrame.AttributeEventHandlerId);
|
Assert.NotEqual(0, removedEventHandlerFrame.AttributeEventHandlerId);
|
||||||
Assert.Equal(
|
Assert.Equal(
|
||||||
new[] { removedEventHandlerFrame.AttributeEventHandlerId },
|
new[] { removedEventHandlerFrame.AttributeEventHandlerId },
|
||||||
batch.DisposedEventHandlerIDs);
|
batch.DisposedEventHandlerIDs.AsEnumerable());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -1114,7 +1114,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
var renderBatch = GetRenderedBatch();
|
var renderBatch = GetRenderedBatch();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var diff = renderBatch.UpdatedComponents.Single();
|
var diff = renderBatch.UpdatedComponents.AsEnumerable().Single();
|
||||||
Assert.Collection(diff.Edits,
|
Assert.Collection(diff.Edits,
|
||||||
entry => AssertEdit(entry, RenderTreeEditType.StepIn, 1),
|
entry => AssertEdit(entry, RenderTreeEditType.StepIn, 1),
|
||||||
entry =>
|
entry =>
|
||||||
|
|
@ -1145,7 +1145,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var renderBatch = GetRenderedBatch();
|
var renderBatch = GetRenderedBatch();
|
||||||
var componentInstance = newTree.GetFrames().First().Component as FakeComponent;
|
var componentInstance = newTree.GetFrames().AsEnumerable().First().Component as FakeComponent;
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(1, renderBatch.UpdatedComponents.Count);
|
Assert.Equal(1, renderBatch.UpdatedComponents.Count);
|
||||||
|
|
@ -1216,7 +1216,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
AssertFrame.Attribute(newAttributeFrame, "ontest", retainedHandler);
|
AssertFrame.Attribute(newAttributeFrame, "ontest", retainedHandler);
|
||||||
Assert.NotEqual(0, oldAttributeFrame.AttributeEventHandlerId);
|
Assert.NotEqual(0, oldAttributeFrame.AttributeEventHandlerId);
|
||||||
Assert.Equal(oldAttributeFrame.AttributeEventHandlerId, newAttributeFrame.AttributeEventHandlerId);
|
Assert.Equal(oldAttributeFrame.AttributeEventHandlerId, newAttributeFrame.AttributeEventHandlerId);
|
||||||
Assert.Empty(batch.DisposedEventHandlerIDs);
|
Assert.Empty(batch.DisposedEventHandlerIDs.AsEnumerable());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -1243,7 +1243,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
AssertFrame.Attribute(newAttributeFrame, "ontest", retainedHandler);
|
AssertFrame.Attribute(newAttributeFrame, "ontest", retainedHandler);
|
||||||
Assert.NotEqual(0, oldAttributeFrame.AttributeEventHandlerId);
|
Assert.NotEqual(0, oldAttributeFrame.AttributeEventHandlerId);
|
||||||
Assert.Equal(oldAttributeFrame.AttributeEventHandlerId, newAttributeFrame.AttributeEventHandlerId);
|
Assert.Equal(oldAttributeFrame.AttributeEventHandlerId, newAttributeFrame.AttributeEventHandlerId);
|
||||||
Assert.Empty(batch.DisposedEventHandlerIDs);
|
Assert.Empty(batch.DisposedEventHandlerIDs.AsEnumerable());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -1503,7 +1503,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
||||||
var batch = GetRenderedBatch(initializeFromFrames);
|
var batch = GetRenderedBatch(initializeFromFrames);
|
||||||
var diffsInBatch = batch.UpdatedComponents;
|
var diffsInBatch = batch.UpdatedComponents;
|
||||||
Assert.Equal(1, diffsInBatch.Count);
|
Assert.Equal(1, diffsInBatch.Count);
|
||||||
return (diffsInBatch.Array[0], batch.ReferenceFrames.ToArray(), batch);
|
return (diffsInBatch.Array[0], batch.ReferenceFrames.AsEnumerable().ToArray(), batch);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RenderBatch GetRenderedBatch(bool initializeFromFrames = false)
|
private RenderBatch GetRenderedBatch(bool initializeFromFrames = false)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.AspNetCore.Components.RenderTree;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Components
|
||||||
|
{
|
||||||
|
internal static class ArrayRangeExtensions
|
||||||
|
{
|
||||||
|
public static IEnumerable<T> AsEnumerable<T>(this ArrayRange<T> source)
|
||||||
|
{
|
||||||
|
// This is very allocatey, hence it only existing in test code.
|
||||||
|
// If we need a way to enumerate ArrayRange in product code, we should
|
||||||
|
// consider adding an AsSpan() method or a struct enumerator.
|
||||||
|
return new ArraySegment<T>(source.Array, 0, source.Count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -97,8 +97,8 @@ namespace Microsoft.AspNetCore.Components.Test.Helpers
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clone other data, as underlying storage will get reused by later batches
|
// Clone other data, as underlying storage will get reused by later batches
|
||||||
capturedBatch.ReferenceFrames = renderBatch.ReferenceFrames.ToArray();
|
capturedBatch.ReferenceFrames = renderBatch.ReferenceFrames.AsEnumerable().ToArray();
|
||||||
capturedBatch.DisposedComponentIDs = renderBatch.DisposedComponentIDs.ToList();
|
capturedBatch.DisposedComponentIDs = renderBatch.DisposedComponentIDs.AsEnumerable().ToList();
|
||||||
|
|
||||||
// This renderer updates the UI synchronously, like the WebAssembly one.
|
// This renderer updates the UI synchronously, like the WebAssembly one.
|
||||||
// To test async UI updates, subclass TestRenderer and override UpdateDisplayAsync.
|
// To test async UI updates, subclass TestRenderer and override UpdateDisplayAsync.
|
||||||
|
|
|
||||||
|
|
@ -249,7 +249,6 @@ namespace Microsoft.AspNetCore.Http.Features
|
||||||
public RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory) { }
|
public RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory scopeFactory) { }
|
||||||
public System.IServiceProvider RequestServices { get { throw null; } set { } }
|
public System.IServiceProvider RequestServices { get { throw null; } set { } }
|
||||||
public void Dispose() { }
|
public void Dispose() { }
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute]
|
|
||||||
public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
|
public System.Threading.Tasks.ValueTask DisposeAsync() { throw null; }
|
||||||
}
|
}
|
||||||
public partial class ResponseBodyPipeFeature : Microsoft.AspNetCore.Http.Features.IResponseBodyPipeFeature
|
public partial class ResponseBodyPipeFeature : Microsoft.AspNetCore.Http.Features.IResponseBodyPipeFeature
|
||||||
|
|
|
||||||
|
|
@ -42,12 +42,19 @@ namespace Microsoft.AspNetCore.Http.Features
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async ValueTask DisposeAsync()
|
public ValueTask DisposeAsync()
|
||||||
{
|
{
|
||||||
switch (_scope)
|
switch (_scope)
|
||||||
{
|
{
|
||||||
case IAsyncDisposable asyncDisposable:
|
case IAsyncDisposable asyncDisposable:
|
||||||
await asyncDisposable.DisposeAsync();
|
var vt = asyncDisposable.DisposeAsync();
|
||||||
|
if (!vt.IsCompletedSuccessfully)
|
||||||
|
{
|
||||||
|
return Awaited(this, vt);
|
||||||
|
}
|
||||||
|
// If its a IValueTaskSource backed ValueTask,
|
||||||
|
// inform it its result has been read so it can reset
|
||||||
|
vt.GetAwaiter().GetResult();
|
||||||
break;
|
break;
|
||||||
case IDisposable disposable:
|
case IDisposable disposable:
|
||||||
disposable.Dispose();
|
disposable.Dispose();
|
||||||
|
|
@ -56,6 +63,15 @@ namespace Microsoft.AspNetCore.Http.Features
|
||||||
|
|
||||||
_scope = null;
|
_scope = null;
|
||||||
_requestServices = null;
|
_requestServices = null;
|
||||||
|
|
||||||
|
return default;
|
||||||
|
|
||||||
|
static async ValueTask Awaited(RequestServicesFeature servicesFeature, ValueTask vt)
|
||||||
|
{
|
||||||
|
await vt;
|
||||||
|
servicesFeature._scope = null;
|
||||||
|
servicesFeature._requestServices = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
|
|
||||||
|
|
@ -58,8 +58,10 @@
|
||||||
AfterTargets="Build">
|
AfterTargets="Build">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BuildContentForAncm Include="$(RepositoryRoot)src\Servers\IIS\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(TempPlatform)\*.*" />
|
<BuildContentForAncm Include="$(RepositoryRoot)src\Servers\IIS\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(TempPlatform)\*.*" />
|
||||||
|
<BuildContentForAncmHandler Include="$(RepositoryRoot)src\Servers\IIS\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\$(TempPlatform)\*.*" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Copy SourceFiles="@(BuildContentForAncm)" DestinationFolder="$(InstallersOutputPath)\IISExpressSymbols\$(TempPlatform)" />
|
<Copy SourceFiles="@(BuildContentForAncm)" DestinationFolder="$(InstallersOutputPath)\IISExpressSymbols\$(TempPlatform)" />
|
||||||
|
<Copy SourceFiles="@(BuildContentForAncmHandler)" DestinationFolder="$(InstallersOutputPath)\IISExpressSymbols\$(TempPlatform)" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,13 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
{
|
{
|
||||||
void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel model);
|
void Apply(Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel model);
|
||||||
}
|
}
|
||||||
|
public partial interface IPageApplicationModelPartsProvider
|
||||||
|
{
|
||||||
|
Microsoft.AspNetCore.Mvc.ApplicationModels.PageHandlerModel CreateHandlerModel(System.Reflection.MethodInfo method);
|
||||||
|
Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel CreateParameterModel(System.Reflection.ParameterInfo parameter);
|
||||||
|
Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel CreatePropertyModel(System.Reflection.PropertyInfo property);
|
||||||
|
bool IsHandler(System.Reflection.MethodInfo methodInfo);
|
||||||
|
}
|
||||||
public partial interface IPageApplicationModelProvider
|
public partial interface IPageApplicationModelProvider
|
||||||
{
|
{
|
||||||
int Order { get; }
|
int Order { get; }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,276 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Razor;
|
||||||
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
{
|
||||||
|
internal class DefaultPageApplicationModelPartsProvider: IPageApplicationModelPartsProvider
|
||||||
|
{
|
||||||
|
private readonly IModelMetadataProvider _modelMetadataProvider;
|
||||||
|
|
||||||
|
private readonly Func<ActionContext, bool> _supportsAllRequests;
|
||||||
|
private readonly Func<ActionContext, bool> _supportsNonGetRequests;
|
||||||
|
|
||||||
|
|
||||||
|
public DefaultPageApplicationModelPartsProvider(IModelMetadataProvider modelMetadataProvider)
|
||||||
|
{
|
||||||
|
_modelMetadataProvider = modelMetadataProvider;
|
||||||
|
|
||||||
|
_supportsAllRequests = _ => true;
|
||||||
|
_supportsNonGetRequests = context => !HttpMethods.IsGet(context.HttpContext.Request.Method);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="PageHandlerModel"/> for the specified <paramref name="method"/>.s
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="method">The <see cref="MethodInfo"/>.</param>
|
||||||
|
/// <returns>The <see cref="PageHandlerModel"/>.</returns>
|
||||||
|
public PageHandlerModel CreateHandlerModel(MethodInfo method)
|
||||||
|
{
|
||||||
|
if (method == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(method));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsHandler(method))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TryParseHandlerMethod(method.Name, out var httpMethod, out var handlerName))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var handlerModel = new PageHandlerModel(
|
||||||
|
method,
|
||||||
|
method.GetCustomAttributes(inherit: true))
|
||||||
|
{
|
||||||
|
Name = method.Name,
|
||||||
|
HandlerName = handlerName,
|
||||||
|
HttpMethod = httpMethod,
|
||||||
|
};
|
||||||
|
|
||||||
|
var methodParameters = handlerModel.MethodInfo.GetParameters();
|
||||||
|
|
||||||
|
for (var i = 0; i < methodParameters.Length; i++)
|
||||||
|
{
|
||||||
|
var parameter = methodParameters[i];
|
||||||
|
var parameterModel = CreateParameterModel(parameter);
|
||||||
|
parameterModel.Handler = handlerModel;
|
||||||
|
|
||||||
|
handlerModel.Parameters.Add(parameterModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
return handlerModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="PageParameterModel"/> for the specified <paramref name="parameter"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parameter">The <see cref="ParameterInfo"/>.</param>
|
||||||
|
/// <returns>The <see cref="PageParameterModel"/>.</returns>
|
||||||
|
public PageParameterModel CreateParameterModel(ParameterInfo parameter)
|
||||||
|
{
|
||||||
|
if (parameter == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(parameter));
|
||||||
|
}
|
||||||
|
|
||||||
|
var attributes = parameter.GetCustomAttributes(inherit: true);
|
||||||
|
|
||||||
|
BindingInfo bindingInfo;
|
||||||
|
if (_modelMetadataProvider is ModelMetadataProvider modelMetadataProviderBase)
|
||||||
|
{
|
||||||
|
var modelMetadata = modelMetadataProviderBase.GetMetadataForParameter(parameter);
|
||||||
|
bindingInfo = BindingInfo.GetBindingInfo(attributes, modelMetadata);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bindingInfo = BindingInfo.GetBindingInfo(attributes);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PageParameterModel(parameter, attributes)
|
||||||
|
{
|
||||||
|
BindingInfo = bindingInfo,
|
||||||
|
ParameterName = parameter.Name,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="PagePropertyModel"/> for the <paramref name="property"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="property">The <see cref="PropertyInfo"/>.</param>
|
||||||
|
/// <returns>The <see cref="PagePropertyModel"/>.</returns>
|
||||||
|
public PagePropertyModel CreatePropertyModel(PropertyInfo property)
|
||||||
|
{
|
||||||
|
if (property == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(property));
|
||||||
|
}
|
||||||
|
|
||||||
|
var propertyAttributes = property.GetCustomAttributes(inherit: true);
|
||||||
|
|
||||||
|
// BindingInfo for properties can be either specified by decorating the property with binding-specific attributes.
|
||||||
|
// ModelMetadata also adds information from the property's type and any configured IBindingMetadataProvider.
|
||||||
|
var propertyMetadata = _modelMetadataProvider.GetMetadataForProperty(property.DeclaringType, property.Name);
|
||||||
|
var bindingInfo = BindingInfo.GetBindingInfo(propertyAttributes, propertyMetadata);
|
||||||
|
|
||||||
|
if (bindingInfo == null)
|
||||||
|
{
|
||||||
|
// Look for BindPropertiesAttribute on the handler type if no BindingInfo was inferred for the property.
|
||||||
|
// This allows a user to enable model binding on properties by decorating the controller type with BindPropertiesAttribute.
|
||||||
|
var declaringType = property.DeclaringType;
|
||||||
|
var bindPropertiesAttribute = declaringType.GetCustomAttribute<BindPropertiesAttribute>(inherit: true);
|
||||||
|
if (bindPropertiesAttribute != null)
|
||||||
|
{
|
||||||
|
var requestPredicate = bindPropertiesAttribute.SupportsGet ? _supportsAllRequests : _supportsNonGetRequests;
|
||||||
|
bindingInfo = new BindingInfo
|
||||||
|
{
|
||||||
|
RequestPredicate = requestPredicate,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var model = new PagePropertyModel(property, propertyAttributes)
|
||||||
|
{
|
||||||
|
PropertyName = property.Name,
|
||||||
|
BindingInfo = bindingInfo,
|
||||||
|
};
|
||||||
|
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Determines if the specified <paramref name="methodInfo"/> is a handler.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="methodInfo">The <see cref="MethodInfo"/>.</param>
|
||||||
|
/// <returns><c>true</c> if the <paramref name="methodInfo"/> is a handler. Otherwise <c>false</c>.</returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// Override this method to provide custom logic to determine which methods are considered handlers.
|
||||||
|
/// </remarks>
|
||||||
|
public bool IsHandler(MethodInfo methodInfo)
|
||||||
|
{
|
||||||
|
// The SpecialName bit is set to flag members that are treated in a special way by some compilers
|
||||||
|
// (such as property accessors and operator overloading methods).
|
||||||
|
if (methodInfo.IsSpecialName)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overridden methods from Object class, e.g. Equals(Object), GetHashCode(), etc., are not valid.
|
||||||
|
if (methodInfo.GetBaseDefinition().DeclaringType == typeof(object))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (methodInfo.IsStatic)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (methodInfo.IsAbstract)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (methodInfo.IsConstructor)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (methodInfo.IsGenericMethod)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!methodInfo.IsPublic)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (methodInfo.IsDefined(typeof(NonHandlerAttribute)))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exclude the whole hierarchy of Page.
|
||||||
|
var declaringType = methodInfo.DeclaringType;
|
||||||
|
if (declaringType == typeof(Page) ||
|
||||||
|
declaringType == typeof(PageBase) ||
|
||||||
|
declaringType == typeof(RazorPageBase))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exclude methods declared on PageModel
|
||||||
|
if (declaringType == typeof(PageModel))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static bool TryParseHandlerMethod(string methodName, out string httpMethod, out string handler)
|
||||||
|
{
|
||||||
|
httpMethod = null;
|
||||||
|
handler = null;
|
||||||
|
|
||||||
|
// Handler method names always start with "On"
|
||||||
|
if (!methodName.StartsWith("On") || methodName.Length <= "On".Length)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now we parse the method name according to our conventions to determine the required HTTP method
|
||||||
|
// and optional 'handler name'.
|
||||||
|
//
|
||||||
|
// Valid names look like:
|
||||||
|
// - OnGet
|
||||||
|
// - OnPost
|
||||||
|
// - OnFooBar
|
||||||
|
// - OnTraceAsync
|
||||||
|
// - OnPostEditAsync
|
||||||
|
|
||||||
|
var start = "On".Length;
|
||||||
|
var length = methodName.Length;
|
||||||
|
if (methodName.EndsWith("Async", StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
length -= "Async".Length;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (start == length)
|
||||||
|
{
|
||||||
|
// There are no additional characters. This is "On" or "OnAsync".
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The http method follows "On" and is required to be at least one character. We use casing
|
||||||
|
// to determine where it ends.
|
||||||
|
var handlerNameStart = start + 1;
|
||||||
|
for (; handlerNameStart < length; handlerNameStart++)
|
||||||
|
{
|
||||||
|
if (char.IsUpper(methodName[handlerNameStart]))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
httpMethod = methodName.Substring(start, handlerNameStart - start);
|
||||||
|
|
||||||
|
// The handler name follows the http method and is optional. It includes everything up to the end
|
||||||
|
// excluding the "Async" suffix (if present).
|
||||||
|
handler = handlerNameStart == length ? null : methodName.Substring(handlerNameStart, length - handlerNameStart);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -22,19 +22,18 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
private readonly PageHandlerResultFilter _pageHandlerResultFilter = new PageHandlerResultFilter();
|
private readonly PageHandlerResultFilter _pageHandlerResultFilter = new PageHandlerResultFilter();
|
||||||
private readonly IModelMetadataProvider _modelMetadataProvider;
|
private readonly IModelMetadataProvider _modelMetadataProvider;
|
||||||
private readonly RazorPagesOptions _razorPagesOptions;
|
private readonly RazorPagesOptions _razorPagesOptions;
|
||||||
private readonly Func<ActionContext, bool> _supportsAllRequests;
|
private readonly IPageApplicationModelPartsProvider _pageApplicationModelPartsProvider;
|
||||||
private readonly Func<ActionContext, bool> _supportsNonGetRequests;
|
|
||||||
private readonly HandleOptionsRequestsPageFilter _handleOptionsRequestsFilter;
|
private readonly HandleOptionsRequestsPageFilter _handleOptionsRequestsFilter;
|
||||||
|
|
||||||
public DefaultPageApplicationModelProvider(
|
public DefaultPageApplicationModelProvider(
|
||||||
IModelMetadataProvider modelMetadataProvider,
|
IModelMetadataProvider modelMetadataProvider,
|
||||||
IOptions<RazorPagesOptions> razorPagesOptions)
|
IOptions<RazorPagesOptions> razorPagesOptions,
|
||||||
|
IPageApplicationModelPartsProvider pageApplicationModelPartsProvider)
|
||||||
{
|
{
|
||||||
_modelMetadataProvider = modelMetadataProvider;
|
_modelMetadataProvider = modelMetadataProvider;
|
||||||
_razorPagesOptions = razorPagesOptions.Value;
|
_razorPagesOptions = razorPagesOptions.Value;
|
||||||
|
_pageApplicationModelPartsProvider = pageApplicationModelPartsProvider;
|
||||||
|
|
||||||
_supportsAllRequests = _ => true;
|
|
||||||
_supportsNonGetRequests = context => !HttpMethods.IsGet(context.HttpContext.Request.Method);
|
|
||||||
_handleOptionsRequestsFilter = new HandleOptionsRequestsPageFilter();
|
_handleOptionsRequestsFilter = new HandleOptionsRequestsPageFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,7 +132,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
|
||||||
for (var i = 0; i < properties.Length; i++)
|
for (var i = 0; i < properties.Length; i++)
|
||||||
{
|
{
|
||||||
var propertyModel = CreatePropertyModel(properties[i].Property);
|
var propertyModel = _pageApplicationModelPartsProvider.CreatePropertyModel(properties[i].Property);
|
||||||
if (propertyModel != null)
|
if (propertyModel != null)
|
||||||
{
|
{
|
||||||
propertyModel.Page = pageModel;
|
propertyModel.Page = pageModel;
|
||||||
|
|
@ -149,7 +148,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
|
||||||
for (var i = 0; i < methods.Length; i++)
|
for (var i = 0; i < methods.Length; i++)
|
||||||
{
|
{
|
||||||
var handler = CreateHandlerModel(methods[i]);
|
var handler = _pageApplicationModelPartsProvider.CreateHandlerModel(methods[i]);
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
pageModel.HandlerMethods.Add(handler);
|
pageModel.HandlerMethods.Add(handler);
|
||||||
|
|
@ -181,250 +180,5 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
|
||||||
pageModel.Filters.Add(_handleOptionsRequestsFilter);
|
pageModel.Filters.Add(_handleOptionsRequestsFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a <see cref="PageHandlerModel"/> for the specified <paramref name="method"/>.s
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="method">The <see cref="MethodInfo"/>.</param>
|
|
||||||
/// <returns>The <see cref="PageHandlerModel"/>.</returns>
|
|
||||||
protected virtual PageHandlerModel CreateHandlerModel(MethodInfo method)
|
|
||||||
{
|
|
||||||
if (method == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(method));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsHandler(method))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TryParseHandlerMethod(method.Name, out var httpMethod, out var handlerName))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var handlerModel = new PageHandlerModel(
|
|
||||||
method,
|
|
||||||
method.GetCustomAttributes(inherit: true))
|
|
||||||
{
|
|
||||||
Name = method.Name,
|
|
||||||
HandlerName = handlerName,
|
|
||||||
HttpMethod = httpMethod,
|
|
||||||
};
|
|
||||||
|
|
||||||
var methodParameters = handlerModel.MethodInfo.GetParameters();
|
|
||||||
|
|
||||||
for (var i = 0; i < methodParameters.Length; i++)
|
|
||||||
{
|
|
||||||
var parameter = methodParameters[i];
|
|
||||||
var parameterModel = CreateParameterModel(parameter);
|
|
||||||
parameterModel.Handler = handlerModel;
|
|
||||||
|
|
||||||
handlerModel.Parameters.Add(parameterModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
return handlerModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a <see cref="PageParameterModel"/> for the specified <paramref name="parameter"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="parameter">The <see cref="ParameterInfo"/>.</param>
|
|
||||||
/// <returns>The <see cref="PageParameterModel"/>.</returns>
|
|
||||||
protected virtual PageParameterModel CreateParameterModel(ParameterInfo parameter)
|
|
||||||
{
|
|
||||||
if (parameter == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(parameter));
|
|
||||||
}
|
|
||||||
|
|
||||||
var attributes = parameter.GetCustomAttributes(inherit: true);
|
|
||||||
|
|
||||||
BindingInfo bindingInfo;
|
|
||||||
if (_modelMetadataProvider is ModelMetadataProvider modelMetadataProviderBase)
|
|
||||||
{
|
|
||||||
var modelMetadata = modelMetadataProviderBase.GetMetadataForParameter(parameter);
|
|
||||||
bindingInfo = BindingInfo.GetBindingInfo(attributes, modelMetadata);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bindingInfo = BindingInfo.GetBindingInfo(attributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new PageParameterModel(parameter, attributes)
|
|
||||||
{
|
|
||||||
BindingInfo = bindingInfo,
|
|
||||||
ParameterName = parameter.Name,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a <see cref="PagePropertyModel"/> for the <paramref name="property"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="property">The <see cref="PropertyInfo"/>.</param>
|
|
||||||
/// <returns>The <see cref="PagePropertyModel"/>.</returns>
|
|
||||||
protected virtual PagePropertyModel CreatePropertyModel(PropertyInfo property)
|
|
||||||
{
|
|
||||||
if (property == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(property));
|
|
||||||
}
|
|
||||||
|
|
||||||
var propertyAttributes = property.GetCustomAttributes(inherit: true);
|
|
||||||
|
|
||||||
// BindingInfo for properties can be either specified by decorating the property with binding-specific attributes.
|
|
||||||
// ModelMetadata also adds information from the property's type and any configured IBindingMetadataProvider.
|
|
||||||
var propertyMetadata = _modelMetadataProvider.GetMetadataForProperty(property.DeclaringType, property.Name);
|
|
||||||
var bindingInfo = BindingInfo.GetBindingInfo(propertyAttributes, propertyMetadata);
|
|
||||||
|
|
||||||
if (bindingInfo == null)
|
|
||||||
{
|
|
||||||
// Look for BindPropertiesAttribute on the handler type if no BindingInfo was inferred for the property.
|
|
||||||
// This allows a user to enable model binding on properties by decorating the controller type with BindPropertiesAttribute.
|
|
||||||
var declaringType = property.DeclaringType;
|
|
||||||
var bindPropertiesAttribute = declaringType.GetCustomAttribute<BindPropertiesAttribute>(inherit: true);
|
|
||||||
if (bindPropertiesAttribute != null)
|
|
||||||
{
|
|
||||||
var requestPredicate = bindPropertiesAttribute.SupportsGet ? _supportsAllRequests : _supportsNonGetRequests;
|
|
||||||
bindingInfo = new BindingInfo
|
|
||||||
{
|
|
||||||
RequestPredicate = requestPredicate,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var model = new PagePropertyModel(property, propertyAttributes)
|
|
||||||
{
|
|
||||||
PropertyName = property.Name,
|
|
||||||
BindingInfo = bindingInfo,
|
|
||||||
};
|
|
||||||
|
|
||||||
return model;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Determines if the specified <paramref name="methodInfo"/> is a handler.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="methodInfo">The <see cref="MethodInfo"/>.</param>
|
|
||||||
/// <returns><c>true</c> if the <paramref name="methodInfo"/> is a handler. Otherwise <c>false</c>.</returns>
|
|
||||||
/// <remarks>
|
|
||||||
/// Override this method to provide custom logic to determine which methods are considered handlers.
|
|
||||||
/// </remarks>
|
|
||||||
protected virtual bool IsHandler(MethodInfo methodInfo)
|
|
||||||
{
|
|
||||||
// The SpecialName bit is set to flag members that are treated in a special way by some compilers
|
|
||||||
// (such as property accessors and operator overloading methods).
|
|
||||||
if (methodInfo.IsSpecialName)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Overridden methods from Object class, e.g. Equals(Object), GetHashCode(), etc., are not valid.
|
|
||||||
if (methodInfo.GetBaseDefinition().DeclaringType == typeof(object))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (methodInfo.IsStatic)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (methodInfo.IsAbstract)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (methodInfo.IsConstructor)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (methodInfo.IsGenericMethod)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!methodInfo.IsPublic)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (methodInfo.IsDefined(typeof(NonHandlerAttribute)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exclude the whole hierarchy of Page.
|
|
||||||
var declaringType = methodInfo.DeclaringType;
|
|
||||||
if (declaringType == typeof(Page) ||
|
|
||||||
declaringType == typeof(PageBase) ||
|
|
||||||
declaringType == typeof(RazorPageBase))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exclude methods declared on PageModel
|
|
||||||
if (declaringType == typeof(PageModel))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static bool TryParseHandlerMethod(string methodName, out string httpMethod, out string handler)
|
|
||||||
{
|
|
||||||
httpMethod = null;
|
|
||||||
handler = null;
|
|
||||||
|
|
||||||
// Handler method names always start with "On"
|
|
||||||
if (!methodName.StartsWith("On") || methodName.Length <= "On".Length)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now we parse the method name according to our conventions to determine the required HTTP method
|
|
||||||
// and optional 'handler name'.
|
|
||||||
//
|
|
||||||
// Valid names look like:
|
|
||||||
// - OnGet
|
|
||||||
// - OnPost
|
|
||||||
// - OnFooBar
|
|
||||||
// - OnTraceAsync
|
|
||||||
// - OnPostEditAsync
|
|
||||||
|
|
||||||
var start = "On".Length;
|
|
||||||
var length = methodName.Length;
|
|
||||||
if (methodName.EndsWith("Async", StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
length -= "Async".Length;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start == length)
|
|
||||||
{
|
|
||||||
// There are no additional characters. This is "On" or "OnAsync".
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The http method follows "On" and is required to be at least one character. We use casing
|
|
||||||
// to determine where it ends.
|
|
||||||
var handlerNameStart = start + 1;
|
|
||||||
for (; handlerNameStart < length; handlerNameStart++)
|
|
||||||
{
|
|
||||||
if (char.IsUpper(methodName[handlerNameStart]))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
httpMethod = methodName.Substring(start, handlerNameStart - start);
|
|
||||||
|
|
||||||
// The handler name follows the http method and is optional. It includes everything up to the end
|
|
||||||
// excluding the "Async" suffix (if present).
|
|
||||||
handler = handlerNameStart == length ? null : methodName.Substring(handlerNameStart, length - handlerNameStart);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Provides parts that are used to construct a <see cref="PageApplicationModel" /> instance
|
||||||
|
/// </summary>
|
||||||
|
public interface IPageApplicationModelPartsProvider
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="PageHandlerModel"/> for the specified <paramref name="method"/>.s
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="method">The <see cref="MethodInfo"/>.</param>
|
||||||
|
/// <returns>The <see cref="PageHandlerModel"/>.</returns>
|
||||||
|
PageHandlerModel CreateHandlerModel(MethodInfo method);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="PageParameterModel"/> for the specified <paramref name="parameter"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parameter">The <see cref="ParameterInfo"/>.</param>
|
||||||
|
/// <returns>The <see cref="PageParameterModel"/>.</returns>
|
||||||
|
PageParameterModel CreateParameterModel(ParameterInfo parameter);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="PagePropertyModel"/> for the <paramref name="property"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="property">The <see cref="PropertyInfo"/>.</param>
|
||||||
|
/// <returns>The <see cref="PagePropertyModel"/>.</returns>
|
||||||
|
PagePropertyModel CreatePropertyModel(PropertyInfo property);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Determines if the specified <paramref name="methodInfo"/> is a handler.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="methodInfo">The <see cref="MethodInfo"/>.</param>
|
||||||
|
/// <returns><c>true</c> if the <paramref name="methodInfo"/> is a handler. Otherwise <c>false</c>.</returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// Override this method to provide custom logic to determine which methods are considered handlers.
|
||||||
|
/// </remarks>
|
||||||
|
bool IsHandler(MethodInfo methodInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -113,6 +113,8 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
services.TryAddEnumerable(
|
services.TryAddEnumerable(
|
||||||
ServiceDescriptor.Singleton<IPageApplicationModelProvider, ResponseCacheFilterApplicationModelProvider>());
|
ServiceDescriptor.Singleton<IPageApplicationModelProvider, ResponseCacheFilterApplicationModelProvider>());
|
||||||
|
|
||||||
|
services.TryAddSingleton<IPageApplicationModelPartsProvider, DefaultPageApplicationModelPartsProvider>();
|
||||||
|
|
||||||
services.TryAddEnumerable(
|
services.TryAddEnumerable(
|
||||||
ServiceDescriptor.Singleton<IActionInvokerProvider, PageActionInvokerProvider>());
|
ServiceDescriptor.Singleton<IActionInvokerProvider, PageActionInvokerProvider>());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -188,9 +188,12 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
|
||||||
private static PageApplicationModelProviderContext GetApplicationProviderContext(TypeInfo typeInfo)
|
private static PageApplicationModelProviderContext GetApplicationProviderContext(TypeInfo typeInfo)
|
||||||
{
|
{
|
||||||
|
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||||
|
|
||||||
var defaultProvider = new DefaultPageApplicationModelProvider(
|
var defaultProvider = new DefaultPageApplicationModelProvider(
|
||||||
TestModelMetadataProvider.CreateDefaultProvider(),
|
modelMetadataProvider,
|
||||||
Options.Create(new RazorPagesOptions()));
|
Options.Create(new RazorPagesOptions()),
|
||||||
|
new DefaultPageApplicationModelPartsProvider(modelMetadataProvider));
|
||||||
|
|
||||||
var context = new PageApplicationModelProviderContext(new PageActionDescriptor(), typeInfo);
|
var context = new PageApplicationModelProviderContext(new PageActionDescriptor(), typeInfo);
|
||||||
defaultProvider.OnProvidersExecuting(context);
|
defaultProvider.OnProvidersExecuting(context);
|
||||||
|
|
|
||||||
|
|
@ -971,7 +971,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
public void TryParseHandler_ParsesHandlerNames_InvalidData(string methodName)
|
public void TryParseHandler_ParsesHandlerNames_InvalidData(string methodName)
|
||||||
{
|
{
|
||||||
// Act
|
// Act
|
||||||
var result = DefaultPageApplicationModelProvider.TryParseHandlerMethod(methodName, out var httpMethod, out var handler);
|
var result = DefaultPageApplicationModelPartsProvider.TryParseHandlerMethod(methodName, out var httpMethod, out var handler);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.False(result);
|
Assert.False(result);
|
||||||
|
|
@ -993,7 +993,7 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = DefaultPageApplicationModelProvider.TryParseHandlerMethod(methodName, out var httpMethod, out var handler);
|
var result = DefaultPageApplicationModelPartsProvider.TryParseHandlerMethod(methodName, out var httpMethod, out var handler);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.True(result);
|
Assert.True(result);
|
||||||
|
|
@ -1169,9 +1169,12 @@ namespace Microsoft.AspNetCore.Mvc.ApplicationModels
|
||||||
|
|
||||||
private static DefaultPageApplicationModelProvider CreateProvider()
|
private static DefaultPageApplicationModelProvider CreateProvider()
|
||||||
{
|
{
|
||||||
|
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||||
|
|
||||||
return new DefaultPageApplicationModelProvider(
|
return new DefaultPageApplicationModelProvider(
|
||||||
TestModelMetadataProvider.CreateDefaultProvider(),
|
modelMetadataProvider,
|
||||||
Options.Create(new RazorPagesOptions()));
|
Options.Create(new RazorPagesOptions()),
|
||||||
|
new DefaultPageApplicationModelPartsProvider(modelMetadataProvider));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -142,9 +142,12 @@ namespace Microsoft.AspNetCore.Mvc.Filters
|
||||||
|
|
||||||
private static PageApplicationModelProviderContext GetApplicationProviderContext(TypeInfo typeInfo)
|
private static PageApplicationModelProviderContext GetApplicationProviderContext(TypeInfo typeInfo)
|
||||||
{
|
{
|
||||||
|
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||||
|
|
||||||
var defaultProvider = new DefaultPageApplicationModelProvider(
|
var defaultProvider = new DefaultPageApplicationModelProvider(
|
||||||
TestModelMetadataProvider.CreateDefaultProvider(),
|
modelMetadataProvider,
|
||||||
Options.Create(new RazorPagesOptions()));
|
Options.Create(new RazorPagesOptions()),
|
||||||
|
new DefaultPageApplicationModelPartsProvider(modelMetadataProvider));
|
||||||
|
|
||||||
var context = new PageApplicationModelProviderContext(new PageActionDescriptor(), typeInfo);
|
var context = new PageApplicationModelProviderContext(new PageActionDescriptor(), typeInfo);
|
||||||
defaultProvider.OnProvidersExecuting(context);
|
defaultProvider.OnProvidersExecuting(context);
|
||||||
|
|
|
||||||
|
|
@ -184,7 +184,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core
|
||||||
var rawUrlInBytes = GetRawUrlInBytes();
|
var rawUrlInBytes = GetRawUrlInBytes();
|
||||||
|
|
||||||
// Pre Windows 10 RS2 applicationInitialization request might not have pRawUrl set, fallback to cocked url
|
// Pre Windows 10 RS2 applicationInitialization request might not have pRawUrl set, fallback to cocked url
|
||||||
if (rawUrlInBytes == null)
|
if (rawUrlInBytes.Length == 0)
|
||||||
{
|
{
|
||||||
return GetCookedUrl().GetAbsPath();
|
return GetCookedUrl().GetAbsPath();
|
||||||
}
|
}
|
||||||
|
|
@ -193,9 +193,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core
|
||||||
// check and skip it
|
// check and skip it
|
||||||
if (rawUrlInBytes.Length > 0 && rawUrlInBytes[rawUrlInBytes.Length - 1] == 0)
|
if (rawUrlInBytes.Length > 0 && rawUrlInBytes[rawUrlInBytes.Length - 1] == 0)
|
||||||
{
|
{
|
||||||
var newRawUrlInBytes = new byte[rawUrlInBytes.Length - 1];
|
rawUrlInBytes = rawUrlInBytes.Slice(0, rawUrlInBytes.Length - 1);
|
||||||
Array.Copy(rawUrlInBytes, newRawUrlInBytes, newRawUrlInBytes.Length);
|
|
||||||
rawUrlInBytes = newRawUrlInBytes;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var originalPath = RequestUriBuilder.DecodeAndUnescapePath(rawUrlInBytes);
|
var originalPath = RequestUriBuilder.DecodeAndUnescapePath(rawUrlInBytes);
|
||||||
|
|
|
||||||
|
|
@ -178,7 +178,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConditionalFact]
|
[ConditionalFact]
|
||||||
[Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/1831", FlakyOn.All)]
|
[Repeat(100)]
|
||||||
public async Task ReaderThrowsCancelledException()
|
public async Task ReaderThrowsCancelledException()
|
||||||
{
|
{
|
||||||
var requestStartedCompletionSource = CreateTaskCompletionSource();
|
var requestStartedCompletionSource = CreateTaskCompletionSource();
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,11 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||||
<InProcessTestSite>true</InProcessTestSite>
|
<InProcessTestSite>true</InProcessTestSite>
|
||||||
|
<IsIISTest>true</IsIISTest>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="../FunctionalTest.props" />
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
|
<ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
|
||||||
<ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
|
<ProjectReference Include="$(RepositoryRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
|
||||||
|
|
@ -42,11 +42,7 @@ namespace System.Buffers
|
||||||
|
|
||||||
~MemoryPoolBlock()
|
~MemoryPoolBlock()
|
||||||
{
|
{
|
||||||
if (Slab != null && Slab.IsActive)
|
Pool.RefreshBlock(Slab, _offset, _length);
|
||||||
{
|
|
||||||
// Need to make a new object because this one is being finalized
|
|
||||||
Pool.Return(new MemoryPoolBlock(Pool, Slab, _offset, _length));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
|
@ -58,4 +54,4 @@ namespace System.Buffers
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,21 @@ namespace System.Buffers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method can ONLY be called from the finalizer of MemoryPoolBlock
|
||||||
|
internal void RefreshBlock(MemoryPoolSlab slab, int offset, int length)
|
||||||
|
{
|
||||||
|
lock (_disposeSync)
|
||||||
|
{
|
||||||
|
if (!_isDisposed && slab != null && slab.IsActive)
|
||||||
|
{
|
||||||
|
// Need to make a new object because this one is being finalized
|
||||||
|
// Note, this must be called within the _disposeSync lock because the block
|
||||||
|
// could be disposed at the same time as the finalizer.
|
||||||
|
Return(new MemoryPoolBlock(this, slab, offset, length));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
if (_isDisposed)
|
if (_isDisposed)
|
||||||
|
|
|
||||||
|
|
@ -138,17 +138,14 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal byte[] GetRawUrlInBytes()
|
internal Span<byte> GetRawUrlInBytes()
|
||||||
{
|
{
|
||||||
if (NativeRequest->pRawUrl != null && NativeRequest->RawUrlLength > 0)
|
if (NativeRequest->pRawUrl != null && NativeRequest->RawUrlLength > 0)
|
||||||
{
|
{
|
||||||
var result = new byte[NativeRequest->RawUrlLength];
|
return new Span<byte>(NativeRequest->pRawUrl, NativeRequest->RawUrlLength);
|
||||||
Marshal.Copy((IntPtr)NativeRequest->pRawUrl, result, 0, NativeRequest->RawUrlLength);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return default;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal CookedUrl GetCookedUrl()
|
internal CookedUrl GetCookedUrl()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -8,12 +8,10 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
{
|
{
|
||||||
internal static class RawUrlHelper
|
internal static class RawUrlHelper
|
||||||
{
|
{
|
||||||
private static readonly byte[] _forwardSlashPath = Encoding.ASCII.GetBytes("/");
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Find the segment of the URI byte array which represents the path.
|
/// Find the segment of the URI byte array which represents the path.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static ArraySegment<byte> GetPath(byte[] raw)
|
public static Span<byte> GetPath(Span<byte> raw)
|
||||||
{
|
{
|
||||||
// performance
|
// performance
|
||||||
var pathStartIndex = 0;
|
var pathStartIndex = 0;
|
||||||
|
|
@ -38,12 +36,12 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
// and http.sys behavior: If the Uri contains a query, there must be at least one '/'
|
// and http.sys behavior: If the Uri contains a query, there must be at least one '/'
|
||||||
// between the authority and the '?' character: It's safe to just look for the first
|
// between the authority and the '?' character: It's safe to just look for the first
|
||||||
// '/' after the authority to determine the beginning of the path.
|
// '/' after the authority to determine the beginning of the path.
|
||||||
pathStartIndex = Find(raw, authorityStartIndex, '/');
|
pathStartIndex = Find(raw, authorityStartIndex, (byte)'/');
|
||||||
if (pathStartIndex == -1)
|
if (pathStartIndex == -1)
|
||||||
{
|
{
|
||||||
// e.g. for request lines like: 'GET http://myserver' (no final '/')
|
// e.g. for request lines like: 'GET http://myserver' (no final '/')
|
||||||
// At this point we can return a path with a slash.
|
// At this point we can return a path with a slash.
|
||||||
return new ArraySegment<byte>(_forwardSlashPath);
|
return default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -67,7 +65,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
scan++;
|
scan++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ArraySegment<byte>(raw, pathStartIndex, scan - pathStartIndex);
|
return raw.Slice(pathStartIndex, scan - pathStartIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -75,7 +73,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="raw">The byte array represents the raw URI</param>
|
/// <param name="raw">The byte array represents the raw URI</param>
|
||||||
/// <returns>Length of the matched bytes, 0 if it is not matched.</returns>
|
/// <returns>Length of the matched bytes, 0 if it is not matched.</returns>
|
||||||
private static int FindHttpOrHttps(byte[] raw)
|
private static int FindHttpOrHttps(Span<byte> raw)
|
||||||
{
|
{
|
||||||
if (raw.Length < 7)
|
if (raw.Length < 7)
|
||||||
{
|
{
|
||||||
|
|
@ -135,17 +133,14 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int Find(byte[] raw, int begin, char target)
|
private static int Find(Span<byte> raw, int begin, byte target)
|
||||||
{
|
{
|
||||||
for (var idx = begin; idx < raw.Length; ++idx)
|
var idx = raw.Slice(begin).IndexOf(target);
|
||||||
|
if (idx != -1)
|
||||||
{
|
{
|
||||||
if (raw[idx] == target)
|
return idx + begin;
|
||||||
{
|
|
||||||
return idx;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return idx;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.HttpSys.Internal
|
namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
|
|
@ -17,23 +18,19 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
encoderShouldEmitUTF8Identifier: false,
|
encoderShouldEmitUTF8Identifier: false,
|
||||||
throwOnInvalidBytes: true);
|
throwOnInvalidBytes: true);
|
||||||
|
|
||||||
public static string DecodeAndUnescapePath(byte[] rawUrlBytes)
|
public static string DecodeAndUnescapePath(Span<byte> rawUrlBytes)
|
||||||
{
|
{
|
||||||
if (rawUrlBytes == null)
|
Debug.Assert(rawUrlBytes.Length == 0, "Length of the URL cannot be zero.");
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(rawUrlBytes));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rawUrlBytes.Length == 0)
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Length of the URL cannot be zero.", nameof(rawUrlBytes));
|
|
||||||
}
|
|
||||||
|
|
||||||
var rawPath = RawUrlHelper.GetPath(rawUrlBytes);
|
var rawPath = RawUrlHelper.GetPath(rawUrlBytes);
|
||||||
|
|
||||||
|
if (rawPath.Length == 0)
|
||||||
|
{
|
||||||
|
return "/";
|
||||||
|
}
|
||||||
|
|
||||||
var unescapedPath = Unescape(rawPath);
|
var unescapedPath = Unescape(rawPath);
|
||||||
|
|
||||||
return UTF8.GetString(unescapedPath.Array, unescapedPath.Offset, unescapedPath.Count);
|
return UTF8.GetString(unescapedPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -41,19 +38,16 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="rawPath">The raw path string to be unescaped</param>
|
/// <param name="rawPath">The raw path string to be unescaped</param>
|
||||||
/// <returns>The unescaped path string</returns>
|
/// <returns>The unescaped path string</returns>
|
||||||
private static ArraySegment<byte> Unescape(ArraySegment<byte> rawPath)
|
private static ReadOnlySpan<byte> Unescape(Span<byte> rawPath)
|
||||||
{
|
{
|
||||||
// the slot to read the input
|
// the slot to read the input
|
||||||
var reader = rawPath.Offset;
|
var reader = 0;
|
||||||
|
|
||||||
// the slot to write the unescaped byte
|
// the slot to write the unescaped byte
|
||||||
var writer = rawPath.Offset;
|
var writer = 0;
|
||||||
|
|
||||||
// the end of the path
|
// the end of the path
|
||||||
var end = rawPath.Offset + rawPath.Count;
|
var end = rawPath.Length;
|
||||||
|
|
||||||
// the byte array
|
|
||||||
var buffer = rawPath.Array;
|
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
|
|
@ -62,7 +56,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rawPath.Array[reader] == '%')
|
if (rawPath[reader] == '%')
|
||||||
{
|
{
|
||||||
var decodeReader = reader;
|
var decodeReader = reader;
|
||||||
|
|
||||||
|
|
@ -73,20 +67,20 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
// The decodeReader iterator is always moved to the first byte not yet
|
// The decodeReader iterator is always moved to the first byte not yet
|
||||||
// be scanned after the process. A failed decoding means the chars
|
// be scanned after the process. A failed decoding means the chars
|
||||||
// between the reader and decodeReader can be copied to output untouched.
|
// between the reader and decodeReader can be copied to output untouched.
|
||||||
if (!DecodeCore(ref decodeReader, ref writer, end, buffer))
|
if (!DecodeCore(ref decodeReader, ref writer, end, rawPath))
|
||||||
{
|
{
|
||||||
Copy(reader, decodeReader, ref writer, buffer);
|
Copy(reader, decodeReader, ref writer, rawPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
reader = decodeReader;
|
reader = decodeReader;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
buffer[writer++] = buffer[reader++];
|
rawPath[writer++] = rawPath[reader++];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ArraySegment<byte>(buffer, rawPath.Offset, writer - rawPath.Offset);
|
return rawPath.Slice(0, writer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -96,7 +90,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
/// <param name="writer">The place to write to</param>
|
/// <param name="writer">The place to write to</param>
|
||||||
/// <param name="end">The end of the buffer</param>
|
/// <param name="end">The end of the buffer</param>
|
||||||
/// <param name="buffer">The byte array</param>
|
/// <param name="buffer">The byte array</param>
|
||||||
private static bool DecodeCore(ref int reader, ref int writer, int end, byte[] buffer)
|
private static bool DecodeCore(ref int reader, ref int writer, int end, Span<byte> buffer)
|
||||||
{
|
{
|
||||||
// preserves the original head. if the percent-encodings cannot be interpreted as sequence of UTF-8 octets,
|
// preserves the original head. if the percent-encodings cannot be interpreted as sequence of UTF-8 octets,
|
||||||
// bytes from this till the last scanned one will be copied to the memory pointed by writer.
|
// bytes from this till the last scanned one will be copied to the memory pointed by writer.
|
||||||
|
|
@ -232,7 +226,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Copy(int begin, int end, ref int writer, byte[] buffer)
|
private static void Copy(int begin, int end, ref int writer, Span<byte> buffer)
|
||||||
{
|
{
|
||||||
while (begin != end)
|
while (begin != end)
|
||||||
{
|
{
|
||||||
|
|
@ -260,7 +254,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
/// <param name="end">The end of the buffer</param>
|
/// <param name="end">The end of the buffer</param>
|
||||||
/// <param name="buffer">The byte array</param>
|
/// <param name="buffer">The byte array</param>
|
||||||
/// <returns>The unescaped byte if success. Otherwise return -1.</returns>
|
/// <returns>The unescaped byte if success. Otherwise return -1.</returns>
|
||||||
private static int? UnescapePercentEncoding(ref int scan, int end, byte[] buffer)
|
private static int? UnescapePercentEncoding(ref int scan, int end, ReadOnlySpan<byte> buffer)
|
||||||
{
|
{
|
||||||
if (buffer[scan++] != '%')
|
if (buffer[scan++] != '%')
|
||||||
{
|
{
|
||||||
|
|
@ -300,7 +294,7 @@ namespace Microsoft.AspNetCore.HttpSys.Internal
|
||||||
/// <param name="end">The end of the buffer</param>
|
/// <param name="end">The end of the buffer</param>
|
||||||
/// <param name="buffer">The byte array</param>
|
/// <param name="buffer">The byte array</param>
|
||||||
/// <returns>The hexadecimal value if successes, otherwise -1.</returns>
|
/// <returns>The hexadecimal value if successes, otherwise -1.</returns>
|
||||||
private static int? ReadHex(ref int scan, int end, byte[] buffer)
|
private static int? ReadHex(ref int scan, int end, ReadOnlySpan<byte> buffer)
|
||||||
{
|
{
|
||||||
if (scan == end)
|
if (scan == end)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
SET RepoRoot=%~dp0..\..
|
SET RepoRoot=%~dp0..\..\
|
||||||
%RepoRoot%\build.cmd -projects %~dp0**\*.*proj %*
|
%RepoRoot%build.cmd -projects %~dp0**\*.*proj %*
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<AspNetCoreMajorVersion>3</AspNetCoreMajorVersion>
|
<AspNetCoreMajorVersion>3</AspNetCoreMajorVersion>
|
||||||
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
||||||
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
||||||
<PreReleasePreviewNumber>5</PreReleasePreviewNumber>
|
<PreReleasePreviewNumber>6</PreReleasePreviewNumber>
|
||||||
<PreReleaseLabel>preview$(PreReleasePreviewNumber)</PreReleaseLabel>
|
<PreReleaseLabel>preview$(PreReleasePreviewNumber)</PreReleaseLabel>
|
||||||
<PreReleaseBrandingLabel>Preview $(PreReleasePreviewNumber)</PreReleaseBrandingLabel>
|
<PreReleaseBrandingLabel>Preview $(PreReleasePreviewNumber)</PreReleaseBrandingLabel>
|
||||||
<ExperimentalVersionPrefix>0.3.$(AspNetCorePatchVersion)</ExperimentalVersionPrefix>
|
<ExperimentalVersionPrefix>0.3.$(AspNetCorePatchVersion)</ExperimentalVersionPrefix>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue