merge from master (#9)
merge from master Co-authored-by: Nick Darvey <nickdarvey@outlook.com.au> Co-authored-by: David Fowler <davidfowl@gmail.com> Co-authored-by: Pranav K <prkrishn@hotmail.com> Co-authored-by: Ryan Nowak <nowakra@gmail.com> Co-authored-by: Justin Kotalik <jkotalik12@gmail.com> Co-authored-by: Kristian Hellang <kristian@hellang.com> Co-authored-by: Ajay Bhargav Baaskaran <ajaybhargavb@gmail.com> Co-authored-by: null <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Hao Kung <HaoK@users.noreply.github.com> Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com> Co-authored-by: Chris Ross <Tratcher@Outlook.com> Co-authored-by: Thomas Levesque <thomaslevesque@users.noreply.github.com> Co-authored-by: Javier Calvarro Nelson <jacalvar@microsoft.com> Co-authored-by: Mikael Mengistu <mikaelm12@users.noreply.github.com> Co-authored-by: Stephen Halter <halter73@gmail.com> Co-authored-by: Brennan <brecon@microsoft.com> Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com> Co-authored-by: Andrew Stanton-Nurse <andrew@stanton-nurse.com> Co-authored-by: Jacques Eloff <joeloff@users.noreply.github.com> Co-authored-by: John Luo <johluo@microsoft.com> Co-authored-by: huysentruitw <wouter_huysentruit@hotmail.com> Co-authored-by: Ben Adams <thundercat@illyriad.co.uk> Co-authored-by: Dylan Dmitri Gray <d.dylan.g@gmail.com> Co-authored-by: Nate McMaster <natemcmaster@users.noreply.github.com> Co-authored-by: dotnet-maestro <@dotnet-maestro> Co-authored-by: Daniel Roth <daroth@microsoft.com>
This commit is contained in:
commit
ff1065070c
|
|
@ -10,8 +10,8 @@ pr:
|
|||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix
|
||||
jobDisplayName: 'Tests: Helix'
|
||||
jobName: Helix_x64
|
||||
jobDisplayName: 'Tests: Helix x64'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 240
|
||||
steps:
|
||||
|
|
@ -25,3 +25,23 @@ jobs:
|
|||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
||||
# Build Helix ARM64
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_arm64
|
||||
jobDisplayName: "Tests: Helix ARM64"
|
||||
agentOs: Linux
|
||||
timeoutInMinutes: 240
|
||||
steps:
|
||||
- script: ./restore.sh -ci
|
||||
displayName: Restore
|
||||
- script: ./build.sh -ci --arch arm64 -test --no-build-nodejs -projects $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:BuildAllProjects=true /p:BuildNative=true -bl
|
||||
displayName: Run build.sh helix arm64 target
|
||||
env:
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
installNodeJs: false
|
||||
artifacts:
|
||||
- name: Helix_arm64_logs
|
||||
path: artifacts/logs/
|
||||
publishOnError: true
|
||||
|
|
|
|||
|
|
@ -39,4 +39,4 @@ modules/
|
|||
launchSettings.json
|
||||
msbuild.ProjectImports.zip
|
||||
StyleCop.Cache
|
||||
UpgradeLog.htm
|
||||
UpgradeLog.htm
|
||||
|
|
@ -25,7 +25,12 @@
|
|||
<PackageBrandingVersion>$(VersionPrefix)</PackageBrandingVersion>
|
||||
<PackageBrandingVersion Condition=" '$(VersionSuffix)' != '' ">$(PackageBrandingVersion) $(BrandingVersionSuffix.Trim())</PackageBrandingVersion>
|
||||
|
||||
<SiteExtensionSuffix>$(VersionSuffix.Replace('.','-'))</SiteExtensionSuffix>
|
||||
<SiteExtensionPackageVersion>$(VersionPrefix)-$(SiteExtensionSuffix)</SiteExtensionPackageVersion>
|
||||
|
||||
<OriginalPackageVersion>$(Version)</OriginalPackageVersion>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' == '' ">$(Version)</PackageVersion>
|
||||
<PackageVersion Condition=" '$(NoSemVer20)' == 'true' ">$(SiteExtensionPackageVersion)</PackageVersion>
|
||||
<SharedFxVersion>$(PackageVersion)</SharedFxVersion>
|
||||
|
||||
<TargetingPackVersion>$(TargetingPackVersionPrefix)</TargetingPackVersion>
|
||||
|
|
@ -93,6 +98,10 @@
|
|||
<BuildHelixPayload Condition="'$(BuildHelixPayload)' == '' AND '$(IsTestProject)' == 'true'">true</BuildHelixPayload>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(Language)' == 'C#' AND '$(IsReferenceAssemblyProject)' == 'true'">
|
||||
<Compile Include="$(SharedSourceRoot)ReferenceAssemblyInfo.cs" LinkBase="Properties" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<KnownFrameworkReference Update="Microsoft.NETCore.App">
|
||||
<!-- Always update the 'latest version', whether the repo is servicing or not. -->
|
||||
|
|
|
|||
|
|
@ -1,12 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<!--
|
||||
Restore sources should be defined in eng/Versions.props.
|
||||
The only allowed feeds here are dotnet-core and nuget.org, which is required to work around
|
||||
https://github.com/Microsoft/msbuild/issues/2914
|
||||
-->
|
||||
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||
</packageSources>
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@
|
|||
<FileExtensionSignInfo Include=".nupkg" CertificateName="NuGet" />
|
||||
<FileExtensionSignInfo Include=".vsix" CertificateName="VsixSHA2" />
|
||||
<FileExtensionSignInfo Include=".zip" CertificateName="None" />
|
||||
<FileExtensionSignInfo Include=".cab" CertificateName="None" />
|
||||
<FileExtensionSignInfo Include=".msi" CertificateName="None" />
|
||||
|
||||
<!--
|
||||
Use the PublicKeyToken of .NET assemblies to determine with authenticode cert to use.
|
||||
|
|
|
|||
|
|
@ -9,400 +9,400 @@
|
|||
-->
|
||||
<Dependencies>
|
||||
<ProductDependencies>
|
||||
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="0.10.0-preview7.19323.1">
|
||||
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="0.10.0-preview7.19351.1">
|
||||
<Uri>https://github.com/aspnet/Blazor</Uri>
|
||||
<Sha>8df334032840bda9221fe281890e88fb1de06845</Sha>
|
||||
<Sha>10ac2538243650ab287ba9fafe6d05e30c40f9ae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview7.19321.2">
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview7.19328.6">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>5e7c4e5e382a7e486d9416b711fcd65bae25808b</Sha>
|
||||
<Sha>ff305c700f72e199c9a41ee43fdc21e7dfa7020c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview7.19321.2">
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview7.19328.6">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>5e7c4e5e382a7e486d9416b711fcd65bae25808b</Sha>
|
||||
<Sha>ff305c700f72e199c9a41ee43fdc21e7dfa7020c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview7.19321.2">
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview7.19328.6">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>5e7c4e5e382a7e486d9416b711fcd65bae25808b</Sha>
|
||||
<Sha>ff305c700f72e199c9a41ee43fdc21e7dfa7020c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview7.19321.2">
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview7.19328.6">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>5e7c4e5e382a7e486d9416b711fcd65bae25808b</Sha>
|
||||
<Sha>ff305c700f72e199c9a41ee43fdc21e7dfa7020c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-ef" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="dotnet-ef" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview7.19313.2">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview7.19330.4">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>507ef211ada34b69c600d02d202761fe7af7c07f</Sha>
|
||||
<Sha>9e3b10d68188c9518cfc5bb3cb0050968adadd99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Json" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Text.Json" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview7-27812-08" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview7-27826-20" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>094b6111d3d8c90d1111db4d73fd9faa755d9413</Sha>
|
||||
<Sha>ee0c7ead1a46f06f98aff9102b785f532b71da9c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="3.0.0-preview7-27812-08" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="3.0.0-preview7-27826-20" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>094b6111d3d8c90d1111db4d73fd9faa755d9413</Sha>
|
||||
<Sha>ee0c7ead1a46f06f98aff9102b785f532b71da9c</Sha>
|
||||
</Dependency>
|
||||
<!--
|
||||
Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
|
||||
All Runtime.$rid packages should have the same version.
|
||||
-->
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.0.0-preview7-27812-08" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.0.0-preview7-27826-20" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>094b6111d3d8c90d1111db4d73fd9faa755d9413</Sha>
|
||||
<Sha>ee0c7ead1a46f06f98aff9102b785f532b71da9c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-preview7-27812-08" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-preview7-27826-20" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>094b6111d3d8c90d1111db4d73fd9faa755d9413</Sha>
|
||||
<Sha>ee0c7ead1a46f06f98aff9102b785f532b71da9c</Sha>
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview7.19312.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview7.19326.13" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>28efaabc4349d11a95f8f31eb932c84f207916ab</Sha>
|
||||
<Sha>72da80db3fd14b84fefeef54ac0930c711f306f4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19323.4">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
|
|
@ -416,9 +416,9 @@
|
|||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>9946534da4f73e6242ca105f6798ab58119c9ab0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview7.19312.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview7.19328.2" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>42b3a303ba27594637de04c78aaf9f1c7af6e303</Sha>
|
||||
<Sha>531db4e313e577192cdbca3931c4298b6db1e611</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
|
|
|||
|
|
@ -54,110 +54,110 @@
|
|||
<!-- Packages from dotnet/arcade -->
|
||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19323.4</MicrosoftDotNetGenAPIPackageVersion>
|
||||
<!-- Packages from dotnet/core-setup -->
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview7-27812-08</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>3.0.0-preview7-27812-08</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.0.0-preview7-27812-08</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0-preview7-27812-08</NETStandardLibraryRefPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview7-27826-20</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>3.0.0-preview7-27826-20</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.0.0-preview7-27826-20</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0-preview7-27826-20</NETStandardLibraryRefPackageVersion>
|
||||
<!-- Packages from dotnet/corefx -->
|
||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.0.0-preview7.19312.3</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>4.6.0-preview7.19312.3</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview7.19312.3</MicrosoftWin32RegistryPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview7.19312.3</SystemComponentModelAnnotationsPackageVersion>
|
||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.0.0-preview7.19326.13</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>4.6.0-preview7.19326.13</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview7.19326.13</MicrosoftWin32RegistryPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview7.19326.13</SystemComponentModelAnnotationsPackageVersion>
|
||||
<SystemDataSqlClientPackageVersion>4.7.0-preview6.19264.9</SystemDataSqlClientPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview7.19312.3</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>4.6.0-preview7.19312.3</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview7.19312.3</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview7.19312.3</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.7.0-preview7.19312.3</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview7.19312.3</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview7.19312.3</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview7.19312.3</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview7.19312.3</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>4.6.0-preview7.19312.3</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview7.19312.3</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview7.19312.3</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>4.6.0-preview7.19312.3</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>4.6.0-preview7.19312.3</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>4.6.0-preview7.19312.3</SystemThreadingChannelsPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview7.19326.13</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>4.6.0-preview7.19326.13</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview7.19326.13</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview7.19326.13</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.7.0-preview7.19326.13</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview7.19326.13</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview7.19326.13</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview7.19326.13</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview7.19326.13</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>4.6.0-preview7.19326.13</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview7.19326.13</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview7.19326.13</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>4.6.0-preview7.19326.13</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>4.6.0-preview7.19326.13</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>4.6.0-preview7.19326.13</SystemThreadingChannelsPackageVersion>
|
||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview7.19312.3</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview7.19326.13</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<!-- Packages from aspnet/Blazor -->
|
||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>0.10.0-preview7.19323.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>0.10.0-preview7.19351.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||
<!-- Packages from aspnet/Extensions -->
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview7.19312.4</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview7.19312.4</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview7.19312.4</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview7.19312.4</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview7.19312.4</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>3.0.0-preview7.19312.4</MicrosoftJSInteropPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview7.19312.4</MonoWebAssemblyInteropPackageVersion>
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview7.19328.2</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview7.19328.2</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview7.19328.2</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview7.19328.2</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview7.19328.2</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>3.0.0-preview7.19328.2</MicrosoftJSInteropPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview7.19328.2</MonoWebAssemblyInteropPackageVersion>
|
||||
<!-- Packages from aspnet/EntityFrameworkCore -->
|
||||
<dotnetefPackageVersion>3.0.0-preview7.19313.2</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview7.19313.2</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview7.19313.2</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview7.19313.2</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview7.19313.2</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview7.19313.2</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview7.19313.2</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<dotnetefPackageVersion>3.0.0-preview7.19330.4</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview7.19330.4</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview7.19330.4</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview7.19330.4</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview7.19330.4</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview7.19330.4</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview7.19330.4</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview7.19321.2</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview7.19321.2</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview7.19321.2</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview7.19321.2</MicrosoftNETSdkRazorPackageVersion>
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview7.19328.6</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview7.19328.6</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview7.19328.6</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview7.19328.6</MicrosoftNETSdkRazorPackageVersion>
|
||||
</PropertyGroup>
|
||||
<!--
|
||||
|
||||
|
|
@ -217,8 +217,7 @@
|
|||
<CastleCorePackageVersion>4.2.1</CastleCorePackageVersion>
|
||||
<FSharpCorePackageVersion>4.2.1</FSharpCorePackageVersion>
|
||||
<GoogleProtobufPackageVersion>3.8.0</GoogleProtobufPackageVersion>
|
||||
<GrpcAspNetCoreServerPackageVersion>0.1.21-pre1</GrpcAspNetCoreServerPackageVersion>
|
||||
<GrpcToolsPackageVersion>1.21.0</GrpcToolsPackageVersion>
|
||||
<GrpcAspNetCorePackageVersion>0.1.22-pre1</GrpcAspNetCorePackageVersion>
|
||||
<IdentityServer4AspNetIdentityPackageVersion>3.0.0-preview3.4</IdentityServer4AspNetIdentityPackageVersion>
|
||||
<IdentityServer4EntityFrameworkPackageVersion>3.0.0-preview3.4</IdentityServer4EntityFrameworkPackageVersion>
|
||||
<IdentityServer4PackageVersion>3.0.0-preview3.4</IdentityServer4PackageVersion>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
<WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<!-- Workaround for https://github.com/dotnet/arcade/issues/204 -->
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Internal.AspNetCore.BuildTasks" PrivateAssets="All" Version="$(InternalAspNetCoreBuildTasksPackageVersion)" IsImplicitlyDefined="true" />
|
||||
|
|
@ -58,4 +57,10 @@
|
|||
</KnownFrameworkReference>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Work around https://github.com/dotnet/cli/issues/11378. -->
|
||||
<Target Name="_WorkaroundNetStandard" AfterTargets="ResolvePackageAssets">
|
||||
<ItemGroup>
|
||||
<TransitiveFrameworkReference Remove="NETStandard.Library" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -9,16 +9,18 @@ if type -P "node" &>/dev/null; then
|
|||
fi
|
||||
|
||||
node_version=$1
|
||||
arch=$2
|
||||
osname=`uname -s`
|
||||
echo $osname
|
||||
if [ "$osname" = "Darwin" ]; then
|
||||
platformarch='darwin-x64'
|
||||
platformarch="darwin-$arch"
|
||||
else
|
||||
platformarch='linux-x64'
|
||||
platformarch="linux-$arch"
|
||||
fi
|
||||
echo "PlatformArch: $platformarch"
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
output_dir="$DIR/node"
|
||||
url="http://nodejs.org/dist/v$node_version/node-v$node_version-$platformarch.tar.gz"
|
||||
echo "Downloading from: $url"
|
||||
tmp="$(mktemp -d -t install-node.XXXXXX)"
|
||||
trap "rm -rf $tmp" EXIT
|
||||
cd "$tmp"
|
||||
|
|
|
|||
|
|
@ -7,17 +7,18 @@ set targetFrameworkIdentifier=%2
|
|||
set sdkVersion=%3
|
||||
set runtimeVersion=%4
|
||||
set helixQueue=%5
|
||||
set arch=%6
|
||||
|
||||
set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk
|
||||
set DOTNET_ROOT=%DOTNET_HOME%\x64
|
||||
set DOTNET_ROOT=%DOTNET_HOME%\%arch%
|
||||
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
||||
set DOTNET_MULTILEVEL_LOOKUP=0
|
||||
set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home
|
||||
|
||||
set PATH=%DOTNET_ROOT%;%PATH%;%HELIX_CORRELATION_PAYLOAD%\node\bin
|
||||
|
||||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture x64 -Version %sdkVersion% -InstallDir %DOTNET_ROOT%"
|
||||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture x64 -Runtime dotnet -Version %runtimeVersion% -InstallDir %DOTNET_ROOT%"
|
||||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture %arch% -Version %sdkVersion% -InstallDir %DOTNET_ROOT%"
|
||||
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture %arch% -Runtime dotnet -Version %runtimeVersion% -InstallDir %DOTNET_ROOT%"
|
||||
|
||||
set HELIX=%helixQueue%
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<PropertyGroup Condition=" '$(ContinuousIntegrationBuild)' == 'true' ">
|
||||
<HelixType>ci</HelixType>
|
||||
<Creator>aspnetcore</Creator>
|
||||
<HelixBuild>$(BUILD_BUILDNUMBER).$(SYSTEM_JOBATTEMPT)</HelixBuild>
|
||||
<HelixBuild>$(BUILD_BUILDNUMBER).$(TargetArchitecture).$(SYSTEM_JOBATTEMPT)</HelixBuild>
|
||||
<WaitForWorkItemCompletion>true</WaitForWorkItemCompletion>
|
||||
<EnableAzurePipelinesReporter>true</EnableAzurePipelinesReporter>
|
||||
<FailOnMissionControlTestFailure>true</FailOnMissionControlTestFailure>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,10 @@
|
|||
<HelixAvailablePlatform Include="Windows" />
|
||||
<HelixAvailablePlatform Include="OSX" />
|
||||
<HelixAvailablePlatform Include="Linux" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<!-- x64 queues -->
|
||||
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'x64'">
|
||||
<HelixAvailableTargetQueue Include="Windows.10.Amd64.ClientRS4.VS2017.Open" Platform="Windows" />
|
||||
<HelixAvailableTargetQueue Include="Windows.81.Amd64.Open" Platform="Windows" />
|
||||
<HelixAvailableTargetQueue Include="Windows.7.Amd64.Open" Platform="Windows" />
|
||||
|
|
@ -23,8 +26,16 @@
|
|||
<HelixAvailableTargetQueue Include="Debian.9.Amd64.Open" Platform="Linux" />
|
||||
<HelixAvailableTargetQueue Include="Redhat.7.Amd64.Open" Platform="Linux" />
|
||||
<HelixAvailableTargetQueue Include="(Fedora.28.Amd64.Open)Ubuntu.1604.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249" Platform="Linux" />
|
||||
|
||||
<!-- TODO: re-enable Debian.9.Arm64.Open and Ubuntu.1804.Arm64.Open -->
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'arm64'">
|
||||
<!-- arm64 queues -->
|
||||
<HelixAvailableTargetQueue Include="(Debian.9.Arm64.Open)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-0a0ebdd-20190312215438" Platform="Linux" />
|
||||
|
||||
<!-- Need to resolve permission issues on this docker queue
|
||||
<HelixAvailableTargetQueue Include="(Alpine.38.Arm64)Ubuntu.1604.Arm64.Docker@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190327215724" Platform="Linux" />
|
||||
<HelixAvailableTargetQueue Include="(Ubuntu-1804.Arm64.Open)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-6f28fa9-20190606004102" Platform="Linux" />
|
||||
-->
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(IsWindowsOnlyTest)' == 'true'">
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'false'">
|
||||
<HelixPreCommand Include="./installnode.sh $(NodeVersion)" />
|
||||
<HelixPreCommand Include="./installnode.sh $(NodeVersion) $(TargetArchitecture)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true'">
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
|
|||
|
||||
<PropertyGroup>
|
||||
<BuildHelixPayload Condition="'@(_HelixApplicableTargetQueue->Count())' == '0'">false</BuildHelixPayload>
|
||||
<BuildHelixPayload Condition="'$(TargetArchitecture)' == 'arm64' AND '$(SkipHelixArm)' == 'true'">false</BuildHelixPayload>
|
||||
</PropertyGroup>
|
||||
|
||||
</Target>
|
||||
|
||||
<Target Name="_PublishHelixArchive" DependsOnTargets="Publish" >
|
||||
|
|
@ -78,8 +78,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
|
|||
<TestAssembly>$(TargetFileName)</TestAssembly>
|
||||
<PreCommands>@(HelixPreCommand)</PreCommands>
|
||||
<PostCommands>@(HelixPostCommand)</PostCommands>
|
||||
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(TargetFrameworkIdentifier) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue)</Command>
|
||||
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue)</Command>
|
||||
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(TargetFrameworkIdentifier) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture)</Command>
|
||||
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture)</Command>
|
||||
<Timeout>$(HelixTimeout)</Timeout>
|
||||
</HelixWorkItem>
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,11 @@
|
|||
<_BackupPackageJson>$(IntermediateOutputPath)$(MSBuildProjectName).package.json.bak</_BackupPackageJson>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<TSFiles Include="$(MSBuildProjectDirectory)\*\*.ts" />
|
||||
<TSFiles Include="$(MSBuildProjectDirectory)\package.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="_CheckForInvalidConfiguration">
|
||||
<Error Text="Missing expected property: PackageId" Condition="'$(IsPackable)' != 'false' and '$(PackageId)' == ''" />
|
||||
</Target>
|
||||
|
|
@ -31,8 +36,14 @@
|
|||
BuildInParallel="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Build" DependsOnTargets="PrepareForBuild;ResolveProjectReferences">
|
||||
<Yarn Command="run build" Condition="'$(IsBuildable)' != 'false'" StandardOutputImportance="High" StandardErrorImportance="High" />
|
||||
<Target Name="Build" DependsOnTargets="PrepareForBuild;ResolveProjectReferences;_Build" />
|
||||
|
||||
<Target Name="_Build"
|
||||
Condition="'$(IsBuildable)' != 'false'"
|
||||
Inputs="@(TSFiles)"
|
||||
Outputs="$(BaseIntermediateOutputPath)\build-sentinel" >
|
||||
<Yarn Command="run build" StandardOutputImportance="High" StandardErrorImportance="High" />
|
||||
<WriteLinesToFile Overwrite="true" File="$(BaseIntermediateOutputPath)\build-sentinel" />
|
||||
</Target>
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)">
|
||||
<PackageId>$(PackageId)</PackageId>
|
||||
<PackageVersion>$(PackageVersion)</PackageVersion>
|
||||
<VersionSuffix>$(VersionSuffix)</VersionSuffix>
|
||||
<VersionVariableName>$(PackageId.Replace('.',''))PackageVersion</VersionVariableName>
|
||||
</_ProjectPathWithVersion>
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -76,10 +76,6 @@
|
|||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ProjectListFile>$(MSBuildThisFileDirectory)..\eng\ProjectReferences.props</ProjectListFile>
|
||||
<RefsTargetFramework>$(TargetFrameworks)</RefsTargetFramework>
|
||||
<RefsTargetFramework Condition="'$(RefsTargetFramework)' == ''">$(TargetFramework)</RefsTargetFramework>
|
||||
|
||||
<ReferencesContent>
|
||||
<![CDATA[
|
||||
<ItemGroup Condition="'%24(TargetFramework)' == '$(TargetFramework)'">
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@ namespace RepoTasks
|
|||
[Required]
|
||||
public string TargetFile { get; set; }
|
||||
|
||||
public string ManagedRoot { get; set; } = "";
|
||||
|
||||
public string NativeRoot { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Extra attributes to place on the root node.
|
||||
///
|
||||
|
|
@ -46,7 +50,6 @@ namespace RepoTasks
|
|||
{
|
||||
Item = item,
|
||||
Filename = Path.GetFileName(item.ItemSpec),
|
||||
TargetPath = item.GetMetadata("TargetPath"),
|
||||
AssemblyName = FileUtilities.GetAssemblyName(item.ItemSpec),
|
||||
FileVersion = FileUtilities.GetFileVersion(item.ItemSpec),
|
||||
IsNative = item.GetMetadata("IsNativeImage") == "true",
|
||||
|
|
@ -55,15 +58,14 @@ namespace RepoTasks
|
|||
.Where(f =>
|
||||
!f.IsSymbolFile &&
|
||||
(f.Filename.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || f.IsNative))
|
||||
.OrderBy(f => f.TargetPath, StringComparer.Ordinal)
|
||||
.ThenBy(f => f.Filename, StringComparer.Ordinal))
|
||||
.OrderBy(f => f.Filename, StringComparer.Ordinal))
|
||||
{
|
||||
var element = new XElement(
|
||||
"File",
|
||||
new XAttribute("Type", f.IsNative ? "Native" : "Managed"),
|
||||
new XAttribute(
|
||||
"Path",
|
||||
Path.Combine(f.TargetPath, f.Filename).Replace('\\', '/')));
|
||||
Path.Combine(f.IsNative ? NativeRoot : ManagedRoot, f.Filename).Replace('\\', '/')));
|
||||
|
||||
if (f.AssemblyName != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "3.0.100-preview5-011568"
|
||||
"version": "3.0.100-preview6-012264"
|
||||
},
|
||||
"tools": {
|
||||
"dotnet": "3.0.100-preview5-011568",
|
||||
"dotnet": "3.0.100-preview6-012264",
|
||||
"runtimes": {
|
||||
"dotnet/x64": [
|
||||
"$(MicrosoftNETCoreAppRuntimeVersion)"
|
||||
|
|
|
|||
|
|
@ -284,8 +284,7 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal
|
|||
var ex = Assert.Throws<ArgumentNullException>(
|
||||
() => tokenProvider.TryValidateTokenSet(httpContext, null, fieldtoken, out message));
|
||||
|
||||
var trimmed = ex.Message.Substring(0, ex.Message.IndexOf(Environment.NewLine));
|
||||
Assert.Equal(@"The required antiforgery cookie token must be provided.", trimmed);
|
||||
Assert.StartsWith(@"The required antiforgery cookie token must be provided.", ex.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -307,8 +306,7 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal
|
|||
var ex = Assert.Throws<ArgumentNullException>(
|
||||
() => tokenProvider.TryValidateTokenSet(httpContext, cookieToken, null, out message));
|
||||
|
||||
var trimmed = ex.Message.Substring(0, ex.Message.IndexOf(Environment.NewLine));
|
||||
Assert.Equal("The required antiforgery request token must be provided.", trimmed);
|
||||
Assert.StartsWith("The required antiforgery request token must be provided.", ex.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -625,4 +623,4 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
|
||||
<SkipHelixArm>true</SkipHelixArm>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
"Blazor._internal.http.sendAsync",
|
||||
id,
|
||||
request.Content == null ? null : await request.Content.ReadAsByteArrayAsync(),
|
||||
JsonSerializer.ToString(options, JsonSerializerOptionsProvider.Options));
|
||||
JsonSerializer.Serialize(options, JsonSerializerOptionsProvider.Options));
|
||||
|
||||
return await tcs.Task;
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ namespace Microsoft.AspNetCore.Blazor.Http
|
|||
}
|
||||
else
|
||||
{
|
||||
var responseDescriptor = JsonSerializer.Parse<ResponseDescriptor>(responseDescriptorJson, JsonSerializerOptionsProvider.Options);
|
||||
var responseDescriptor = JsonSerializer.Deserialize<ResponseDescriptor>(responseDescriptorJson, JsonSerializerOptionsProvider.Options);
|
||||
var responseContent = responseBodyData == null ? null : new ByteArrayContent(responseBodyData);
|
||||
var responseMessage = responseDescriptor.ToResponseMessage(responseContent);
|
||||
tcs.SetResult(responseMessage);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace Microsoft.AspNetCore.Blazor.Build
|
|||
assemblyReferences,
|
||||
embeddedContent,
|
||||
linkerEnabled);
|
||||
return JsonSerializer.ToString(data, JsonSerializerOptionsProvider.Options);
|
||||
return JsonSerializer.Serialize(data, JsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
|
||||
private static string GetAssemblyEntryPoint(string assemblyPath)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<PropertyGroup>
|
||||
<RunCommand>dotnet</RunCommand>
|
||||
<_BlazorCliLocation>$(MSBuildThisFileDirectory)../../DevServer/src/bin/$(Configuration)/netcoreapp3.0/blazor-devserver.dll</_BlazorCliLocation>
|
||||
<RunArguments>exec "$(_BlazorCliLocation)" serve "$(MSBuildProjectDirectory)/$(OutputPath)$(TargetFileName)" $(AdditionalRunArguments)</RunArguments>
|
||||
<RunArguments>exec "$(_BlazorCliLocation)" serve --applicationpath "$(MSBuildProjectDirectory)/$(OutputPath)$(TargetFileName)" $(AdditionalRunArguments)</RunArguments>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
// 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.IO;
|
||||
using System.Runtime.Versioning;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.CommandLineUtils;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.DevServer.Commands
|
||||
{
|
||||
|
|
@ -23,28 +21,11 @@ namespace Microsoft.AspNetCore.Blazor.DevServer.Commands
|
|||
|
||||
HelpOption("-?|-h|--help");
|
||||
|
||||
ApplicationPath = new CommandArgument()
|
||||
{
|
||||
Description = "Path to the client application dll",
|
||||
MultipleValues = false,
|
||||
Name = "<PATH>",
|
||||
ShowInHelpText = true
|
||||
};
|
||||
Arguments.Add(ApplicationPath);
|
||||
|
||||
OnExecute(Execute);
|
||||
}
|
||||
|
||||
public CommandArgument ApplicationPath { get; private set; }
|
||||
|
||||
private int Execute()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(ApplicationPath.Value))
|
||||
{
|
||||
throw new InvalidOperationException($"Invalid value for parameter '{nameof(ApplicationPath)}'. Value supplied: '{ApplicationPath.Value}'");
|
||||
}
|
||||
|
||||
Server.Startup.ApplicationAssembly = ApplicationPath.Value;
|
||||
Server.Program.BuildWebHost(RemainingArguments.ToArray()).Run();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<Reference Include="Microsoft.AspNetCore.ResponseCompression" />
|
||||
<Reference Include="Microsoft.AspNetCore" />
|
||||
<Reference Include="Microsoft.Extensions.CommandLineUtils.Sources" />
|
||||
<Reference Include="Microsoft.Extensions.Hosting" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Pack settings -->
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace Microsoft.AspNetCore.Blazor.DevServer.Server
|
||||
{
|
||||
|
|
@ -18,12 +25,24 @@ namespace Microsoft.AspNetCore.Blazor.DevServer.Server
|
|||
/// <summary>
|
||||
/// Intended for framework test use only.
|
||||
/// </summary>
|
||||
public static IWebHost BuildWebHost(string[] args) =>
|
||||
WebHost.CreateDefaultBuilder(args)
|
||||
.UseConfiguration(new ConfigurationBuilder()
|
||||
.AddCommandLine(args)
|
||||
.Build())
|
||||
.UseStartup<Startup>()
|
||||
.Build();
|
||||
public static IHost BuildWebHost(string[] args) =>
|
||||
Host.CreateDefaultBuilder(args)
|
||||
.ConfigureHostConfiguration(cb => {
|
||||
var applicationPath = args.SkipWhile(a => a != "--applicationpath").Skip(1).FirstOrDefault();
|
||||
var name = Path.ChangeExtension(applicationPath,".StaticWebAssets.xml");
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
cb.AddInMemoryCollection(new Dictionary<string, string>
|
||||
{
|
||||
[WebHostDefaults.StaticWebAssetsKey] = name
|
||||
});
|
||||
}
|
||||
})
|
||||
.ConfigureWebHostDefaults(webBuilder =>
|
||||
{
|
||||
webBuilder.UseStaticWebAssets();
|
||||
webBuilder.UseStartup<Startup>();
|
||||
}).Build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,12 @@ namespace Microsoft.AspNetCore.Blazor.DevServer.Server
|
|||
{
|
||||
internal class Startup
|
||||
{
|
||||
public static string ApplicationAssembly { get; set; }
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
Configuration = configuration;
|
||||
}
|
||||
|
||||
public IConfiguration Configuration { get; }
|
||||
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
|
|
@ -35,7 +40,7 @@ namespace Microsoft.AspNetCore.Blazor.DevServer.Server
|
|||
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment environment, IConfiguration configuration)
|
||||
{
|
||||
var applicationAssemblyFullPath = ResolveApplicationAssemblyFullPath(environment);
|
||||
var applicationAssemblyFullPath = ResolveApplicationAssemblyFullPath();
|
||||
|
||||
app.UseDeveloperExceptionPage();
|
||||
app.UseResponseCompression();
|
||||
|
|
@ -54,15 +59,22 @@ namespace Microsoft.AspNetCore.Blazor.DevServer.Server
|
|||
});
|
||||
}
|
||||
|
||||
private static string ResolveApplicationAssemblyFullPath(IWebHostEnvironment environment)
|
||||
private string ResolveApplicationAssemblyFullPath()
|
||||
{
|
||||
var applicationAssemblyFullPath = Path.Combine(environment.ContentRootPath, ApplicationAssembly);
|
||||
if (!File.Exists(applicationAssemblyFullPath))
|
||||
const string applicationPathKey = "applicationpath";
|
||||
var configuredApplicationPath = Configuration.GetValue<string>(applicationPathKey);
|
||||
if (string.IsNullOrEmpty(configuredApplicationPath))
|
||||
{
|
||||
throw new InvalidOperationException($"Application assembly not found at {applicationAssemblyFullPath}.");
|
||||
throw new InvalidOperationException($"No value was supplied for the required option '{applicationPathKey}'.");
|
||||
}
|
||||
|
||||
return applicationAssemblyFullPath;
|
||||
var resolvedApplicationPath = Path.GetFullPath(configuredApplicationPath);
|
||||
if (!File.Exists(resolvedApplicationPath))
|
||||
{
|
||||
throw new InvalidOperationException($"Application assembly not found at {resolvedApplicationPath}.");
|
||||
}
|
||||
|
||||
return resolvedApplicationPath;
|
||||
}
|
||||
|
||||
private static void EnableConfiguredPathbase(IApplicationBuilder app, IConfiguration configuration)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
<PropertyGroup>
|
||||
<_BlazorDevServerDll>$(MSBuildThisFileDirectory)../tools/blazor-devserver.dll</_BlazorDevServerDll>
|
||||
<RunCommand>dotnet</RunCommand>
|
||||
<RunArguments>"$(_BlazorDevServerDll)" serve "$(MSBuildProjectDirectory)/$(OutputPath)$(TargetFileName)"</RunArguments>
|
||||
<RunArguments>"$(_BlazorDevServerDll)" serve --applicationpath "$(MSBuildProjectDirectory)/$(OutputPath)$(TargetFileName)"</RunArguments>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
"$schema": "http://json.schemastore.org/vs-2017.3.host",
|
||||
"name": {
|
||||
"text": "Blazor (ASP.NET Core hosted)",
|
||||
"package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}",
|
||||
"id": "1050"
|
||||
},
|
||||
"description": {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<p>Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" @onclick="@IncrementCount">Click me</button>
|
||||
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
||||
|
||||
@code {
|
||||
int currentCount = 0;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,6 @@ else
|
|||
|
||||
protected override async Task OnInitAsync()
|
||||
{
|
||||
forecasts = await Http.GetJsonAsync<WeatherForecast[]>("api/SampleData/WeatherForecasts");
|
||||
forecasts = await Http.GetJsonAsync<WeatherForecast[]>("weatherforecast");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<div class="top-row pl-4 navbar navbar-dark">
|
||||
<a class="navbar-brand" href="">BlazorHosted-CSharp</a>
|
||||
<button class="navbar-toggler" @onclick="@ToggleNavMenu">
|
||||
<button class="navbar-toggler" @onclick="ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass" @onclick="@ToggleNavMenu">
|
||||
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<span class="text-nowrap">
|
||||
Please take our
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2093904">brief survey</a>
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2098127">brief survey</a>
|
||||
</span>
|
||||
and tell us what you think.
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,22 +1,31 @@
|
|||
using BlazorHosted_CSharp.Shared;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace BlazorHosted_CSharp.Server.Controllers
|
||||
{
|
||||
[Route("api/[controller]")]
|
||||
public class SampleDataController : Controller
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
public class WeatherForecastController : ControllerBase
|
||||
{
|
||||
private static string[] Summaries = new[]
|
||||
private static readonly string[] Summaries = new[]
|
||||
{
|
||||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||||
};
|
||||
|
||||
[HttpGet("[action]")]
|
||||
public IEnumerable<WeatherForecast> WeatherForecasts()
|
||||
private readonly ILogger<WeatherForecastController> logger;
|
||||
|
||||
public WeatherForecastController(ILogger<WeatherForecastController> logger)
|
||||
{
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IEnumerable<WeatherForecast> Get()
|
||||
{
|
||||
var rng = new Random();
|
||||
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||
|
|
@ -24,7 +33,8 @@ namespace BlazorHosted_CSharp.Server.Controllers
|
|||
Date = DateTime.Now.AddDays(index),
|
||||
TemperatureC = rng.Next(-20, 55),
|
||||
Summary = Summaries[rng.Next(Summaries.Length)]
|
||||
});
|
||||
})
|
||||
.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
"$schema": "http://json.schemastore.org/vs-2017.3.host",
|
||||
"name": {
|
||||
"text": "Blazor (client-side)",
|
||||
"package": "{0CD94836-1526-4E85-87D3-FB5274C5AFC9}",
|
||||
"id": "1050"
|
||||
},
|
||||
"description": {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<p>Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" @onclick="@IncrementCount">Click me</button>
|
||||
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
||||
|
||||
@code {
|
||||
int currentCount = 0;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<div class="top-row pl-4 navbar navbar-dark">
|
||||
<a class="navbar-brand" href="">BlazorStandalone-CSharp</a>
|
||||
<button class="navbar-toggler" @onclick="@ToggleNavMenu">
|
||||
<button class="navbar-toggler" @onclick="ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass" @onclick="@ToggleNavMenu">
|
||||
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<span class="text-nowrap">
|
||||
Please take our
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2093904">brief survey</a>
|
||||
<a target="_blank" class="font-weight-bold" href="https://go.microsoft.com/fwlink/?linkid=2098127">brief survey</a>
|
||||
</span>
|
||||
and tell us what you think.
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@
|
|||
<button id="serialize-small" @onclick=SerializeSmall>Serialize (small)</button>
|
||||
<button id="serialize-large" @onclick=SerializeLarge>Serialize (large)</button>
|
||||
|
||||
<p><pre style="border: 1px solid black; overflow: scroll;">serializedValue</pre></p>
|
||||
<p><pre style="border: 1px solid black; overflow: scroll;">@serializedValue</pre></p>
|
||||
@if (serializedValue != null)
|
||||
{
|
||||
<p>Serialized length: <strong id="serialized-length">serializedValue.Length</strong> chars</p>
|
||||
<p>Serialized length: <strong id="serialized-length">@serializedValue.Length</strong> chars</p>
|
||||
}
|
||||
|
||||
<button id="deserialize-small" @onclick=DeserializeSmall>Deserialize (small)</button>
|
||||
|
|
@ -33,8 +33,8 @@
|
|||
|
||||
protected override void OnInit()
|
||||
{
|
||||
smallOrgChartJson = JsonSerializer.ToString(smallOrgChart);
|
||||
largeOrgChartJson = JsonSerializer.ToString(largeOrgChart);
|
||||
smallOrgChartJson = JsonSerializer.Serialize(smallOrgChart);
|
||||
largeOrgChartJson = JsonSerializer.Serialize(largeOrgChart);
|
||||
}
|
||||
|
||||
protected override void OnAfterRender()
|
||||
|
|
@ -51,10 +51,10 @@
|
|||
}
|
||||
|
||||
void SerializeSmall()
|
||||
=> serializedValue = JsonSerializer.ToString(smallOrgChart);
|
||||
=> serializedValue = JsonSerializer.Serialize(smallOrgChart);
|
||||
|
||||
void SerializeLarge()
|
||||
=> serializedValue = JsonSerializer.ToString(largeOrgChart);
|
||||
=> serializedValue = JsonSerializer.Serialize(largeOrgChart);
|
||||
|
||||
void DeserializeSmall()
|
||||
=> numPeopleDeserialized = Deserialize(smallOrgChartJson);
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
|
||||
static int Deserialize(string json)
|
||||
{
|
||||
var ceo = JsonSerializer.Parse<Person>(json);
|
||||
var ceo = JsonSerializer.Deserialize<Person>(json);
|
||||
return CountPeople(ceo);
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -238,6 +238,17 @@ export class BrowserRenderer {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// We handle setting 'value' on a <select> in two different ways:
|
||||
// [1] When inserting a corresponding <option>, in case you're dynamically adding options
|
||||
// [2] After we finish inserting the <select>, in case the descendant options are being
|
||||
// added as an opaque markup block rather than individually
|
||||
// Right here we implement [2]
|
||||
if (newDomElementRaw instanceof HTMLSelectElement && selectValuePropname in newDomElementRaw) {
|
||||
const selectValue = newDomElementRaw[selectValuePropname];
|
||||
newDomElementRaw.value = selectValue;
|
||||
delete newDomElementRaw[selectValuePropname];
|
||||
}
|
||||
}
|
||||
|
||||
private insertComponent(batch: RenderBatch, parent: LogicalElement, childIndex: number, frame: RenderTreeFrame) {
|
||||
|
|
@ -317,7 +328,8 @@ export class BrowserRenderer {
|
|||
// <select> is special, in that anything we write to .value will be lost if there
|
||||
// isn't yet a matching <option>. To maintain the expected behavior no matter the
|
||||
// element insertion/update order, preserve the desired value separately so
|
||||
// we can recover it when inserting any matching <option>.
|
||||
// we can recover it when inserting any matching <option> or after inserting an
|
||||
// entire markup block of descendants.
|
||||
element[selectValuePropname] = value;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -330,10 +342,11 @@ export class BrowserRenderer {
|
|||
element.removeAttribute('value');
|
||||
}
|
||||
// See above for why we have this special handling for <select>/<option>
|
||||
const parentElement = element.parentElement;
|
||||
if (parentElement && (selectValuePropname in parentElement) && parentElement[selectValuePropname] === value) {
|
||||
this.tryApplyValueProperty(batch, parentElement, attributeFrame);
|
||||
delete parentElement[selectValuePropname];
|
||||
// Note that this is only one of the two cases where we set the value on a <select>
|
||||
const selectElem = this.findClosestAncestorSelectElement(element);
|
||||
if (selectElem && (selectValuePropname in selectElem) && selectElem[selectValuePropname] === value) {
|
||||
this.tryApplyValueProperty(batch, selectElem, attributeFrame);
|
||||
delete selectElem[selectValuePropname];
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -353,6 +366,18 @@ export class BrowserRenderer {
|
|||
}
|
||||
}
|
||||
|
||||
private findClosestAncestorSelectElement(element: Element | null) {
|
||||
while (element) {
|
||||
if (element instanceof HTMLSelectElement) {
|
||||
return element;
|
||||
} else {
|
||||
element = element.parentElement;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private insertFrameRange(batch: RenderBatch, componentId: number, parent: LogicalElement, childIndex: number, frames: ArrayValues<RenderTreeFrame>, startIndex: number, endIndexExcl: number): number {
|
||||
const origChildIndex = childIndex;
|
||||
for (let index = startIndex; index < endIndexExcl; index++) {
|
||||
|
|
|
|||
|
|
@ -144,6 +144,10 @@
|
|||
resolved "https://dotnet.myget.org/F/aspnetcore-dev/npm/@dotnet/jsinterop/-/@dotnet/jsinterop-3.0.0-preview6.19280.1.tgz#4c991132f33157de93bc3b6db93cffc9e964b241"
|
||||
integrity sha1-TJkRMvMxV96TvDttuTz/yelkskE=
|
||||
|
||||
"@microsoft/signalr@link:../../SignalR/clients/ts/signalr":
|
||||
version "0.0.0"
|
||||
uid ""
|
||||
|
||||
"@types/emscripten@0.0.31":
|
||||
version "0.0.31"
|
||||
resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-0.0.31.tgz#160817d1324e8b7049604d39ac47d85eeeedd597"
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@ namespace Microsoft.AspNetCore.Components.Browser
|
|||
{
|
||||
if (fieldInfo.FieldValue is JsonElement attributeValueJsonElement)
|
||||
{
|
||||
switch (attributeValueJsonElement.Type)
|
||||
switch (attributeValueJsonElement.ValueKind)
|
||||
{
|
||||
case JsonValueType.True:
|
||||
case JsonValueType.False:
|
||||
case JsonValueKind.True:
|
||||
case JsonValueKind.False:
|
||||
fieldInfo.FieldValue = attributeValueJsonElement.GetBoolean();
|
||||
break;
|
||||
default:
|
||||
|
|
@ -90,23 +90,23 @@ namespace Microsoft.AspNetCore.Components.Browser
|
|||
|
||||
private static T Deserialize<T>(string eventArgsJson)
|
||||
{
|
||||
return JsonSerializer.Parse<T>(eventArgsJson, JsonSerializerOptionsProvider.Options);
|
||||
return JsonSerializer.Deserialize<T>(eventArgsJson, JsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
|
||||
private static UIChangeEventArgs DeserializeUIEventChangeArgs(string eventArgsJson)
|
||||
{
|
||||
var changeArgs = Deserialize<UIChangeEventArgs>(eventArgsJson);
|
||||
var jsonElement = (JsonElement)changeArgs.Value;
|
||||
switch (jsonElement.Type)
|
||||
switch (jsonElement.ValueKind)
|
||||
{
|
||||
case JsonValueType.Null:
|
||||
case JsonValueKind.Null:
|
||||
changeArgs.Value = null;
|
||||
break;
|
||||
case JsonValueType.String:
|
||||
case JsonValueKind.String:
|
||||
changeArgs.Value = jsonElement.GetString();
|
||||
break;
|
||||
case JsonValueType.True:
|
||||
case JsonValueType.False:
|
||||
case JsonValueKind.True:
|
||||
case JsonValueKind.False:
|
||||
changeArgs.Value = jsonElement.GetBoolean();
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -102,6 +102,21 @@ namespace Microsoft.AspNetCore.Components
|
|||
public void Configure(Microsoft.AspNetCore.Components.RenderHandle renderHandle) { }
|
||||
public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterCollection parameters) { throw null; }
|
||||
}
|
||||
|
||||
public partial class PageDisplay : Microsoft.AspNetCore.Components.IComponent
|
||||
{
|
||||
public PageDisplay() { }
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment AuthorizingContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.AuthenticationState> NotAuthorizedContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public System.Type Page { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public System.Collections.Generic.IDictionary<string, object> PageParameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
public void Configure(Microsoft.AspNetCore.Components.RenderHandle renderHandle) { }
|
||||
public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterCollection parameters) { throw null; }
|
||||
}
|
||||
}
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Forms
|
||||
|
|
@ -231,24 +246,6 @@ namespace Microsoft.AspNetCore.Components.Forms
|
|||
}
|
||||
}
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Layouts
|
||||
{
|
||||
public partial class PageDisplay : Microsoft.AspNetCore.Components.IComponent
|
||||
{
|
||||
public PageDisplay() { }
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment AuthorizingContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.AuthenticationState> NotAuthorizedContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public System.Type Page { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public System.Collections.Generic.IDictionary<string, object> PageParameters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
public void Configure(Microsoft.AspNetCore.Components.RenderHandle renderHandle) { }
|
||||
public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterCollection parameters) { throw null; }
|
||||
}
|
||||
}
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Routing
|
||||
{
|
||||
public partial class NavLink : Microsoft.AspNetCore.Components.IComponent, System.IDisposable
|
||||
|
|
@ -270,7 +267,9 @@ namespace Microsoft.AspNetCore.Components.Routing
|
|||
public System.Reflection.Assembly AppAssembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment NotFoundContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment<AuthenticationState> NotAuthorizedContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
[Microsoft.AspNetCore.Components.ParameterAttribute]
|
||||
public Microsoft.AspNetCore.Components.RenderFragment AuthorizingContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; }}
|
||||
public void Configure(Microsoft.AspNetCore.Components.RenderHandle renderHandle) { }
|
||||
public void Dispose() { }
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.Components
|
|||
public static async Task<T> GetJsonAsync<T>(this HttpClient httpClient, string requestUri)
|
||||
{
|
||||
var stringContent = await httpClient.GetStringAsync(requestUri);
|
||||
return JsonSerializer.Parse<T>(stringContent, JsonSerializerOptionsProvider.Options);
|
||||
return JsonSerializer.Deserialize<T>(stringContent, JsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -95,7 +95,7 @@ namespace Microsoft.AspNetCore.Components
|
|||
/// <returns>The response parsed as an object of the generic type.</returns>
|
||||
public static async Task<T> SendJsonAsync<T>(this HttpClient httpClient, HttpMethod method, string requestUri, object content)
|
||||
{
|
||||
var requestJson = JsonSerializer.ToString(content, JsonSerializerOptionsProvider.Options);
|
||||
var requestJson = JsonSerializer.Serialize(content, JsonSerializerOptionsProvider.Options);
|
||||
var response = await httpClient.SendAsync(new HttpRequestMessage(method, requestUri)
|
||||
{
|
||||
Content = new StringContent(requestJson, Encoding.UTF8, "application/json")
|
||||
|
|
@ -112,7 +112,7 @@ namespace Microsoft.AspNetCore.Components
|
|||
else
|
||||
{
|
||||
var stringContent = await response.Content.ReadAsStringAsync();
|
||||
return JsonSerializer.Parse<T>(stringContent, JsonSerializerOptionsProvider.Options);
|
||||
return JsonSerializer.Deserialize<T>(stringContent, JsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
|||
{
|
||||
Assert.Equal(httpMethod, req.Method);
|
||||
Assert.Equal(TestUri, req.RequestUri.AbsoluteUri);
|
||||
Assert.Equal(JsonSerializer.ToString(requestContent, _jsonSerializerOptions), await ((StringContent)req.Content).ReadAsStringAsync());
|
||||
Assert.Equal(JsonSerializer.Serialize(requestContent, _jsonSerializerOptions), await ((StringContent)req.Content).ReadAsStringAsync());
|
||||
return CreateJsonResponse(HttpStatusCode.OK, new Person
|
||||
{
|
||||
Name = "Abc",
|
||||
|
|
@ -151,7 +151,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
|||
{
|
||||
Assert.Equal(httpMethod, req.Method);
|
||||
Assert.Equal(TestUri, req.RequestUri.AbsoluteUri);
|
||||
Assert.Equal(JsonSerializer.ToString(requestContent, _jsonSerializerOptions), await ((StringContent)req.Content).ReadAsStringAsync());
|
||||
Assert.Equal(JsonSerializer.Serialize(requestContent, _jsonSerializerOptions), await ((StringContent)req.Content).ReadAsStringAsync());
|
||||
return new HttpResponseMessage(HttpStatusCode.BadGateway);
|
||||
}));
|
||||
|
||||
|
|
@ -165,7 +165,7 @@ namespace Microsoft.AspNetCore.Components.Test
|
|||
{
|
||||
return new HttpResponseMessage(statusCode)
|
||||
{
|
||||
Content = new StringContent(JsonSerializer.ToString(content, _jsonSerializerOptions))
|
||||
Content = new StringContent(JsonSerializer.Serialize(content, _jsonSerializerOptions))
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -201,6 +201,10 @@ namespace Microsoft.AspNetCore.Components.Browser.Rendering
|
|||
return;
|
||||
}
|
||||
|
||||
// Even though we're not on the renderer sync context here, it's safe to assume ordered execution of the following
|
||||
// line (i.e., matching the order in which we received batch completion messages) based on the fact that SignalR
|
||||
// synchronizes calls to hub methods. That is, it won't issue more than one call to this method from the same hub
|
||||
// at the same time on different threads.
|
||||
if (!PendingRenderBatches.TryDequeue(out var entry) || entry.BatchId != incomingBatchId)
|
||||
{
|
||||
HandleException(
|
||||
|
|
|
|||
|
|
@ -316,39 +316,6 @@ namespace Microsoft.AspNetCore.Components.Server.Circuits
|
|||
Assert.False(registry.DisconnectedCircuits.TryGetValue(circuitHost.CircuitId, out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2689", FlakyOn.All)]
|
||||
public void CircuitRegistryUsesConfiguredMaxRetainedDisconnectedCircuitsValue()
|
||||
{
|
||||
// Arrange
|
||||
var circuitIdFactory = TestCircuitIdFactory.CreateTestFactory();
|
||||
var maxCircuits = 3;
|
||||
var circuitOptions = new CircuitOptions
|
||||
{
|
||||
MaxRetainedDisconnectedCircuits = maxCircuits,
|
||||
};
|
||||
var registry = new TestCircuitRegistry(circuitIdFactory, circuitOptions);
|
||||
var hosts = Enumerable.Range(0, maxCircuits + 2)
|
||||
.Select(_ => TestCircuitHost.Create())
|
||||
.ToArray();
|
||||
|
||||
// Act
|
||||
for (var i = 0; i < hosts.Length; i++)
|
||||
{
|
||||
registry.RegisterDisconnectedCircuit(hosts[i]);
|
||||
}
|
||||
|
||||
// Assert
|
||||
for (var i = 0; i < maxCircuits; i++)
|
||||
{
|
||||
Assert.True(registry.DisconnectedCircuits.TryGetValue(hosts[i].CircuitId, out var _));
|
||||
}
|
||||
|
||||
// Additional circuits do not get registered.
|
||||
Assert.False(registry.DisconnectedCircuits.TryGetValue(hosts[maxCircuits].CircuitId, out var _));
|
||||
Assert.False(registry.DisconnectedCircuits.TryGetValue(hosts[maxCircuits + 1].CircuitId, out var _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DisconnectedCircuitIsRemovedAfterConfiguredTimeout()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
// 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.Diagnostics;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
|
@ -16,12 +17,7 @@ namespace Microsoft.AspNetCore.Components.Server.Tests
|
|||
public void MapBlazorHub_WiresUp_UnderlyingHub()
|
||||
{
|
||||
// Arrange
|
||||
var applicationBuilder = new ApplicationBuilder(
|
||||
new ServiceCollection()
|
||||
.AddLogging()
|
||||
.AddSingleton(Mock.Of<IHostApplicationLifetime>())
|
||||
.AddSignalR().Services
|
||||
.AddServerSideBlazor().Services.BuildServiceProvider());
|
||||
var applicationBuilder = CreateAppBuilder();
|
||||
var called = false;
|
||||
|
||||
// Act
|
||||
|
|
@ -40,12 +36,7 @@ namespace Microsoft.AspNetCore.Components.Server.Tests
|
|||
public void MapBlazorHub_MostGeneralOverload_MapsUnderlyingHub()
|
||||
{
|
||||
// Arrange
|
||||
var applicationBuilder = new ApplicationBuilder(
|
||||
new ServiceCollection()
|
||||
.AddLogging()
|
||||
.AddSingleton(Mock.Of<IHostApplicationLifetime>())
|
||||
.AddSignalR().Services
|
||||
.AddServerSideBlazor().Services.BuildServiceProvider());
|
||||
var applicationBuilder = CreateAppBuilder();
|
||||
var called = false;
|
||||
|
||||
// Act
|
||||
|
|
@ -59,5 +50,23 @@ namespace Microsoft.AspNetCore.Components.Server.Tests
|
|||
// Assert
|
||||
Assert.True(called);
|
||||
}
|
||||
|
||||
private IApplicationBuilder CreateAppBuilder()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton(Mock.Of<IHostApplicationLifetime>());
|
||||
services.AddLogging();
|
||||
services.AddOptions();
|
||||
var listener = new DiagnosticListener("Microsoft.AspNetCore");
|
||||
services.AddSingleton(listener);
|
||||
services.AddSingleton<DiagnosticSource>(listener);
|
||||
services.AddRouting();
|
||||
services.AddSignalR();
|
||||
services.AddServerSideBlazor();
|
||||
|
||||
var serviceProvder = services.BuildServiceProvider();
|
||||
|
||||
return new ApplicationBuilder(serviceProvder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
@ECHO OFF
|
||||
SET RepoRoot=%~dp0..\..
|
||||
%RepoRoot%\build.cmd -projects %~dp0**\*.*proj %*
|
||||
%RepoRoot%\build.cmd -projects %~dp0**\*.*proj "/p:EnforceE2ETestPrerequisites=true" %*
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ set -euo pipefail
|
|||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
repo_root="$DIR/../.."
|
||||
"$repo_root/build.sh" --projects "$DIR/**/*.*proj" "$@"
|
||||
"$repo_root/build.sh" --projects "$DIR/**/*.*proj" "/p:EnforceE2ETestPrerequisites=true" "$@"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,13 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Hosting.Server;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using DevHostServerProgram = Microsoft.AspNetCore.Blazor.DevServer.Server.Program;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures
|
||||
|
|
@ -22,7 +28,8 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures
|
|||
{
|
||||
"--urls", "http://127.0.0.1:0",
|
||||
"--contentroot", ContentRoot,
|
||||
"--pathbase", PathBase
|
||||
"--pathbase", PathBase,
|
||||
"--applicationpath", typeof(TProgram).Assembly.Location,
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(Environment))
|
||||
|
|
@ -31,7 +38,29 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures
|
|||
args.Add(Environment);
|
||||
}
|
||||
|
||||
return DevHostServerProgram.BuildWebHost(args.ToArray());
|
||||
return new FakeWebHost(DevHostServerProgram.BuildWebHost(args.ToArray()));
|
||||
}
|
||||
|
||||
private class FakeWebHost : IWebHost
|
||||
{
|
||||
private readonly IHost _realHost;
|
||||
|
||||
public FakeWebHost(IHost realHost)
|
||||
{
|
||||
_realHost = realHost;
|
||||
}
|
||||
|
||||
public IFeatureCollection ServerFeatures => ((IServer)_realHost.Services.GetService(typeof(IServer))).Features;
|
||||
|
||||
public IServiceProvider Services => _realHost.Services;
|
||||
|
||||
public void Dispose() => _realHost.Dispose();
|
||||
|
||||
public void Start() => _realHost.Start();
|
||||
|
||||
public Task StartAsync(CancellationToken cancellationToken = default) => _realHost.StartAsync();
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken = default) => _realHost.StopAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,7 @@
|
|||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
<TestGroupName>Components.E2ETests</TestGroupName>
|
||||
|
||||
<!--
|
||||
Temporarily disabled until this runs on macOS
|
||||
-->
|
||||
<SkipTests Condition="'$(SeleniumE2ETestsSupported)' != 'true'">true</SkipTests>
|
||||
<SkipTests>true</SkipTests>
|
||||
<!-- https://github.com/aspnet/AspNetCore/issues/6857 -->
|
||||
<BuildHelixPayload>false</BuildHelixPayload>
|
||||
|
||||
|
|
|
|||
|
|
@ -214,6 +214,19 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
|
|||
Assert.Equal("Fourth choice", target.SelectedOption.Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanBindSelectToMarkup()
|
||||
{
|
||||
var target = new SelectElement(Browser.FindElement(By.Id("select-markup-box")));
|
||||
var boundValue = Browser.FindElement(By.Id("select-markup-box-value"));
|
||||
Assert.Equal("Second choice", target.SelectedOption.Text);
|
||||
Assert.Equal("Second", boundValue.Text);
|
||||
|
||||
// Modify target; verify value is updated
|
||||
target.SelectByText("Third choice");
|
||||
Browser.Equal("Third", () => boundValue.Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanBindTextboxInt()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -276,8 +276,8 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
|
|||
{
|
||||
var rootBefore = new Node(null, "root", before);
|
||||
var rootAfter = new Node(null, "root", after);
|
||||
var jsonBefore = JsonSerializer.ToString(rootBefore, TestJsonSerializerOptionsProvider.Options);
|
||||
var jsonAfter = JsonSerializer.ToString(rootAfter, TestJsonSerializerOptionsProvider.Options);
|
||||
var jsonBefore = JsonSerializer.Serialize(rootBefore, TestJsonSerializerOptionsProvider.Options);
|
||||
var jsonAfter = JsonSerializer.Serialize(rootAfter, TestJsonSerializerOptionsProvider.Options);
|
||||
|
||||
var appElem = MountTestComponent<KeyCasesComponent>();
|
||||
var textbox = appElem.FindElement(By.TagName("textarea"));
|
||||
|
|
@ -329,7 +329,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
|
|||
{
|
||||
var javascript = (IJavaScriptExecutor)Browser;
|
||||
javascript.ExecuteScript(
|
||||
$"document.getElementById('{textAreaElementWithId.GetAttribute("id")}').value = {JsonSerializer.ToString(value, TestJsonSerializerOptionsProvider.Options)}");
|
||||
$"document.getElementById('{textAreaElementWithId.GetAttribute("id")}').value = {JsonSerializer.Serialize(value, TestJsonSerializerOptionsProvider.Options)}");
|
||||
textAreaElementWithId.SendKeys(" "); // So it fires the change event
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,18 +145,32 @@
|
|||
<h2>Select</h2>
|
||||
<p>
|
||||
<select id="select-box" @bind="selectValue">
|
||||
<option value=@SelectableValue.First>First choice</option>
|
||||
<option value=@SelectableValue.Second>Second choice</option>
|
||||
<option value=@SelectableValue.Third>Third choice</option>
|
||||
@if (includeFourthOption)
|
||||
{
|
||||
<option value=@SelectableValue.Fourth>Fourth choice</option>
|
||||
}
|
||||
<optgroup label="Some choices"> <!-- Show it also works with optgroup -->
|
||||
<option value=@SelectableValue.First>First choice</option>
|
||||
<option value=@SelectableValue.Second>Second choice</option>
|
||||
<option value=@SelectableValue.Third>Third choice</option>
|
||||
@if (includeFourthOption)
|
||||
{
|
||||
<option value=@SelectableValue.Fourth>Fourth choice</option>
|
||||
}
|
||||
</optgroup>
|
||||
</select>
|
||||
<span id="select-box-value">@selectValue</span>
|
||||
<button id="select-box-add-option" @onclick="AddAndSelectNewSelectOption">Add and select new item</button>
|
||||
</p>
|
||||
|
||||
<h2>Select (markup block)</h2>
|
||||
<p>
|
||||
<select id="select-markup-box" @bind="selectMarkupValue">
|
||||
<optgroup label="Some choices">
|
||||
<option value="First">First choice</option>
|
||||
<option value="Second">Second choice</option>
|
||||
<option value="Third">Third choice</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<span id="select-markup-box-value">@selectMarkupValue</span>
|
||||
</p>
|
||||
|
||||
@code {
|
||||
string textboxInitiallyBlankValue = null;
|
||||
string textboxInitiallyPopulatedValue = "Hello";
|
||||
|
|
@ -187,6 +201,7 @@ Guid textboxGenericGuidValue = Guid.Empty;
|
|||
bool includeFourthOption = false;
|
||||
enum SelectableValue { First, Second, Third, Fourth }
|
||||
SelectableValue selectValue = SelectableValue.Second;
|
||||
SelectableValue selectMarkupValue = SelectableValue.Second;
|
||||
|
||||
void AddAndSelectNewSelectOption()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,18 +7,12 @@
|
|||
|
||||
<div id="duplicate-on-element-override">
|
||||
<DuplicateAttributesOnElementChildComponent
|
||||
BoolAttributeBefore="true"
|
||||
StringAttributeBefore="original-text"
|
||||
UnmatchedValues="@elementValues"
|
||||
BoolAttributeAfter="false"
|
||||
StringAttributeAfter="other-text" />
|
||||
</div>
|
||||
|
||||
@functions {
|
||||
void SomeMethod()
|
||||
{
|
||||
}
|
||||
|
||||
Dictionary<string, object> elementValues = new Dictionary<string, object>()
|
||||
{
|
||||
{ "bool", true },
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.RenderTree;
|
||||
|
||||
namespace BasicTestApp
|
||||
{
|
||||
// Written in C# for flexibility and because we don't currently have the ability to write this in .razor.
|
||||
public class DuplicateAttributesOnElementChildComponent : ComponentBase
|
||||
{
|
||||
[Parameter] public string StringAttributeBefore { get; private set; }
|
||||
[Parameter] public bool BoolAttributeBefore { get; private set; }
|
||||
[Parameter] public string StringAttributeAfter { get; private set; }
|
||||
[Parameter] public bool? BoolAttributeAfter { get; private set; }
|
||||
|
||||
[Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object> UnmatchedValues { get; private set; }
|
||||
|
||||
protected override void BuildRenderTree(RenderTreeBuilder builder)
|
||||
{
|
||||
builder.OpenElement(0, "div");
|
||||
builder.AddAttribute(1, "string", StringAttributeBefore);
|
||||
builder.AddAttribute(2, "bool", BoolAttributeBefore);
|
||||
builder.AddMultipleAttributes(3, UnmatchedValues);
|
||||
if (StringAttributeAfter != null)
|
||||
{
|
||||
builder.AddAttribute(4, "string", StringAttributeAfter);
|
||||
}
|
||||
if (BoolAttributeAfter != null)
|
||||
{
|
||||
builder.AddAttribute(5, "bool", BoolAttributeAfter);
|
||||
}
|
||||
builder.CloseElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
@if (StringAttributeBefore != null)
|
||||
{
|
||||
<div string="@StringAttributeBefore"
|
||||
bool="@BoolAttributeBefore"
|
||||
@attributes="@UnmatchedValues">
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div @attributes="@UnmatchedValues"
|
||||
string="@StringAttributeAfter"
|
||||
bool="@BoolAttributeAfter">
|
||||
</div>
|
||||
}
|
||||
|
||||
@code {
|
||||
[Parameter] public string StringAttributeBefore { get; private set; }
|
||||
[Parameter] public bool BoolAttributeBefore { get; private set; }
|
||||
[Parameter] public string StringAttributeAfter { get; private set; }
|
||||
[Parameter] public bool? BoolAttributeAfter { get; private set; }
|
||||
|
||||
[Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object> UnmatchedValues { get; private set; }
|
||||
}
|
||||
|
|
@ -91,7 +91,7 @@
|
|||
var invocations = new Dictionary<string, string>();
|
||||
foreach (var interopResult in JavaScriptInterop.Invocations)
|
||||
{
|
||||
var interopResultValue = JsonSerializer.ToString(interopResult.Value, TestJsonSerializerOptionsProvider.Options);
|
||||
var interopResultValue = JsonSerializer.Serialize(interopResult.Value, TestJsonSerializerOptionsProvider.Options);
|
||||
invocations[interopResult.Key] = interopResultValue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@
|
|||
void Update()
|
||||
{
|
||||
renderContext.UpdateCount++;
|
||||
parsedRootNode = JsonSerializer.Parse<KeyCasesTreeNode.Node>(modelJson, TestJsonSerializerOptionsProvider.Options);
|
||||
parsedRootNode = JsonSerializer.Deserialize<KeyCasesTreeNode.Node>(modelJson, TestJsonSerializerOptionsProvider.Options);
|
||||
}
|
||||
|
||||
public class RenderContext
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Type here: <input @onkeypress=OnKeyPressed />
|
|||
|
||||
void OnKeyPressed(UIKeyboardEventArgs eventArgs)
|
||||
{
|
||||
Console.WriteLine(JsonSerializer.ToString(eventArgs));
|
||||
Console.WriteLine(JsonSerializer.Serialize(eventArgs));
|
||||
keysPressed.Add(eventArgs.Key);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
|
||||
void DumpEvent(UIMouseEventArgs e)
|
||||
{
|
||||
Console.WriteLine(JsonSerializer.ToString(e));
|
||||
Console.WriteLine(JsonSerializer.Serialize(e));
|
||||
}
|
||||
|
||||
void Clear()
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
void OnTouch(UITouchEventArgs e)
|
||||
{
|
||||
message += e.Type;
|
||||
Console.WriteLine(JsonSerializer.ToString(e));
|
||||
Console.WriteLine(JsonSerializer.Serialize(e));
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,33 +5,39 @@
|
|||
<title>Basic test app</title>
|
||||
<base href="/subdir/" />
|
||||
<link href="style.css" rel="stylesheet" />
|
||||
|
||||
<!-- Used by ExternalContentPackage -->
|
||||
<link href="_content/TestContentPackage/styles.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<root>Loading...</root>
|
||||
<root>Loading...</root>
|
||||
|
||||
<!-- Used for testing interop scenarios between JS and .NET -->
|
||||
<script src="js/jsinteroptests.js"></script>
|
||||
<!-- Used for testing interop scenarios between JS and .NET -->
|
||||
<script src="js/jsinteroptests.js"></script>
|
||||
|
||||
<script>
|
||||
// Used by ElementRefComponent
|
||||
function setElementValue(element, newValue) {
|
||||
element.value = newValue;
|
||||
return element.value;
|
||||
}
|
||||
<script>
|
||||
// Used by ElementRefComponent
|
||||
function setElementValue(element, newValue) {
|
||||
element.value = newValue;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
function uriHelperNavigate() {
|
||||
Blazor.navigateTo('/subdir/some-path');
|
||||
}
|
||||
function uriHelperNavigate() {
|
||||
Blazor.navigateTo('/subdir/some-path');
|
||||
}
|
||||
|
||||
(function () {
|
||||
// Load either blazor.webassembly.js or blazor.server.js depending
|
||||
// on the hash part of the URL. This is just to give a way for the
|
||||
// test runner to make the selection.
|
||||
var src = location.hash === '#server'
|
||||
? 'blazor.server.js'
|
||||
: 'blazor.webassembly.js';
|
||||
document.write('<script src="_framework/' + src + '"><' + '/script>');
|
||||
})();
|
||||
</script>
|
||||
(function () {
|
||||
// Load either blazor.webassembly.js or blazor.server.js depending
|
||||
// on the hash part of the URL. This is just to give a way for the
|
||||
// test runner to make the selection.
|
||||
var src = location.hash === '#server'
|
||||
? 'blazor.server.js'
|
||||
: 'blazor.webassembly.js';
|
||||
document.write('<script src="_framework/' + src + '"><' + '/script>');
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!-- Used by ExternalContentPackage -->
|
||||
<script src="_content/TestContentPackage/prompt.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -93,13 +93,13 @@ namespace Ignitor
|
|||
EventHandlerId = clickEventDescriptor.EventId,
|
||||
EventArgsType = "mouse",
|
||||
};
|
||||
var serializedJson = JsonSerializer.ToString(mouseEventArgs, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
|
||||
var serializedJson = JsonSerializer.Serialize(mouseEventArgs, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
|
||||
var argsObject = new object[] { browserDescriptor, serializedJson };
|
||||
var callId = "0";
|
||||
var assemblyName = "Microsoft.AspNetCore.Components.Browser";
|
||||
var methodIdentifier = "DispatchEvent";
|
||||
var dotNetObjectId = 0;
|
||||
var clickArgs = JsonSerializer.ToString(argsObject, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
|
||||
var clickArgs = JsonSerializer.Serialize(argsObject, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
|
||||
await connection.InvokeAsync("BeginInvokeDotNetFromJS", callId, assemblyName, methodIdentifier, dotNetObjectId, clickArgs);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,19 +4,9 @@
|
|||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<OutputType>library</OutputType>
|
||||
<RazorLangVersion>3.0</RazorLangVersion>
|
||||
<StaticWebAssetBasePath>_content/TestContentPackage</StaticWebAssetBasePath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- .js files will be referenced via <script> tags -->
|
||||
<EmbeddedResource Include="content\**\*.js" LogicalName="blazor:js:%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
|
||||
<!-- .css files will be referenced via <link rel='Stylesheet'> tags -->
|
||||
<EmbeddedResource Include="content\**\*.css" LogicalName="blazor:css:%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
|
||||
<!-- Any other files will be included in the 'dist' output but without any tags referencing them -->
|
||||
<EmbeddedResource Include="content\**" Exclude="**\*.js;**\*.css" LogicalName="blazor:file:%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.AspNetCore.Components" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
|
@ -19,6 +19,7 @@ namespace TestServer
|
|||
.AddCommandLine(args)
|
||||
.Build())
|
||||
.UseStartup<TStartup>()
|
||||
.UseStaticWebAssets()
|
||||
.Build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
using BasicTestApp;
|
||||
using Microsoft.AspNetCore.Authentication.Cookies;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Components.Server;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
|
@ -63,6 +60,7 @@ namespace TestServer
|
|||
// Mount the server-side Blazor app on /subdir
|
||||
app.Map("/subdir", subdirApp =>
|
||||
{
|
||||
subdirApp.UseStaticFiles();
|
||||
subdirApp.UseClientSideBlazorFiles<BasicTestApp.Startup>();
|
||||
|
||||
subdirApp.UseRouting();
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ namespace Microsoft.AspNetCore
|
|||
{
|
||||
if (ctx.HostingEnvironment.IsDevelopment())
|
||||
{
|
||||
StaticWebAssetsLoader.UseStaticWebAssets(ctx.HostingEnvironment);
|
||||
StaticWebAssetsLoader.UseStaticWebAssets(ctx.HostingEnvironment, ctx.Configuration);
|
||||
}
|
||||
});
|
||||
builder.UseKestrel((builderContext, options) =>
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
|||
|
||||
<!-- NuGet appends target framework to this value. Example: runtimes/win-x64/lib/netcoreapp3.0/ -->
|
||||
<BuildOutputTargetFolder>runtimes/$(RuntimeIdentifier)/lib/</BuildOutputTargetFolder>
|
||||
<!-- We still need the native path to these assets though for the RuntimeList.xml manifest -->
|
||||
<ManagedAssetsPackagePath>$(BuildOutputTargetFolder)$(DefaultNetCoreTargetFramework)</ManagedAssetsPackagePath>
|
||||
<!-- Target framework is not append to this because native assets to not have a target framework. -->
|
||||
<NativeAssetsPackagePath>runtimes/$(RuntimeIdentifier)/native/</NativeAssetsPackagePath>
|
||||
|
||||
|
|
@ -457,6 +459,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
|||
<RepoTasks.CreateFrameworkListFile
|
||||
Files="@(SharedFxContent)"
|
||||
TargetFile="$(FrameworkListOutputPath)"
|
||||
ManagedRoot="$(ManagedAssetsPackagePath)"
|
||||
NativeRoot="$(NativeAssetsPackagePath)"
|
||||
RootAttributes="@(FrameworkListRootAttributes)" />
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
|
@ -24,6 +28,36 @@ namespace Microsoft.AspNetCore
|
|||
_targetingPackRoot = Path.Combine(TestData.GetTestDataValue("TargetingPackLayoutRoot"), "packs", "Microsoft.AspNetCore.App.Ref", TestData.GetTestDataValue("TargetingPackVersion"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AssembliesAreReferenceAssemblies()
|
||||
{
|
||||
IEnumerable<string> dlls = Directory.GetFiles(_targetingPackRoot, "*.dll", SearchOption.AllDirectories);
|
||||
Assert.NotEmpty(dlls);
|
||||
|
||||
// Workaround https://github.com/aspnet/AspNetCore/issues/11206
|
||||
dlls = dlls.Where(d => !d.Contains("System.IO.Pipelines"));
|
||||
|
||||
Assert.All(dlls, path =>
|
||||
{
|
||||
var assemblyName = AssemblyName.GetAssemblyName(path);
|
||||
using var fileStream = File.OpenRead(path);
|
||||
using var peReader = new PEReader(fileStream, PEStreamOptions.Default);
|
||||
var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default);
|
||||
var assemblyDefinition = reader.GetAssemblyDefinition();
|
||||
var hasRefAssemblyAttribute = assemblyDefinition.GetCustomAttributes().Any(attr =>
|
||||
{
|
||||
var attribute = reader.GetCustomAttribute(attr);
|
||||
var attributeConstructor = reader.GetMemberReference((MemberReferenceHandle)attribute.Constructor);
|
||||
var attributeType = reader.GetTypeReference((TypeReferenceHandle)attributeConstructor.Parent);
|
||||
return reader.StringComparer.Equals(attributeType.Namespace, typeof(ReferenceAssemblyAttribute).Namespace)
|
||||
&& reader.StringComparer.Equals(attributeType.Name, nameof(ReferenceAssemblyAttribute));
|
||||
});
|
||||
|
||||
Assert.True(hasRefAssemblyAttribute, $"{path} should have {nameof(ReferenceAssemblyAttribute)}");
|
||||
Assert.Equal(ProcessorArchitecture.None, assemblyName.ProcessorArchitecture);
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PlatformManifestListsAllFiles()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
public static readonly string ServerUrlsKey;
|
||||
public static readonly string ShutdownTimeoutKey;
|
||||
public static readonly string StartupAssemblyKey;
|
||||
public static readonly string StaticWebAssetsKey;
|
||||
public static readonly string SuppressStatusMessagesKey;
|
||||
public static readonly string WebRootKey;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
public static readonly string SuppressStatusMessagesKey = "suppressStatusMessages";
|
||||
|
||||
public static readonly string ShutdownTimeoutKey = "shutdownTimeoutSeconds";
|
||||
public static readonly string StaticWebAssetsKey = "staticWebAssets";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
|||
public partial class StaticWebAssetsLoader
|
||||
{
|
||||
public StaticWebAssetsLoader() { }
|
||||
public static void UseStaticWebAssets(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment) { }
|
||||
public static void UseStaticWebAssets(Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment, Microsoft.Extensions.Configuration.IConfiguration configuration) { }
|
||||
}
|
||||
}
|
||||
namespace Microsoft.Extensions.Hosting
|
||||
|
|
|
|||
|
|
@ -75,8 +75,6 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
options.HostingStartupExceptions = _hostingStartupErrors;
|
||||
});
|
||||
|
||||
services.AddHostedService<GenericWebHostService>();
|
||||
|
||||
// REVIEW: This is bad since we don't own this type. Anybody could add one of these and it would mess things up
|
||||
// We need to flow this differently
|
||||
var listener = new DiagnosticListener("Microsoft.AspNetCore");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Microsoft.Extensions.Hosting
|
||||
{
|
||||
|
|
@ -9,6 +10,7 @@ namespace Microsoft.Extensions.Hosting
|
|||
{
|
||||
var webhostBuilder = new GenericWebHostBuilder(builder);
|
||||
configure(webhostBuilder);
|
||||
builder.ConfigureServices((context, services) => services.AddHostedService<GenericWebHostService>());
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
|
||||
namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
||||
|
|
@ -21,10 +22,11 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
|||
/// <summary>
|
||||
/// Configure the <see cref="IWebHostEnvironment"/> to use static web assets.
|
||||
/// </summary>
|
||||
/// <param name="environment"></param>
|
||||
public static void UseStaticWebAssets(IWebHostEnvironment environment)
|
||||
/// <param name="environment">The application <see cref="IWebHostEnvironment"/>.</param>
|
||||
/// <param name="configuration">The host <see cref="IConfiguration"/>.</param>
|
||||
public static void UseStaticWebAssets(IWebHostEnvironment environment, IConfiguration configuration)
|
||||
{
|
||||
using (var manifest = ResolveManifest(environment))
|
||||
using (var manifest = ResolveManifest(environment, configuration))
|
||||
{
|
||||
if (manifest != null)
|
||||
{
|
||||
|
|
@ -54,13 +56,13 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
|||
}
|
||||
}
|
||||
|
||||
internal static Stream ResolveManifest(IWebHostEnvironment environment)
|
||||
internal static Stream ResolveManifest(IWebHostEnvironment environment, IConfiguration configuration)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
var assembly = Assembly.Load(environment.ApplicationName);
|
||||
var filePath = Path.Combine(Path.GetDirectoryName(GetAssemblyLocation(assembly)), $"{environment.ApplicationName}.StaticWebAssets.xml");
|
||||
var manifestPath = configuration.GetValue<string>(WebHostDefaults.StaticWebAssetsKey);
|
||||
var filePath = manifestPath ?? ResolveRelativeToAssembly(environment);
|
||||
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
return File.OpenRead(filePath);
|
||||
|
|
@ -79,6 +81,12 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
|||
}
|
||||
}
|
||||
|
||||
private static string ResolveRelativeToAssembly(IWebHostEnvironment environment)
|
||||
{
|
||||
var assembly = Assembly.Load(environment.ApplicationName);
|
||||
return Path.Combine(Path.GetDirectoryName(GetAssemblyLocation(assembly)), $"{environment.ApplicationName}.StaticWebAssets.xml");
|
||||
}
|
||||
|
||||
internal static string GetAssemblyLocation(Assembly assembly)
|
||||
{
|
||||
if (Uri.TryCreate(assembly.CodeBase, UriKind.Absolute, out var result) &&
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
{
|
||||
builder.ConfigureAppConfiguration((context, configBuilder) =>
|
||||
{
|
||||
StaticWebAssetsLoader.UseStaticWebAssets(context.HostingEnvironment);
|
||||
StaticWebAssetsLoader.UseStaticWebAssets(context.HostingEnvironment, context.Configuration);
|
||||
});
|
||||
|
||||
return builder;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ namespace Microsoft.AspNetCore.Hosting.Tests.Fakes
|
|||
// This is the only one that doesn't pass through
|
||||
public IWebHost Build()
|
||||
{
|
||||
_hostBuilder.ConfigureServices((context, services) => services.AddHostedService<GenericWebHostService>());
|
||||
return new GenericWebHost(_hostBuilder.Build());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Diagnostics.Tracing;
|
||||
using System.Threading;
|
||||
using System.Threading.Channels;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Internal;
|
||||
|
|
@ -185,7 +184,7 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
public async Task VerifyCountersFireWithCorrectValues()
|
||||
{
|
||||
// Arrange
|
||||
var eventListener = new CounterListener(new[] {
|
||||
var eventListener = new TestCounterListener(new[] {
|
||||
"requests-per-second",
|
||||
"total-requests",
|
||||
"current-requests",
|
||||
|
|
@ -207,6 +206,7 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
{ "EventCounterIntervalSec", "1" }
|
||||
});
|
||||
|
||||
// Act & Assert
|
||||
hostingEventSource.RequestStart("GET", "/");
|
||||
|
||||
Assert.Equal(1, await totalRequestValues.FirstOrDefault(v => v == 1));
|
||||
|
|
@ -241,36 +241,5 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
{
|
||||
return new HostingEventSource(Guid.NewGuid().ToString());
|
||||
}
|
||||
|
||||
private class CounterListener : EventListener
|
||||
{
|
||||
private readonly Dictionary<string, Channel<double>> _counters = new Dictionary<string, Channel<double>>();
|
||||
|
||||
public CounterListener(string[] counterNames)
|
||||
{
|
||||
foreach (var item in counterNames)
|
||||
{
|
||||
_counters[item] = Channel.CreateUnbounded<double>();
|
||||
}
|
||||
}
|
||||
|
||||
public IAsyncEnumerable<double> GetCounterValues(string counterName, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return _counters[counterName].Reader.ReadAllAsync(cancellationToken);
|
||||
}
|
||||
|
||||
protected override void OnEventWritten(EventWrittenEventArgs eventData)
|
||||
{
|
||||
if (eventData.EventName == "EventCounters")
|
||||
{
|
||||
var payload = (IDictionary<string, object>)eventData.Payload[0];
|
||||
var counter = (string)payload["Name"];
|
||||
payload.TryGetValue("Increment", out var increment);
|
||||
payload.TryGetValue("Mean", out var mean);
|
||||
var writer = _counters[counter].Writer;
|
||||
writer.TryWrite((double)(increment ?? mean));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="$(SharedSourceRoot)test\SkipOnHelixAttribute.cs" />
|
||||
<Compile Include="$(SharedSourceRoot)EventSource.Testing\TestEventListener.cs" />
|
||||
<Compile Include="$(SharedSourceRoot)EventSource.Testing\TestCounterListener.cs" />
|
||||
<Content Include="testroot\**\*" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
|
||||
<Content Include="Microsoft.AspNetCore.Hosting.StaticWebAssets.xml" CopyToOutputDirectory="PreserveNewest" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -2,10 +2,13 @@
|
|||
// 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.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
||||
|
|
@ -72,12 +75,39 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
|
|||
};
|
||||
|
||||
// Act
|
||||
var manifest = StaticWebAssetsLoader.ResolveManifest(environment);
|
||||
var manifest = StaticWebAssetsLoader.ResolveManifest(environment, new ConfigurationBuilder().Build());
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedManifest, new StreamReader(manifest).ReadToEnd());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResolveManifest_UsesConfigurationKey_WhenProvided()
|
||||
{
|
||||
// Arrange
|
||||
var expectedManifest = @"<StaticWebAssets Version=""1.0"">
|
||||
<ContentRoot Path=""/Path"" BasePath=""/BasePath"" />
|
||||
</StaticWebAssets>
|
||||
";
|
||||
var path = Path.ChangeExtension(new Uri(typeof(StaticWebAssetsLoader).Assembly.CodeBase).LocalPath, ".StaticWebAssets.xml");
|
||||
var environment = new HostingEnvironment()
|
||||
{
|
||||
ApplicationName = "NonExistingDll"
|
||||
};
|
||||
|
||||
var configuration = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(new Dictionary<string, string>() {
|
||||
[WebHostDefaults.StaticWebAssetsKey] = path
|
||||
}).Build();
|
||||
|
||||
// Act
|
||||
var manifest = StaticWebAssetsLoader.ResolveManifest(environment, configuration);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedManifest, new StreamReader(manifest).ReadToEnd());
|
||||
}
|
||||
|
||||
|
||||
private Stream CreateManifest(string manifestContent)
|
||||
{
|
||||
return new MemoryStream(Encoding.UTF8.GetBytes(manifestContent));
|
||||
|
|
|
|||
|
|
@ -1271,6 +1271,80 @@ namespace Microsoft.AspNetCore.Hosting
|
|||
Assert.True(service.StopCalled);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(DefaultWebHostBuilders))]
|
||||
public async Task HostedServicesStartedBeforeServer(IWebHostBuilder builder)
|
||||
{
|
||||
builder.Configure(app => { })
|
||||
.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<StartOrder>();
|
||||
services.AddHostedService<MustBeStartedFirst>();
|
||||
services.AddSingleton<IServer, ServerMustBeStartedSecond>();
|
||||
});
|
||||
|
||||
using var host = builder.Build();
|
||||
await host.StartAsync();
|
||||
var ordering = host.Services.GetRequiredService<StartOrder>();
|
||||
Assert.Equal(2, ordering.Order);
|
||||
await host.StopAsync();
|
||||
}
|
||||
|
||||
private class StartOrder
|
||||
{
|
||||
public int Order { get; set; }
|
||||
}
|
||||
|
||||
private class MustBeStartedFirst : IHostedService
|
||||
{
|
||||
public MustBeStartedFirst(StartOrder ordering)
|
||||
{
|
||||
Ordering = ordering;
|
||||
}
|
||||
|
||||
public StartOrder Ordering { get; }
|
||||
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
Assert.Equal(0, Ordering.Order);
|
||||
Ordering.Order++;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
private class ServerMustBeStartedSecond : IServer
|
||||
{
|
||||
public ServerMustBeStartedSecond(StartOrder ordering)
|
||||
{
|
||||
Ordering = ordering;
|
||||
}
|
||||
|
||||
public StartOrder Ordering { get; }
|
||||
|
||||
public IFeatureCollection Features => null;
|
||||
|
||||
public Task StartAsync<TContext>(IHttpApplication<TContext> application, CancellationToken cancellationToken)
|
||||
{
|
||||
Assert.Equal(1, Ordering.Order);
|
||||
Ordering.Order++;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private static void StaticConfigureMethod(IApplicationBuilder app) { }
|
||||
|
||||
private IWebHostBuilder CreateWebHostBuilder()
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
public partial class RequestBuilder
|
||||
{
|
||||
public RequestBuilder(Microsoft.AspNetCore.TestHost.TestServer server, string path) { }
|
||||
public Microsoft.AspNetCore.TestHost.TestServer TestServer { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||
public Microsoft.AspNetCore.TestHost.RequestBuilder AddHeader(string name, string value) { throw null; }
|
||||
public Microsoft.AspNetCore.TestHost.RequestBuilder And(System.Action<System.Net.Http.HttpRequestMessage> configure) { throw null; }
|
||||
public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> GetAsync() { throw null; }
|
||||
|
|
@ -25,15 +26,16 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
}
|
||||
public partial class TestServer : Microsoft.AspNetCore.Hosting.Server.IServer, System.IDisposable
|
||||
{
|
||||
public TestServer() { }
|
||||
public TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder) { }
|
||||
public TestServer(Microsoft.AspNetCore.Hosting.IWebHostBuilder builder, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
|
||||
public TestServer(Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
|
||||
public TestServer(System.IServiceProvider services) { }
|
||||
public TestServer(System.IServiceProvider services, Microsoft.AspNetCore.Http.Features.IFeatureCollection featureCollection) { }
|
||||
public bool AllowSynchronousIO { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
|
||||
public System.Uri BaseAddress { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
|
||||
public Microsoft.AspNetCore.Http.Features.IFeatureCollection Features { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||
public Microsoft.AspNetCore.Hosting.IWebHost Host { get { throw null; } }
|
||||
public bool PreserveExecutionContext { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
|
||||
public System.IServiceProvider Services { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
|
||||
public System.Net.Http.HttpClient CreateClient() { throw null; }
|
||||
public System.Net.Http.HttpMessageHandler CreateHandler() { throw null; }
|
||||
public Microsoft.AspNetCore.TestHost.RequestBuilder CreateRequest(string path) { throw null; }
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
|
||||
var contextBuilder = new HttpContextBuilder(_application, AllowSynchronousIO, PreserveExecutionContext);
|
||||
|
||||
Stream responseBody = null;
|
||||
var requestContent = request.Content ?? new StreamContent(Stream.Null);
|
||||
var body = await requestContent.ReadAsStreamAsync();
|
||||
contextBuilder.Configure(context =>
|
||||
|
|
@ -114,8 +113,6 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
body.Seek(0, SeekOrigin.Begin);
|
||||
}
|
||||
req.Body = new AsyncStreamWrapper(body, () => contextBuilder.AllowSynchronousIO);
|
||||
|
||||
responseBody = context.Response.Body;
|
||||
});
|
||||
|
||||
var response = new HttpResponseMessage();
|
||||
|
|
@ -138,7 +135,7 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
response.ReasonPhrase = httpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase;
|
||||
response.RequestMessage = request;
|
||||
|
||||
response.Content = new StreamContent(responseBody);
|
||||
response.Content = new StreamContent(httpContext.Response.Body);
|
||||
|
||||
foreach (var header in httpContext.Response.Headers)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.IO.Pipelines;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
|
@ -16,7 +17,8 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
private readonly HttpContext _httpContext;
|
||||
|
||||
private readonly TaskCompletionSource<HttpContext> _responseTcs = new TaskCompletionSource<HttpContext>(TaskCreationOptions.RunContinuationsAsynchronously);
|
||||
private readonly ResponseStream _responseStream;
|
||||
private readonly ResponseBodyReaderStream _responseReaderStream;
|
||||
private readonly ResponseBodyPipeWriter _responsePipeWriter;
|
||||
private readonly ResponseFeature _responseFeature;
|
||||
private readonly RequestLifetimeFeature _requestLifetimeFeature = new RequestLifetimeFeature();
|
||||
private readonly ResponseTrailersFeature _responseTrailersFeature = new ResponseTrailersFeature();
|
||||
|
|
@ -37,14 +39,19 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
request.Protocol = "HTTP/1.1";
|
||||
request.Method = HttpMethods.Get;
|
||||
|
||||
var pipe = new Pipe();
|
||||
_responseReaderStream = new ResponseBodyReaderStream(pipe, AbortRequest, () => _responseReadCompleteCallback?.Invoke(_httpContext));
|
||||
_responsePipeWriter = new ResponseBodyPipeWriter(pipe, ReturnResponseMessageAsync);
|
||||
_responseFeature.Body = new ResponseBodyWriterStream(_responsePipeWriter, () => AllowSynchronousIO);
|
||||
_responseFeature.BodySnapshot = _responseFeature.Body;
|
||||
_responseFeature.BodyWriter = _responsePipeWriter;
|
||||
|
||||
_httpContext.Features.Set<IHttpBodyControlFeature>(this);
|
||||
_httpContext.Features.Set<IHttpResponseFeature>(_responseFeature);
|
||||
_httpContext.Features.Set<IHttpResponseStartFeature>(_responseFeature);
|
||||
_httpContext.Features.Set<IHttpRequestLifetimeFeature>(_requestLifetimeFeature);
|
||||
_httpContext.Features.Set<IHttpResponseTrailersFeature>(_responseTrailersFeature);
|
||||
|
||||
_responseStream = new ResponseStream(ReturnResponseMessageAsync, AbortRequest, () => AllowSynchronousIO, () => _responseReadCompleteCallback?.Invoke(_httpContext));
|
||||
_responseFeature.Body = _responseStream;
|
||||
_httpContext.Features.Set<IResponseBodyPipeFeature>(_responseFeature);
|
||||
}
|
||||
|
||||
public bool AllowSynchronousIO { get; set; }
|
||||
|
|
@ -119,14 +126,14 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
{
|
||||
_requestLifetimeFeature.Abort();
|
||||
}
|
||||
_responseStream.CompleteWrites();
|
||||
_responsePipeWriter.Complete();
|
||||
}
|
||||
|
||||
internal async Task CompleteResponseAsync()
|
||||
{
|
||||
_pipelineFinished = true;
|
||||
await ReturnResponseMessageAsync();
|
||||
_responseStream.CompleteWrites();
|
||||
_responsePipeWriter.Complete();
|
||||
await _responseFeature.FireOnResponseCompletedAsync();
|
||||
}
|
||||
|
||||
|
|
@ -155,6 +162,16 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
{
|
||||
newFeatures[pair.Key] = pair.Value;
|
||||
}
|
||||
var serverResponseFeature = _httpContext.Features.Get<IHttpResponseFeature>();
|
||||
// The client gets a deep copy of this so they can interact with the body stream independently of the server.
|
||||
var clientResponseFeature = new HttpResponseFeature()
|
||||
{
|
||||
StatusCode = serverResponseFeature.StatusCode,
|
||||
ReasonPhrase = serverResponseFeature.ReasonPhrase,
|
||||
Headers = serverResponseFeature.Headers,
|
||||
Body = _responseReaderStream
|
||||
};
|
||||
newFeatures.Set<IHttpResponseFeature>(clientResponseFeature);
|
||||
_responseTcs.TrySetResult(new DefaultHttpContext(newFeatures));
|
||||
}
|
||||
}
|
||||
|
|
@ -162,7 +179,8 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
internal void Abort(Exception exception)
|
||||
{
|
||||
_pipelineFinished = true;
|
||||
_responseStream.Abort(exception);
|
||||
_responsePipeWriter.Abort(exception);
|
||||
_responseReaderStream.Abort(exception);
|
||||
_responseTcs.TrySetException(exception);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
/// </summary>
|
||||
public class RequestBuilder
|
||||
{
|
||||
private readonly TestServer _server;
|
||||
private readonly HttpRequestMessage _req;
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -23,15 +22,15 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
/// <param name="path"></param>
|
||||
public RequestBuilder(TestServer server, string path)
|
||||
{
|
||||
if (server == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(server));
|
||||
}
|
||||
|
||||
_server = server;
|
||||
TestServer = server ?? throw new ArgumentNullException(nameof(server));
|
||||
_req = new HttpRequestMessage(HttpMethod.Get, path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the <see cref="TestServer"/> instance for which the request is being built.
|
||||
/// </summary>
|
||||
public TestServer TestServer { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Configure any HttpRequestMessage properties.
|
||||
/// </summary>
|
||||
|
|
@ -79,7 +78,7 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
public Task<HttpResponseMessage> SendAsync(string method)
|
||||
{
|
||||
_req.Method = new HttpMethod(method);
|
||||
return _server.CreateClient().SendAsync(_req);
|
||||
return TestServer.CreateClient().SendAsync(_req);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -89,7 +88,7 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
public Task<HttpResponseMessage> GetAsync()
|
||||
{
|
||||
_req.Method = HttpMethod.Get;
|
||||
return _server.CreateClient().SendAsync(_req);
|
||||
return TestServer.CreateClient().SendAsync(_req);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -99,7 +98,7 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
public Task<HttpResponseMessage> PostAsync()
|
||||
{
|
||||
_req.Method = HttpMethod.Post;
|
||||
return _server.CreateClient().SendAsync(_req);
|
||||
return TestServer.CreateClient().SendAsync(_req);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
// 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.Diagnostics.Contracts;
|
||||
using System.IO;
|
||||
using System.IO.Pipelines;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
|
||||
namespace Microsoft.AspNetCore.TestHost
|
||||
{
|
||||
internal class ResponseBodyPipeWriter : PipeWriter
|
||||
{
|
||||
private readonly Func<Task> _onFirstWriteAsync;
|
||||
private readonly Pipe _pipe;
|
||||
|
||||
private bool _firstWrite;
|
||||
private bool _complete;
|
||||
|
||||
internal ResponseBodyPipeWriter(Pipe pipe, Func<Task> onFirstWriteAsync)
|
||||
{
|
||||
_pipe = pipe ?? throw new ArgumentNullException(nameof(pipe));
|
||||
_onFirstWriteAsync = onFirstWriteAsync ?? throw new ArgumentNullException(nameof(onFirstWriteAsync));
|
||||
_firstWrite = true;
|
||||
}
|
||||
|
||||
public override async ValueTask<FlushResult> FlushAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
CheckNotComplete();
|
||||
|
||||
await FirstWriteAsync();
|
||||
return await _pipe.Writer.FlushAsync(cancellationToken);
|
||||
}
|
||||
|
||||
private Task FirstWriteAsync()
|
||||
{
|
||||
if (_firstWrite)
|
||||
{
|
||||
_firstWrite = false;
|
||||
return _onFirstWriteAsync();
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
internal void Abort(Exception innerException)
|
||||
{
|
||||
Contract.Requires(innerException != null);
|
||||
_complete = true;
|
||||
_pipe.Writer.Complete(new IOException(string.Empty, innerException));
|
||||
}
|
||||
|
||||
internal void Complete()
|
||||
{
|
||||
if (_complete)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Throw for further writes, but not reads. Allow reads to drain the buffered data and then return 0 for further reads.
|
||||
_complete = true;
|
||||
_pipe.Writer.Complete();
|
||||
}
|
||||
|
||||
private void CheckNotComplete()
|
||||
{
|
||||
if (_complete)
|
||||
{
|
||||
throw new IOException("The request was aborted or the pipeline has finished.");
|
||||
}
|
||||
}
|
||||
|
||||
public override void Complete(Exception exception = null)
|
||||
{
|
||||
// No-op in the non-error case
|
||||
if (exception != null)
|
||||
{
|
||||
Abort(exception);
|
||||
}
|
||||
}
|
||||
|
||||
public override void CancelPendingFlush() => _pipe.Writer.CancelPendingFlush();
|
||||
|
||||
public override void OnReaderCompleted(Action<Exception, object> callback, object state)
|
||||
=> _pipe.Writer.OnReaderCompleted(callback, state);
|
||||
|
||||
public override void Advance(int bytes)
|
||||
{
|
||||
CheckNotComplete();
|
||||
_pipe.Writer.Advance(bytes);
|
||||
}
|
||||
|
||||
public override Memory<byte> GetMemory(int sizeHint = 0)
|
||||
{
|
||||
CheckNotComplete();
|
||||
return _pipe.Writer.GetMemory(sizeHint);
|
||||
}
|
||||
|
||||
public override Span<byte> GetSpan(int sizeHint = 0)
|
||||
{
|
||||
CheckNotComplete();
|
||||
return _pipe.Writer.GetSpan(sizeHint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
// 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.Buffers;
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.IO;
|
||||
using System.IO.Pipelines;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.AspNetCore.TestHost
|
||||
{
|
||||
/// <summary>
|
||||
/// The client's view of the response body.
|
||||
/// </summary>
|
||||
internal class ResponseBodyReaderStream : Stream
|
||||
{
|
||||
private bool _readerComplete;
|
||||
private bool _aborted;
|
||||
private Exception _abortException;
|
||||
|
||||
private readonly Action _abortRequest;
|
||||
private readonly Action _readComplete;
|
||||
private readonly Pipe _pipe;
|
||||
|
||||
internal ResponseBodyReaderStream(Pipe pipe, Action abortRequest, Action readComplete)
|
||||
{
|
||||
_pipe = pipe ?? throw new ArgumentNullException(nameof(pipe));
|
||||
_abortRequest = abortRequest ?? throw new ArgumentNullException(nameof(abortRequest));
|
||||
_readComplete = readComplete;
|
||||
}
|
||||
|
||||
public override bool CanRead => true;
|
||||
|
||||
public override bool CanSeek => false;
|
||||
|
||||
public override bool CanWrite => false;
|
||||
|
||||
#region NotSupported
|
||||
|
||||
public override long Length => throw new NotSupportedException();
|
||||
|
||||
public override long Position
|
||||
{
|
||||
get => throw new NotSupportedException();
|
||||
set => throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException();
|
||||
|
||||
public override void SetLength(long value) => throw new NotSupportedException();
|
||||
|
||||
public override void Flush() => throw new NotSupportedException();
|
||||
|
||||
public override Task FlushAsync(CancellationToken cancellationToken) => throw new NotSupportedException();
|
||||
|
||||
// Write with count 0 will still trigger OnFirstWrite
|
||||
public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException();
|
||||
|
||||
public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) => throw new NotSupportedException();
|
||||
|
||||
#endregion NotSupported
|
||||
|
||||
public override int Read(byte[] buffer, int offset, int count)
|
||||
{
|
||||
return ReadAsync(buffer, offset, count, CancellationToken.None).GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
public async override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
{
|
||||
VerifyBuffer(buffer, offset, count);
|
||||
CheckAborted();
|
||||
|
||||
if (_readerComplete)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
using var registration = cancellationToken.Register(Cancel);
|
||||
var result = await _pipe.Reader.ReadAsync(cancellationToken);
|
||||
|
||||
if (result.Buffer.IsEmpty && result.IsCompleted)
|
||||
{
|
||||
_pipe.Reader.Complete();
|
||||
_readComplete();
|
||||
_readerComplete = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
var readableBuffer = result.Buffer;
|
||||
var actual = Math.Min(readableBuffer.Length, count);
|
||||
readableBuffer = readableBuffer.Slice(0, actual);
|
||||
readableBuffer.CopyTo(new Span<byte>(buffer, offset, count));
|
||||
_pipe.Reader.AdvanceTo(readableBuffer.End);
|
||||
return (int)actual;
|
||||
}
|
||||
|
||||
private static void VerifyBuffer(byte[] buffer, int offset, int count)
|
||||
{
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
if (offset < 0 || offset > buffer.Length)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("offset", offset, string.Empty);
|
||||
}
|
||||
if (count <= 0 || count > buffer.Length - offset)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("count", count, string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
internal void Cancel()
|
||||
{
|
||||
_aborted = true;
|
||||
_abortException = new OperationCanceledException();
|
||||
_pipe.Writer.Complete(_abortException);
|
||||
}
|
||||
|
||||
internal void Abort(Exception innerException)
|
||||
{
|
||||
Contract.Requires(innerException != null);
|
||||
_aborted = true;
|
||||
_abortException = innerException;
|
||||
}
|
||||
|
||||
private void CheckAborted()
|
||||
{
|
||||
if (_aborted)
|
||||
{
|
||||
throw new IOException(string.Empty, _abortException);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
_abortRequest();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
// 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.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.AspNetCore.TestHost
|
||||
{
|
||||
internal class ResponseBodyWriterStream : Stream
|
||||
{
|
||||
private readonly ResponseBodyPipeWriter _responseWriter;
|
||||
private readonly Func<bool> _allowSynchronousIO;
|
||||
|
||||
public ResponseBodyWriterStream(ResponseBodyPipeWriter responseWriter, Func<bool> allowSynchronousIO)
|
||||
{
|
||||
_responseWriter = responseWriter;
|
||||
_allowSynchronousIO = allowSynchronousIO;
|
||||
}
|
||||
|
||||
public override bool CanRead => false;
|
||||
|
||||
public override bool CanSeek => false;
|
||||
|
||||
public override bool CanWrite => true;
|
||||
|
||||
public override long Length => throw new NotSupportedException();
|
||||
|
||||
public override long Position { get => throw new NotSupportedException(); set => throw new NotSupportedException(); }
|
||||
|
||||
public override int Read(byte[] buffer, int offset, int count)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override long Seek(long offset, SeekOrigin origin)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override void SetLength(long value)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override void Flush()
|
||||
{
|
||||
FlushAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
public override async Task FlushAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
await _responseWriter.FlushAsync(cancellationToken);
|
||||
}
|
||||
|
||||
public override void Write(byte[] buffer, int offset, int count)
|
||||
{
|
||||
if (!_allowSynchronousIO())
|
||||
{
|
||||
throw new InvalidOperationException("Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true.");
|
||||
}
|
||||
|
||||
// The Pipe Write method requires calling FlushAsync to notify the reader. Call WriteAsync instead.
|
||||
WriteAsync(buffer, offset, count).GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
public override async Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
{
|
||||
await _responseWriter.WriteAsync(new ReadOnlyMemory<byte>(buffer, offset, count), cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Pipelines;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
|
@ -10,7 +11,7 @@ using Microsoft.AspNetCore.Http.Features;
|
|||
|
||||
namespace Microsoft.AspNetCore.TestHost
|
||||
{
|
||||
internal class ResponseFeature : IHttpResponseFeature, IHttpResponseStartFeature
|
||||
internal class ResponseFeature : IHttpResponseFeature, IHttpResponseStartFeature, IResponseBodyPipeFeature
|
||||
{
|
||||
private readonly HeaderDictionary _headers = new HeaderDictionary();
|
||||
private readonly Action<Exception> _abort;
|
||||
|
|
@ -67,6 +68,30 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
|
||||
public Stream Body { get; set; }
|
||||
|
||||
internal Stream BodySnapshot { get; set; }
|
||||
|
||||
internal PipeWriter BodyWriter { get; set; }
|
||||
|
||||
public PipeWriter Writer
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!ReferenceEquals(BodySnapshot, Body))
|
||||
{
|
||||
BodySnapshot = Body;
|
||||
BodyWriter = PipeWriter.Create(Body);
|
||||
|
||||
OnCompleted((self) =>
|
||||
{
|
||||
((PipeWriter)self).Complete();
|
||||
return Task.CompletedTask;
|
||||
}, BodyWriter);
|
||||
}
|
||||
|
||||
return BodyWriter;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasStarted { get; set; }
|
||||
|
||||
public void OnStarting(Func<object, Task> callback, object state)
|
||||
|
|
|
|||
|
|
@ -1,259 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Buffers;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.IO;
|
||||
using System.IO.Pipelines;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.AspNetCore.TestHost
|
||||
{
|
||||
// This steam accepts writes from the server/app, buffers them internally, and returns the data via Reads
|
||||
// when requested by the client.
|
||||
internal class ResponseStream : Stream
|
||||
{
|
||||
private bool _complete;
|
||||
private bool _readerComplete;
|
||||
private bool _aborted;
|
||||
private Exception _abortException;
|
||||
private bool _firstWrite;
|
||||
|
||||
private readonly SemaphoreSlim _writeLock;
|
||||
private readonly Func<Task> _onFirstWriteAsync;
|
||||
private readonly Action _abortRequest;
|
||||
private readonly Func<bool> _allowSynchronousIO;
|
||||
private readonly Action _readComplete;
|
||||
private readonly Pipe _pipe = new Pipe();
|
||||
|
||||
internal ResponseStream(Func<Task> onFirstWriteAsync, Action abortRequest, Func<bool> allowSynchronousIO, Action readComplete)
|
||||
{
|
||||
_onFirstWriteAsync = onFirstWriteAsync ?? throw new ArgumentNullException(nameof(onFirstWriteAsync));
|
||||
_abortRequest = abortRequest ?? throw new ArgumentNullException(nameof(abortRequest));
|
||||
_allowSynchronousIO = allowSynchronousIO ?? throw new ArgumentNullException(nameof(allowSynchronousIO));
|
||||
_readComplete = readComplete;
|
||||
_firstWrite = true;
|
||||
_writeLock = new SemaphoreSlim(1, 1);
|
||||
}
|
||||
|
||||
public override bool CanRead
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public override bool CanSeek
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public override bool CanWrite
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
#region NotSupported
|
||||
|
||||
public override long Length
|
||||
{
|
||||
get { throw new NotSupportedException(); }
|
||||
}
|
||||
|
||||
public override long Position
|
||||
{
|
||||
get { throw new NotSupportedException(); }
|
||||
set { throw new NotSupportedException(); }
|
||||
}
|
||||
|
||||
public override long Seek(long offset, SeekOrigin origin)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override void SetLength(long value)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
#endregion NotSupported
|
||||
|
||||
public override void Flush()
|
||||
{
|
||||
FlushAsync().GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
public override async Task FlushAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
CheckNotComplete();
|
||||
|
||||
await _writeLock.WaitAsync(cancellationToken);
|
||||
try
|
||||
{
|
||||
await FirstWriteAsync();
|
||||
await _pipe.Writer.FlushAsync(cancellationToken);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_writeLock.Release();
|
||||
}
|
||||
}
|
||||
|
||||
public override int Read(byte[] buffer, int offset, int count)
|
||||
{
|
||||
return ReadAsync(buffer, offset, count, CancellationToken.None).GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
public async override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
{
|
||||
VerifyBuffer(buffer, offset, count, allowEmpty: false);
|
||||
CheckAborted();
|
||||
|
||||
if (_readerComplete)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
var registration = cancellationToken.Register(Cancel);
|
||||
try
|
||||
{
|
||||
var result = await _pipe.Reader.ReadAsync(cancellationToken);
|
||||
|
||||
if (result.Buffer.IsEmpty && result.IsCompleted)
|
||||
{
|
||||
_pipe.Reader.Complete();
|
||||
_readComplete();
|
||||
_readerComplete = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
var readableBuffer = result.Buffer;
|
||||
var actual = Math.Min(readableBuffer.Length, count);
|
||||
readableBuffer = readableBuffer.Slice(0, actual);
|
||||
readableBuffer.CopyTo(new Span<byte>(buffer, offset, count));
|
||||
_pipe.Reader.AdvanceTo(readableBuffer.End, readableBuffer.End);
|
||||
return (int)actual;
|
||||
}
|
||||
finally
|
||||
{
|
||||
registration.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
// Called under write-lock.
|
||||
private Task FirstWriteAsync()
|
||||
{
|
||||
if (_firstWrite)
|
||||
{
|
||||
_firstWrite = false;
|
||||
return _onFirstWriteAsync();
|
||||
}
|
||||
return Task.FromResult(true);
|
||||
}
|
||||
|
||||
// Write with count 0 will still trigger OnFirstWrite
|
||||
public override void Write(byte[] buffer, int offset, int count)
|
||||
{
|
||||
if (!_allowSynchronousIO())
|
||||
{
|
||||
throw new InvalidOperationException("Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true.");
|
||||
}
|
||||
|
||||
// The Pipe Write method requires calling FlushAsync to notify the reader. Call WriteAsync instead.
|
||||
WriteAsync(buffer, offset, count).GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
public override async Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
{
|
||||
VerifyBuffer(buffer, offset, count, allowEmpty: true);
|
||||
CheckNotComplete();
|
||||
|
||||
await _writeLock.WaitAsync(cancellationToken);
|
||||
try
|
||||
{
|
||||
await FirstWriteAsync();
|
||||
await _pipe.Writer.WriteAsync(new ReadOnlyMemory<byte>(buffer, offset, count), cancellationToken);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_writeLock.Release();
|
||||
}
|
||||
}
|
||||
|
||||
private static void VerifyBuffer(byte[] buffer, int offset, int count, bool allowEmpty)
|
||||
{
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
if (offset < 0 || offset > buffer.Length)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("offset", offset, string.Empty);
|
||||
}
|
||||
if (count < 0 || count > buffer.Length - offset
|
||||
|| (!allowEmpty && count == 0))
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("count", count, string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
internal void Cancel()
|
||||
{
|
||||
_aborted = true;
|
||||
_abortException = new OperationCanceledException();
|
||||
_complete = true;
|
||||
_pipe.Writer.Complete(_abortException);
|
||||
}
|
||||
|
||||
internal void Abort(Exception innerException)
|
||||
{
|
||||
Contract.Requires(innerException != null);
|
||||
_aborted = true;
|
||||
_abortException = innerException;
|
||||
_complete = true;
|
||||
_pipe.Writer.Complete(new IOException(string.Empty, innerException));
|
||||
}
|
||||
|
||||
internal void CompleteWrites()
|
||||
{
|
||||
// If HttpClient.Dispose gets called while HttpClient.SetTask...() is called
|
||||
// there is a chance that this method will be called twice and hang on the lock
|
||||
// to prevent this we can check if there is already a thread inside the lock
|
||||
if (_complete)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Throw for further writes, but not reads. Allow reads to drain the buffered data and then return 0 for further reads.
|
||||
_complete = true;
|
||||
_pipe.Writer.Complete();
|
||||
}
|
||||
|
||||
private void CheckAborted()
|
||||
{
|
||||
if (_aborted)
|
||||
{
|
||||
throw new IOException(string.Empty, _abortException);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
_abortRequest();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
private void CheckNotComplete()
|
||||
{
|
||||
if (_complete)
|
||||
{
|
||||
throw new IOException("The request was aborted or the pipeline has finished");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Hosting;
|
|||
using Microsoft.AspNetCore.Hosting.Server;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Microsoft.AspNetCore.TestHost
|
||||
{
|
||||
|
|
@ -19,19 +20,22 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
private ApplicationWrapper _application;
|
||||
|
||||
/// <summary>
|
||||
/// For use with IHostBuilder or IWebHostBuilder.
|
||||
/// For use with IHostBuilder.
|
||||
/// </summary>
|
||||
public TestServer()
|
||||
: this(new FeatureCollection())
|
||||
/// <param name="services"></param>
|
||||
public TestServer(IServiceProvider services)
|
||||
: this(services, new FeatureCollection())
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For use with IHostBuilder or IWebHostBuilder.
|
||||
/// For use with IHostBuilder.
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="featureCollection"></param>
|
||||
public TestServer(IFeatureCollection featureCollection)
|
||||
public TestServer(IServiceProvider services, IFeatureCollection featureCollection)
|
||||
{
|
||||
Services = services ?? throw new ArgumentNullException(nameof(services));
|
||||
Features = featureCollection ?? throw new ArgumentNullException(nameof(featureCollection));
|
||||
}
|
||||
|
||||
|
|
@ -50,16 +54,19 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
/// <param name="builder"></param>
|
||||
/// <param name="featureCollection"></param>
|
||||
public TestServer(IWebHostBuilder builder, IFeatureCollection featureCollection)
|
||||
: this(featureCollection)
|
||||
{
|
||||
if (builder == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(builder));
|
||||
}
|
||||
|
||||
Features = featureCollection ?? throw new ArgumentNullException(nameof(featureCollection));
|
||||
|
||||
var host = builder.UseServer(this).Build();
|
||||
host.StartAsync().GetAwaiter().GetResult();
|
||||
_hostInstance = host;
|
||||
|
||||
Services = host.Services;
|
||||
}
|
||||
|
||||
public Uri BaseAddress { get; set; } = new Uri("http://localhost/");
|
||||
|
|
@ -73,6 +80,8 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
}
|
||||
}
|
||||
|
||||
public IServiceProvider Services { get; }
|
||||
|
||||
public IFeatureCollection Features { get; }
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -34,5 +34,19 @@ namespace Microsoft.AspNetCore.TestHost
|
|||
Assert.Equal("Test/Value", request.Content.Headers.ContentType.ToString());
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestServer_PropertyShouldHoldTestServerInstance()
|
||||
{
|
||||
// Arrange
|
||||
var builder = new WebHostBuilder().Configure(app => { });
|
||||
var server = new TestServer(builder);
|
||||
|
||||
// Act
|
||||
var requestBuilder = server.CreateRequest("/");
|
||||
|
||||
// Assert
|
||||
Assert.Equal(server, requestBuilder.TestServer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue