Merge branch 'master' into 'merge/release/3.1-to-master'
This commit is contained in:
commit
693d39d495
|
|
@ -16,7 +16,8 @@
|
|||
<IsPackable Condition="'$(IsAspNetCoreApp)' == 'true' AND '$(IsShippingPackage)' != 'true'">false</IsPackable>
|
||||
|
||||
<!-- Only build assemblies in Microsoft.AspNetCore.App in source build -->
|
||||
<ExcludeFromSourceBuild Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true'">true</ExcludeFromSourceBuild>
|
||||
<!-- Analyzer package are needed in source build for WebSDK -->
|
||||
<ExcludeFromSourceBuild Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Resx settings">
|
||||
|
|
|
|||
|
|
@ -154,6 +154,10 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Label="External dependencies available in source build" >
|
||||
<LatestPackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Label="External dependencies" Condition="'$(DotNetBuildFromSource)' != 'true'">
|
||||
<LatestPackageReference Include="AngleSharp" Version="$(AngleSharpPackageVersion)" />
|
||||
<LatestPackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
|
||||
|
|
@ -171,7 +175,6 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="Mono.Cecil" Version="$(MonoCecilPackageVersion)" />
|
||||
<LatestPackageReference Include="Mono.WebAssembly.Interop" Version="$(MonoWebAssemblyInteropPackageVersion)" />
|
||||
<LatestPackageReference Include="Moq" Version="$(MoqPackageVersion)" />
|
||||
<LatestPackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
|
||||
<LatestPackageReference Include="Newtonsoft.Json.Bson" Version="$(NewtonsoftJsonBsonPackageVersion)" />
|
||||
<LatestPackageReference Include="NSwag.ApiDescription.Client" Version="$(NSwagApiDescriptionClientPackageVersion)" />
|
||||
<LatestPackageReference Include="Selenium.Support" Version="$(SeleniumSupportPackageVersion)" />
|
||||
|
|
|
|||
|
|
@ -105,10 +105,11 @@
|
|||
<FileSignInfo Include="Microsoft.Build.Locator.dll" CertificateName="None" />
|
||||
|
||||
<!--
|
||||
We include the Microsoft.Data.SqlClient.dll assembly in our global tool 'dotnet-sql-cache'.
|
||||
We include the Microsoft.Data.SqlClient.dll and Microsoft.Identity.Client.dll assembly in our global tool 'dotnet-sql-cache'.
|
||||
It is already signed by that team, so we don't need to sign it.
|
||||
-->
|
||||
<FileSignInfo Include="Microsoft.Data.SqlClient.dll" CertificateName="None" />
|
||||
<FileSignInfo Include="Microsoft.Identity.Client.dll" CertificateName="None" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -9,408 +9,412 @@
|
|||
-->
|
||||
<Dependencies>
|
||||
<ProductDependencies>
|
||||
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="5.0.0-alpha1.19426.2">
|
||||
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="5.0.0-alpha1.19463.2">
|
||||
<Uri>https://github.com/aspnet/Blazor</Uri>
|
||||
<Sha>7eeab316fa122b69a9bd777c93dcc78bc6a68905</Sha>
|
||||
<Sha>f5d0da88db7b29207fc005a7478bf0b9b6fc9fc9</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="5.0.0-alpha1.19428.3">
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="5.0.0-alpha1.19467.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>64d85fe81e8f5ea374e7783318bd094604fa7ae9</Sha>
|
||||
<Sha>01db467df0350147bbf04f80f8c16033c23a4b4a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="5.0.0-alpha1.19428.3">
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="5.0.0-alpha1.19467.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>64d85fe81e8f5ea374e7783318bd094604fa7ae9</Sha>
|
||||
<Sha>01db467df0350147bbf04f80f8c16033c23a4b4a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="5.0.0-alpha1.19428.3">
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="5.0.0-alpha1.19467.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>64d85fe81e8f5ea374e7783318bd094604fa7ae9</Sha>
|
||||
<Sha>01db467df0350147bbf04f80f8c16033c23a4b4a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="5.0.0-alpha1.19428.3">
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="5.0.0-alpha1.19467.1">
|
||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||
<Sha>64d85fe81e8f5ea374e7783318bd094604fa7ae9</Sha>
|
||||
<Sha>01db467df0350147bbf04f80f8c16033c23a4b4a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-ef" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="dotnet-ef" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-alpha1.19428.1">
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-alpha1.19467.7">
|
||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||
<Sha>ff13800c0774c936734ca070410f05299e896346</Sha>
|
||||
<Sha>0e4d1f3b9b9051ebf08342047a6db4b8a2bfcaef</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.JSInterop" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.JSInterop" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Mono.WebAssembly.Interop" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Mono.WebAssembly.Interop" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.2.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.2.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CSharp" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.CSharp" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.SystemEvents" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Win32.SystemEvents" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<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>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Drawing.Common" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.IO.Pipelines" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Drawing.Common" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.IO.Pipelines" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.9.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.9.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Permissions" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Permissions" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Json" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Threading.Channels" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Text.Json" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Windows.Extensions" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="System.Threading.Channels" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="5.0.0-alpha1.19425.8" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="System.Windows.Extensions" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="5.0.0-alpha1.19465.2" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>70a3592bd46540bd596f95db4469c040018aa249</Sha>
|
||||
<Sha>9042fe6c81aa3b47f58ccd94ff02e42f9f7a4e46</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0-alpha1.19425.8" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0-alpha1.19465.2" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>70a3592bd46540bd596f95db4469c040018aa249</Sha>
|
||||
<Sha>9042fe6c81aa3b47f58ccd94ff02e42f9f7a4e46</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="5.0.0-alpha1.19425.8" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="5.0.0-alpha1.19465.2" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>70a3592bd46540bd596f95db4469c040018aa249</Sha>
|
||||
<Sha>9042fe6c81aa3b47f58ccd94ff02e42f9f7a4e46</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-alpha1.19425.8" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-alpha1.19465.2" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>70a3592bd46540bd596f95db4469c040018aa249</Sha>
|
||||
<Sha>9042fe6c81aa3b47f58ccd94ff02e42f9f7a4e46</Sha>
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-alpha1.19425.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-alpha1.19462.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>ba50ba15d0747d5be1e8bd38ea03a5ba892314bd</Sha>
|
||||
<Sha>be3d4bad4576eecda116d3e9a368cd6959ecf5ce</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19425.1">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
|
|
@ -424,13 +428,13 @@
|
|||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>2de3acc671fc624191672a45564f9ef130af5cd4</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="5.0.0-alpha1.19427.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="5.0.0-alpha1.19466.1" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>d8590b1c03f6fcb1adfe667bd81b4407b39f71c7</Sha>
|
||||
<Sha>3702cd2801d0459663bccebe6ae63054748b8589</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.4.0-beta1-19424-01" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.4.0-beta1-19456-03" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
<Sha>a36dcccf259ceec904a36b381085d2d940d80ea0</Sha>
|
||||
<Sha>3c865821f2864393a0ff7fe22c92ded6d51a546c</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
|
|
|||
|
|
@ -52,114 +52,114 @@
|
|||
<!-- Packages from dotnet/arcade -->
|
||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19425.1</MicrosoftDotNetGenAPIPackageVersion>
|
||||
<!-- Packages from dotnet/roslyn -->
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>3.4.0-beta1-19424-01</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>3.4.0-beta1-19456-03</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
<!-- Packages from dotnet/core-setup -->
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>5.0.0-alpha1.19425.8</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>5.0.0-alpha1.19425.8</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>5.0.0-alpha1.19425.8</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0-alpha1.19425.8</NETStandardLibraryRefPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>5.0.0-alpha1.19465.2</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>5.0.0-alpha1.19465.2</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>5.0.0-alpha1.19465.2</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0-alpha1.19465.2</NETStandardLibraryRefPackageVersion>
|
||||
<!-- Packages from dotnet/corefx -->
|
||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.2.0-alpha1.19425.4</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>5.0.0-alpha1.19425.4</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>5.0.0-alpha1.19425.4</MicrosoftWin32RegistryPackageVersion>
|
||||
<MicrosoftWin32SystemEventsPackageVersion>5.0.0-alpha1.19425.4</MicrosoftWin32SystemEventsPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>5.0.0-alpha1.19425.4</SystemComponentModelAnnotationsPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>5.0.0-alpha1.19425.4</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemDrawingCommonPackageVersion>5.0.0-alpha1.19425.4</SystemDrawingCommonPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>5.0.0-alpha1.19425.4</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>5.0.0-alpha1.19425.4</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>5.0.0-alpha1.19425.4</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.9.0-alpha1.19425.4</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>5.0.0-alpha1.19425.4</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>5.0.0-alpha1.19425.4</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>5.0.0-alpha1.19425.4</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>5.0.0-alpha1.19425.4</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>5.0.0-alpha1.19425.4</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>5.0.0-alpha1.19425.4</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>5.0.0-alpha1.19425.4</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>5.0.0-alpha1.19425.4</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>5.0.0-alpha1.19425.4</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>5.0.0-alpha1.19425.4</SystemThreadingChannelsPackageVersion>
|
||||
<SystemWindowsExtensionsPackageVersion>5.0.0-alpha1.19425.4</SystemWindowsExtensionsPackageVersion>
|
||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.2.0-alpha1.19462.7</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>5.0.0-alpha1.19462.7</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>5.0.0-alpha1.19462.7</MicrosoftWin32RegistryPackageVersion>
|
||||
<MicrosoftWin32SystemEventsPackageVersion>5.0.0-alpha1.19462.7</MicrosoftWin32SystemEventsPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>5.0.0-alpha1.19462.7</SystemComponentModelAnnotationsPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>5.0.0-alpha1.19462.7</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemDrawingCommonPackageVersion>5.0.0-alpha1.19462.7</SystemDrawingCommonPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>5.0.0-alpha1.19462.7</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>5.0.0-alpha1.19462.7</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>5.0.0-alpha1.19462.7</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.9.0-alpha1.19462.7</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>5.0.0-alpha1.19462.7</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>5.0.0-alpha1.19462.7</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>5.0.0-alpha1.19462.7</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>5.0.0-alpha1.19462.7</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>5.0.0-alpha1.19462.7</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>5.0.0-alpha1.19462.7</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>5.0.0-alpha1.19462.7</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>5.0.0-alpha1.19462.7</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>5.0.0-alpha1.19462.7</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>5.0.0-alpha1.19462.7</SystemThreadingChannelsPackageVersion>
|
||||
<SystemWindowsExtensionsPackageVersion>5.0.0-alpha1.19462.7</SystemWindowsExtensionsPackageVersion>
|
||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>5.0.0-alpha1.19425.4</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>5.0.0-alpha1.19462.7</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<!-- Packages from aspnet/Blazor -->
|
||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>5.0.0-alpha1.19426.2</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>5.0.0-alpha1.19463.2</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||
<!-- Packages from aspnet/Extensions -->
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>5.0.0-alpha1.19427.4</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>5.0.0-alpha1.19427.4</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>5.0.0-alpha1.19427.4</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>5.0.0-alpha1.19427.4</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>5.0.0-alpha1.19427.4</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>5.0.0-alpha1.19427.4</MicrosoftJSInteropPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>5.0.0-alpha1.19427.4</MonoWebAssemblyInteropPackageVersion>
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>5.0.0-alpha1.19466.1</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>5.0.0-alpha1.19466.1</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>5.0.0-alpha1.19466.1</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>5.0.0-alpha1.19466.1</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>5.0.0-alpha1.19466.1</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>5.0.0-alpha1.19466.1</MicrosoftJSInteropPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>5.0.0-alpha1.19466.1</MonoWebAssemblyInteropPackageVersion>
|
||||
<!-- Packages from aspnet/EntityFrameworkCore -->
|
||||
<dotnetefPackageVersion>5.0.0-alpha1.19428.1</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-alpha1.19428.1</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-alpha1.19428.1</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-alpha1.19428.1</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-alpha1.19428.1</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-alpha1.19428.1</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-alpha1.19428.1</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<dotnetefPackageVersion>5.0.0-alpha1.19467.7</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-alpha1.19467.7</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-alpha1.19467.7</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-alpha1.19467.7</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-alpha1.19467.7</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-alpha1.19467.7</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-alpha1.19467.7</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>5.0.0-alpha1.19428.3</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>5.0.0-alpha1.19428.3</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>5.0.0-alpha1.19428.3</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>5.0.0-alpha1.19428.3</MicrosoftNETSdkRazorPackageVersion>
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>5.0.0-alpha1.19467.1</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>5.0.0-alpha1.19467.1</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>5.0.0-alpha1.19467.1</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>5.0.0-alpha1.19467.1</MicrosoftNETSdkRazorPackageVersion>
|
||||
</PropertyGroup>
|
||||
<!--
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
param (
|
||||
$darcVersion = $null,
|
||||
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16",
|
||||
$verbosity = "m"
|
||||
)
|
||||
|
||||
$verbosity = "m"
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
function InstallDarcCli ($darcVersion) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
source="${BASH_SOURCE[0]}"
|
||||
darcVersion=''
|
||||
versionEndpoint="https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||
verbosity=m
|
||||
|
||||
while [[ $# > 0 ]]; do
|
||||
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
||||
|
|
@ -15,6 +16,10 @@ while [[ $# > 0 ]]; do
|
|||
versionEndpoint=$2
|
||||
shift
|
||||
;;
|
||||
--verbosity)
|
||||
verbosity=$2
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Invalid argument: $1"
|
||||
usage
|
||||
|
|
@ -34,7 +39,6 @@ while [[ -h "$source" ]]; do
|
|||
[[ $source != /* ]] && source="$scriptroot/$source"
|
||||
done
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
verbosity=m
|
||||
|
||||
. "$scriptroot/tools.sh"
|
||||
|
||||
|
|
|
|||
|
|
@ -152,6 +152,8 @@ function Get-File {
|
|||
}
|
||||
else {
|
||||
Write-Verbose "Downloading $Uri"
|
||||
# Don't display the console progress UI - it's a huge perf hit
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
while($Attempt -Lt $DownloadRetries)
|
||||
{
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ function FirstMatchingSymbolDescriptionOrDefault {
|
|||
# DWARF file for a .dylib
|
||||
$DylibDwarf = $SymbolPath.Replace($Extension, ".dylib.dwarf")
|
||||
|
||||
$dotnetsymbolExe = "$env:USERPROFILE\.dotnet\tools"
|
||||
$dotnetsymbolExe = Resolve-Path "$dotnetsymbolExe\dotnet-symbol.exe"
|
||||
$dotnetSymbolExe = "$env:USERPROFILE\.dotnet\tools"
|
||||
$dotnetSymbolExe = Resolve-Path "$dotnetSymbolExe\dotnet-symbol.exe"
|
||||
|
||||
& $dotnetsymbolExe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath | Out-Null
|
||||
& $dotnetSymbolExe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath | Out-Null
|
||||
|
||||
if (Test-Path $PdbPath) {
|
||||
return "PDB"
|
||||
|
|
@ -159,25 +159,25 @@ function CheckSymbolsAvailable {
|
|||
}
|
||||
}
|
||||
|
||||
function Installdotnetsymbol {
|
||||
$dotnetsymbolPackageName = "dotnet-symbol"
|
||||
function InstallDotnetSymbol {
|
||||
$dotnetSymbolPackageName = "dotnet-symbol"
|
||||
|
||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
||||
$toolList = & "$dotnet" tool list --global
|
||||
|
||||
if (($toolList -like "*$dotnetsymbolPackageName*") -and ($toolList -like "*$dotnetsymbolVersion*")) {
|
||||
Write-Host "dotnet-symbol version $dotnetsymbolVersion is already installed."
|
||||
if (($toolList -like "*$dotnetSymbolPackageName*") -and ($toolList -like "*$dotnetSymbolVersion*")) {
|
||||
Write-Host "dotnet-symbol version $dotnetSymbolVersion is already installed."
|
||||
}
|
||||
else {
|
||||
Write-Host "Installing dotnet-symbol version $dotnetsymbolVersion..."
|
||||
Write-Host "Installing dotnet-symbol version $dotnetSymbolVersion..."
|
||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
||||
& "$dotnet" tool install $dotnetsymbolPackageName --version $dotnetsymbolVersion --verbosity "minimal" --global
|
||||
& "$dotnet" tool install $dotnetSymbolPackageName --version $dotnetSymbolVersion --verbosity "minimal" --global
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
Installdotnetsymbol
|
||||
InstallDotnetSymbol
|
||||
|
||||
CheckSymbolsAvailable
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ if ($ValidPath -eq $False)
|
|||
exit 1
|
||||
}
|
||||
|
||||
& $(Join-Path $PSScriptRoot "init-sdl.ps1") -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory $ArtifactsDirectory -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel
|
||||
$gdnFolder = Join-Path $ArtifactsDirectory ".gdn"
|
||||
& $(Join-Path $PSScriptRoot "init-sdl.ps1") -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory (Split-Path $SourceDirectory -Parent) -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel
|
||||
$gdnFolder = Join-Path (Split-Path $SourceDirectory -Parent) ".gdn"
|
||||
|
||||
if ($TsaOnboard) {
|
||||
if ($TsaCodebaseName -and $TsaNotificationEmail -and $TsaCodebaseAdmin -and $TsaBugAreaPath) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ $ErrorActionPreference = "Stop"
|
|||
Set-StrictMode -Version 2.0
|
||||
$LASTEXITCODE = 0
|
||||
|
||||
# Don't display the console progress UI - it's a huge perf hit
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
# Construct basic auth from AzDO access token; construct URI to the repository's gdn folder stored in that repository; construct location of zip file
|
||||
$encodedPat = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$AzureDevOpsAccessToken"))
|
||||
$escapedRepository = [Uri]::EscapeDataString("/$Repository/$BranchName/.gdn")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.Guardian.Cli" version="0.7.1"/>
|
||||
<package id="Microsoft.Guardian.Cli" version="0.7.2"/>
|
||||
</packages>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
parameters:
|
||||
overrideParameters: '' # Optional: to override values for parameters.
|
||||
additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")'
|
||||
continueOnError: false # optional: determines whether to continue the build if the step errors;
|
||||
# There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named
|
||||
# 'continueOnError', the parameter value is not correctly picked up.
|
||||
# This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter
|
||||
sdlContinueOnError: false # optional: determines whether to continue the build if the step errors;
|
||||
dependsOn: '' # Optional: dependencies of the job
|
||||
|
||||
jobs:
|
||||
|
|
@ -26,12 +29,12 @@ jobs:
|
|||
-InputPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts
|
||||
-ExtractPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts
|
||||
displayName: Extract Blob Artifacts
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
- powershell: eng/common/sdl/extract-artifact-packages.ps1
|
||||
-InputPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts
|
||||
-ExtractPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts
|
||||
displayName: Extract Package Artifacts
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Install NuGet.exe'
|
||||
- task: NuGetCommand@2
|
||||
|
|
@ -45,12 +48,12 @@ jobs:
|
|||
- ${{ if ne(parameters.overrideParameters, '') }}:
|
||||
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1 ${{ parameters.overrideParameters }}
|
||||
displayName: Execute SDL
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
- ${{ if eq(parameters.overrideParameters, '') }}:
|
||||
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1
|
||||
-GuardianPackageName Microsoft.Guardian.Cli.0.7.1
|
||||
-GuardianPackageName Microsoft.Guardian.Cli.0.7.2
|
||||
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
|
||||
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
|
||||
${{ parameters.additionalParameters }}
|
||||
displayName: Execute SDL
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
parameters:
|
||||
enableSourceLinkValidation: true
|
||||
enableSourceLinkValidation: false
|
||||
enableSigningValidation: true
|
||||
enableSymbolValidation: true
|
||||
enableSymbolValidation: false
|
||||
enableNugetValidation: true
|
||||
publishInstallersAndChecksums: false
|
||||
SDLValidationParameters:
|
||||
enable: false
|
||||
continueOnError: false
|
||||
params: ''
|
||||
|
||||
# These parameters let the user customize the call to sdk-task.ps1 for publishing
|
||||
|
|
@ -92,6 +93,7 @@ stages:
|
|||
- template: /eng/common/templates/job/execute-sdl.yml
|
||||
parameters:
|
||||
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
|
||||
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
|
||||
|
||||
- template: \eng\common\templates\post-build\channels\netcore-dev-5.yml
|
||||
parameters:
|
||||
|
|
|
|||
|
|
@ -163,6 +163,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) {
|
|||
$installScript = Join-Path $dotnetRoot "dotnet-install.ps1"
|
||||
if (!(Test-Path $installScript)) {
|
||||
Create-Directory $dotnetRoot
|
||||
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
|
||||
Invoke-WebRequest "https://dot.net/$dotnetInstallScriptVersion/dotnet-install.ps1" -OutFile $installScript
|
||||
}
|
||||
|
||||
|
|
@ -282,6 +283,7 @@ function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install) {
|
|||
|
||||
Create-Directory $packageDir
|
||||
Write-Host "Downloading $packageName $packageVersion"
|
||||
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
|
||||
Invoke-WebRequest "https://dotnet.myget.org/F/roslyn-tools/api/v2/package/$packageName/$packageVersion/" -OutFile $packagePath
|
||||
Unzip $packagePath $packageDir
|
||||
}
|
||||
|
|
|
|||
|
|
@ -208,12 +208,19 @@ function GetDotNetInstallScript {
|
|||
|
||||
# Use curl if available, otherwise use wget
|
||||
if command -v curl > /dev/null; then
|
||||
curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script"
|
||||
else
|
||||
wget -q -O "$install_script" "$install_script_url"
|
||||
curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || {
|
||||
local exit_code=$?
|
||||
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')."
|
||||
ExitWithExitCode $exit_code
|
||||
}
|
||||
else
|
||||
wget -q -O "$install_script" "$install_script_url" || {
|
||||
local exit_code=$?
|
||||
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')."
|
||||
ExitWithExitCode $exit_code
|
||||
}
|
||||
fi
|
||||
fi
|
||||
|
||||
# return value
|
||||
_GetDotNetInstallScript="$install_script"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,47 +1,58 @@
|
|||
// 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.Runtime.InteropServices;
|
||||
using Microsoft.AspNetCore.Components.Rendering;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.RenderTree
|
||||
{
|
||||
// https://github.com/dotnet/arcade/pull/2033
|
||||
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Explicit)]
|
||||
[StructLayout(LayoutKind.Explicit, Pack = 4)]
|
||||
public readonly partial struct RenderTreeFrame
|
||||
{
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(8)]
|
||||
public readonly int AttributeEventHandlerId;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly string AttributeName;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(24)]
|
||||
public readonly object AttributeValue;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(12)]
|
||||
public readonly int ComponentId;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly System.Action<object> ComponentReferenceCaptureAction;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(8)]
|
||||
public readonly int ComponentReferenceCaptureParentFrameIndex;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(8)]
|
||||
public readonly int ComponentSubtreeLength;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly System.Type ComponentType;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly string ElementName;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(24)]
|
||||
public readonly System.Action<Microsoft.AspNetCore.Components.ElementReference> ElementReferenceCaptureAction;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly string ElementReferenceCaptureId;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(8)]
|
||||
public readonly int ElementSubtreeLength;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(4)]
|
||||
public readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType FrameType;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly string MarkupContent;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(8)]
|
||||
public readonly int RegionSubtreeLength;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(0)]
|
||||
public readonly int Sequence;
|
||||
[System.Runtime.InteropServices.FieldOffsetAttribute(16)]
|
||||
public readonly string TextContent;
|
||||
public Microsoft.AspNetCore.Components.IComponent Component { get { throw null; } }
|
||||
public override string ToString() { throw null; }
|
||||
[FieldOffset(0)] public readonly int Sequence;
|
||||
|
||||
[FieldOffset(4)] public readonly RenderTreeFrameType FrameType;
|
||||
|
||||
[FieldOffset(8)] public readonly int ElementSubtreeLength;
|
||||
|
||||
[FieldOffset(16)] public readonly string ElementName;
|
||||
|
||||
[FieldOffset(24)] public readonly object ElementKey;
|
||||
|
||||
[FieldOffset(16)] public readonly string TextContent;
|
||||
|
||||
[FieldOffset(8)] public readonly ulong AttributeEventHandlerId;
|
||||
|
||||
[FieldOffset(16)] public readonly string AttributeName;
|
||||
|
||||
[FieldOffset(24)] public readonly object AttributeValue;
|
||||
|
||||
[FieldOffset(32)] public readonly string AttributeEventUpdatesAttributeName;
|
||||
|
||||
[FieldOffset(8)] public readonly int ComponentSubtreeLength;
|
||||
|
||||
[FieldOffset(12)] public readonly int ComponentId;
|
||||
|
||||
[FieldOffset(16)] public readonly Type ComponentType;
|
||||
|
||||
[FieldOffset(32)] public readonly object ComponentKey;
|
||||
|
||||
public IComponent Component => null;
|
||||
|
||||
[FieldOffset(8)] public readonly int RegionSubtreeLength;
|
||||
|
||||
[FieldOffset(16)] public readonly string ElementReferenceCaptureId;
|
||||
|
||||
[FieldOffset(24)] public readonly Action<ElementReference> ElementReferenceCaptureAction;
|
||||
|
||||
[FieldOffset(8)] public readonly int ComponentReferenceCaptureParentFrameIndex;
|
||||
|
||||
[FieldOffset(16)] public readonly Action<object> ComponentReferenceCaptureAction;
|
||||
|
||||
[FieldOffset(16)] public readonly string MarkupContent;
|
||||
|
||||
public override string ToString() => null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ export class UserSpecifiedDisplay implements ReconnectDisplay {
|
|||
|
||||
static readonly FailedClassName = 'components-reconnect-failed';
|
||||
|
||||
static readonly RefusedClassName = 'components-reconnect-refused';
|
||||
static readonly RejectedClassName = 'components-reconnect-rejected';
|
||||
|
||||
constructor(private dialog: HTMLElement) {
|
||||
}
|
||||
|
|
@ -25,13 +25,13 @@ export class UserSpecifiedDisplay implements ReconnectDisplay {
|
|||
this.removeClasses();
|
||||
this.dialog.classList.add(UserSpecifiedDisplay.FailedClassName);
|
||||
}
|
||||
|
||||
|
||||
rejected(): void {
|
||||
this.removeClasses();
|
||||
this.dialog.classList.add(UserSpecifiedDisplay.RefusedClassName);
|
||||
this.dialog.classList.add(UserSpecifiedDisplay.RejectedClassName);
|
||||
}
|
||||
|
||||
private removeClasses() {
|
||||
this.dialog.classList.remove(UserSpecifiedDisplay.ShowClassName, UserSpecifiedDisplay.HideClassName, UserSpecifiedDisplay.FailedClassName, UserSpecifiedDisplay.RefusedClassName);
|
||||
this.dialog.classList.remove(UserSpecifiedDisplay.ShowClassName, UserSpecifiedDisplay.HideClassName, UserSpecifiedDisplay.FailedClassName, UserSpecifiedDisplay.RejectedClassName);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,9 +34,6 @@ namespace Microsoft.AspNetCore
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Server.IntegrationTesting
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
using Microsoft.AspNetCore.Hosting.Server.Features;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.AspNetCore.Hosting
|
||||
{
|
||||
public static class IWebHostExtensions
|
||||
{
|
||||
public static string GetAddress(this IWebHost host)
|
||||
{
|
||||
return host.ServerFeatures.Get<IServerAddressesFeature>().Addresses.First();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<Description>ASP.NET Core helpers to deploy applications to IIS Express, IIS, WebListener and Kestrel for testing.</Description>
|
||||
|
|
@ -19,7 +19,6 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.AspNetCore.Hosting.Abstractions" />
|
||||
<Reference Include="Microsoft.AspNetCore.Testing" />
|
||||
<Reference Include="Microsoft.Extensions.FileProviders.Embedded" />
|
||||
<Reference Include="Microsoft.Extensions.Logging" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
@ECHO OFF
|
||||
SET RepoRoot=%~dp0..\..
|
||||
%RepoRoot%\build.cmd -projects %~dp0**\*.*proj %*
|
||||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.Hosting.FunctionalTests
|
|||
|
||||
public ShutdownTests(ITestOutputHelper output) : base(output) { }
|
||||
|
||||
[ConditionalFact]
|
||||
[ConditionalFact(Skip = "https://github.com/aspnet/AspNetCore-Internal/issues/2577")]
|
||||
[OSSkipCondition(OperatingSystems.Windows)]
|
||||
[OSSkipCondition(OperatingSystems.MacOSX)]
|
||||
[Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2577", FlakyOn.All)]
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Security.Cryptography;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Testing;
|
||||
using Xunit;
|
||||
|
|
@ -26,7 +25,7 @@ namespace Microsoft.AspNetCore.Identity.Test
|
|||
public IdentityUIScriptsTest(ITestOutputHelper output)
|
||||
{
|
||||
_output = output;
|
||||
_httpClient = new HttpClient(new RetryHandler(new HttpClientHandler() { }));
|
||||
_httpClient = new HttpClient(new RetryHandler(new HttpClientHandler() { }, output, TimeSpan.FromSeconds(1), 5));
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> ScriptWithIntegrityData
|
||||
|
|
@ -188,25 +187,5 @@ namespace Microsoft.AspNetCore.Identity.Test
|
|||
|
||||
throw new InvalidOperationException($"Solution root could not be located using application root {applicationPath}.");
|
||||
}
|
||||
|
||||
class RetryHandler : DelegatingHandler
|
||||
{
|
||||
public RetryHandler(HttpMessageHandler innerHandler) : base(innerHandler) { }
|
||||
|
||||
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
||||
{
|
||||
HttpResponseMessage result = null;
|
||||
for (var i = 0; i < 10; i++)
|
||||
{
|
||||
result = await base.SendAsync(request, cancellationToken);
|
||||
if (result.IsSuccessStatusCode)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
await Task.Delay(1000);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
// 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.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit.Abstractions;
|
||||
|
||||
namespace Microsoft.AspNetCore.Identity.Test
|
||||
{
|
||||
internal class RetryHandler : DelegatingHandler
|
||||
{
|
||||
private readonly ITestOutputHelper _output;
|
||||
private readonly int _maxRetries;
|
||||
private TimeSpan _waitIntervalBeforeRetry;
|
||||
|
||||
public RetryHandler(
|
||||
HttpClientHandler httpClientHandler,
|
||||
ITestOutputHelper output,
|
||||
TimeSpan initialWaitTime,
|
||||
int maxAttempts) : base(httpClientHandler)
|
||||
{
|
||||
_waitIntervalBeforeRetry = initialWaitTime;
|
||||
_output = output;
|
||||
_maxRetries = maxAttempts;
|
||||
}
|
||||
|
||||
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
||||
{
|
||||
HttpResponseMessage result = null;
|
||||
var url = request.RequestUri;
|
||||
var method = request.Method;
|
||||
|
||||
for (var i = 0; i < _maxRetries; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
_output.WriteLine($"Sending request '{method} - {url}' {i+1} attempt.");
|
||||
result = await base.SendAsync(request, cancellationToken);
|
||||
if (result.IsSuccessStatusCode)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
_output.WriteLine($"Request '{method} - {url}' failed with {result.StatusCode}.");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_output.WriteLine($"Request '{method} - {url}' failed with {e.ToString()}");
|
||||
}
|
||||
finally
|
||||
{
|
||||
await Task.Delay(_waitIntervalBeforeRetry, cancellationToken);
|
||||
_waitIntervalBeforeRetry = _waitIntervalBeforeRetry * 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Try one last time to show the actual error.
|
||||
return await base.SendAsync(request, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
|
|
@ -15,9 +15,10 @@ namespace Microsoft.AspNetCore.HttpsPolicy
|
|||
{
|
||||
public class HttpsRedirectionMiddleware
|
||||
{
|
||||
private const int PortNotFound = -1;
|
||||
|
||||
private readonly RequestDelegate _next;
|
||||
private bool _portEvaluated = false;
|
||||
private int? _httpsPort;
|
||||
private readonly Lazy<int> _httpsPort;
|
||||
private readonly int _statusCode;
|
||||
|
||||
private readonly IServerAddressesFeature _serverAddressesFeature;
|
||||
|
|
@ -42,8 +43,14 @@ namespace Microsoft.AspNetCore.HttpsPolicy
|
|||
throw new ArgumentNullException(nameof(options));
|
||||
}
|
||||
var httpsRedirectionOptions = options.Value;
|
||||
_httpsPort = httpsRedirectionOptions.HttpsPort;
|
||||
_portEvaluated = _httpsPort.HasValue;
|
||||
if (httpsRedirectionOptions.HttpsPort.HasValue)
|
||||
{
|
||||
_httpsPort = new Lazy<int>(() => httpsRedirectionOptions.HttpsPort.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
_httpsPort = new Lazy<int>(TryGetHttpsPort);
|
||||
}
|
||||
_statusCode = httpsRedirectionOptions.RedirectStatusCode;
|
||||
_logger = loggerFactory.CreateLogger<HttpsRedirectionMiddleware>();
|
||||
}
|
||||
|
|
@ -70,7 +77,13 @@ namespace Microsoft.AspNetCore.HttpsPolicy
|
|||
/// <returns></returns>
|
||||
public Task Invoke(HttpContext context)
|
||||
{
|
||||
if (context.Request.IsHttps || !TryGetHttpsPort(out var port))
|
||||
if (context.Request.IsHttps)
|
||||
{
|
||||
return _next(context);
|
||||
}
|
||||
|
||||
var port = _httpsPort.Value;
|
||||
if (port == PortNotFound)
|
||||
{
|
||||
return _next(context);
|
||||
}
|
||||
|
|
@ -101,7 +114,8 @@ namespace Microsoft.AspNetCore.HttpsPolicy
|
|||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private bool TryGetHttpsPort(out int port)
|
||||
// Returns PortNotFound (-1) if we were unable to determine the port.
|
||||
private int TryGetHttpsPort()
|
||||
{
|
||||
// The IServerAddressesFeature will not be ready until the middleware is Invoked,
|
||||
// Order for finding the HTTPS port:
|
||||
|
|
@ -109,59 +123,47 @@ namespace Microsoft.AspNetCore.HttpsPolicy
|
|||
// 2. HTTPS_PORT environment variable
|
||||
// 3. IServerAddressesFeature
|
||||
// 4. Fail if not set
|
||||
|
||||
port = -1;
|
||||
|
||||
if (_portEvaluated)
|
||||
var nullablePort = _config.GetValue<int?>("HTTPS_PORT");
|
||||
if (nullablePort.HasValue)
|
||||
{
|
||||
port = _httpsPort ?? port;
|
||||
return _httpsPort.HasValue;
|
||||
}
|
||||
_portEvaluated = true;
|
||||
|
||||
_httpsPort = _config.GetValue<int?>("HTTPS_PORT");
|
||||
if (_httpsPort.HasValue)
|
||||
{
|
||||
port = _httpsPort.Value;
|
||||
var port = nullablePort.Value;
|
||||
_logger.PortLoadedFromConfig(port);
|
||||
return true;
|
||||
return port;
|
||||
}
|
||||
|
||||
if (_serverAddressesFeature == null)
|
||||
{
|
||||
_logger.FailedToDeterminePort();
|
||||
return false;
|
||||
return PortNotFound;
|
||||
}
|
||||
|
||||
int? httpsPort = null;
|
||||
foreach (var address in _serverAddressesFeature.Addresses)
|
||||
{
|
||||
var bindingAddress = BindingAddress.Parse(address);
|
||||
if (bindingAddress.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// If we find multiple different https ports specified, throw
|
||||
if (httpsPort.HasValue && httpsPort != bindingAddress.Port)
|
||||
if (nullablePort.HasValue && nullablePort != bindingAddress.Port)
|
||||
{
|
||||
_logger.FailedMultiplePorts();
|
||||
return false;
|
||||
return PortNotFound;
|
||||
}
|
||||
else
|
||||
{
|
||||
httpsPort = bindingAddress.Port;
|
||||
nullablePort = bindingAddress.Port;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (httpsPort.HasValue)
|
||||
if (nullablePort.HasValue)
|
||||
{
|
||||
_httpsPort = httpsPort;
|
||||
port = _httpsPort.Value;
|
||||
var port = nullablePort.Value;
|
||||
_logger.PortFromServer(port);
|
||||
return true;
|
||||
return port;
|
||||
}
|
||||
|
||||
_logger.FailedToDeterminePort();
|
||||
return false;
|
||||
return PortNotFound;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace LocalizationWebsite
|
|||
});
|
||||
|
||||
var noAttributeStringLocalizer = stringLocalizerFactory.Create(typeof(ResourcesClassLibraryNoAttribute.Model));
|
||||
var withAttributeStringLocalizer = stringLocalizerFactory.Create(typeof(ResourcesClassLibraryWithAttribute.Model));
|
||||
var withAttributeStringLocalizer = stringLocalizerFactory.Create(typeof(Alternate.Namespace.Model));
|
||||
|
||||
var noAttributeAssembly = typeof(ResourcesClassLibraryNoAttribute.Model).GetTypeInfo().Assembly;
|
||||
var noAttributeName = new AssemblyName(noAttributeAssembly.FullName).Name;
|
||||
|
|
@ -47,10 +47,10 @@ namespace LocalizationWebsite
|
|||
nameof(ResourcesClassLibraryNoAttribute.Model),
|
||||
noAttributeName);
|
||||
|
||||
var withAttributeAssembly = typeof(ResourcesClassLibraryWithAttribute.Model).GetTypeInfo().Assembly;
|
||||
var withAttributeAssembly = typeof(Alternate.Namespace.Model).GetTypeInfo().Assembly;
|
||||
var withAttributeName = new AssemblyName(withAttributeAssembly.FullName).Name;
|
||||
var withAttributeNameStringLocalizer = stringLocalizerFactory.Create(
|
||||
nameof(ResourcesClassLibraryWithAttribute.Model),
|
||||
nameof(Alternate.Namespace.Model),
|
||||
withAttributeName);
|
||||
|
||||
app.Run(async (context) =>
|
||||
|
|
|
|||
|
|
@ -1,7 +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.
|
||||
|
||||
namespace ResourcesClassLibraryWithAttribute
|
||||
namespace Alternate.Namespace
|
||||
{
|
||||
public class Model
|
||||
{
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
using (var server = builder.Start(TestUrlHelper.GetTestUrl(ServerType.Kestrel)))
|
||||
{
|
||||
var environment = server.Services.GetRequiredService<IWebHostEnvironment>();
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var response = await client.GetAsync("hello");
|
||||
var responseText = await response.Content.ReadAsStringAsync();
|
||||
|
|
@ -98,7 +98,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
using (var server = builder.Start(TestUrlHelper.GetTestUrl(ServerType.Kestrel)))
|
||||
{
|
||||
var environment = server.Services.GetRequiredService<IWebHostEnvironment>();
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var response = await client.GetAsync("hello");
|
||||
var responseText = await response.Content.ReadAsStringAsync();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
// 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.Linq;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Hosting.Server.Features;
|
||||
|
||||
namespace Microsoft.AspNetCore.StaticFiles
|
||||
{
|
||||
public static class Helpers
|
||||
{
|
||||
public static string GetAddress(IWebHost server)
|
||||
{
|
||||
return server.ServerFeatures.Get<IServerAddressesFeature>().Addresses.First();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
|
||||
using (var server = builder.Start(TestUrlHelper.GetTestUrl(ServerType.Kestrel)))
|
||||
{
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var response = await client.GetAsync("TestDocument.txt");
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
|
||||
using (var server = builder.Start(TestUrlHelper.GetTestUrl(ServerType.Kestrel)))
|
||||
{
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var response = await client.GetAsync("TestDocument.txt");
|
||||
|
||||
|
|
@ -97,7 +97,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
|
||||
using (var server = builder.Start(TestUrlHelper.GetTestUrl(ServerType.Kestrel)))
|
||||
{
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var last = File.GetLastWriteTimeUtc(Path.Combine(AppContext.BaseDirectory, "TestDocument.txt"));
|
||||
var response = await client.GetAsync("TestDocument.txt");
|
||||
|
|
@ -143,7 +143,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
{
|
||||
var hostingEnvironment = server.Services.GetService<IWebHostEnvironment>();
|
||||
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var fileInfo = hostingEnvironment.WebRootFileProvider.GetFileInfo(Path.GetFileName(requestUrl));
|
||||
var response = await client.GetAsync(requestUrl);
|
||||
|
|
@ -181,7 +181,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
{
|
||||
var hostingEnvironment = server.Services.GetService<IWebHostEnvironment>();
|
||||
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(server.GetAddress()) })
|
||||
using (var client = new HttpClient { BaseAddress = new Uri(Helpers.GetAddress(server)) })
|
||||
{
|
||||
var fileInfo = hostingEnvironment.WebRootFileProvider.GetFileInfo(Path.GetFileName(requestUrl));
|
||||
var request = new HttpRequestMessage(HttpMethod.Head, requestUrl);
|
||||
|
|
@ -261,7 +261,7 @@ namespace Microsoft.AspNetCore.StaticFiles
|
|||
using (var server = builder.Start(TestUrlHelper.GetTestUrl(serverType)))
|
||||
{
|
||||
// We don't use HttpClient here because it's disconnect behavior varies across platforms.
|
||||
var socket = SendSocketRequestAsync(server.GetAddress(), "/TestDocument1MB.txt");
|
||||
var socket = SendSocketRequestAsync(Helpers.GetAddress(server), "/TestDocument1MB.txt");
|
||||
await requestReceived.Task.TimeoutAfter(interval);
|
||||
|
||||
socket.LingerState = new LingerOption(true, 0);
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
|
|||
|
||||
internal override string ReadAsync_AddsModelValidationErrorsToModelState_Expected => "$.Age";
|
||||
|
||||
internal override string JsonFormatter_EscapedKeys_Expected => "$[0]['It\\u0022s a key']";
|
||||
internal override string JsonFormatter_EscapedKeys_Expected => "$[0]['It\"s a key']";
|
||||
|
||||
internal override string JsonFormatter_EscapedKeys_Bracket_Expected => "$[0]['It[s a key']";
|
||||
|
||||
|
|
|
|||
|
|
@ -333,7 +333,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations
|
|||
var contextAttributes = context.Attributes;
|
||||
var contextAttributesCount = contextAttributes.Count;
|
||||
var attributes = new List<object>(contextAttributesCount);
|
||||
|
||||
|
||||
for (var i = 0; i < contextAttributesCount; i++)
|
||||
{
|
||||
var attribute = contextAttributes[i];
|
||||
|
|
@ -367,15 +367,15 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations
|
|||
else if (context.Key.MetadataKind == ModelMetadataKind.Property)
|
||||
{
|
||||
addInferredRequiredAttribute = IsNullableReferenceType(
|
||||
context.Key.ContainerType,
|
||||
member: null,
|
||||
context.Key.ContainerType,
|
||||
member: null,
|
||||
context.PropertyAttributes);
|
||||
}
|
||||
else if (context.Key.MetadataKind == ModelMetadataKind.Parameter)
|
||||
{
|
||||
addInferredRequiredAttribute = IsNullableReferenceType(
|
||||
context.Key.ParameterInfo?.Member.ReflectedType,
|
||||
context.Key.ParameterInfo.Member,
|
||||
context.Key.ParameterInfo?.Member.ReflectedType,
|
||||
context.Key.ParameterInfo.Member,
|
||||
context.ParameterAttributes);
|
||||
}
|
||||
else
|
||||
|
|
@ -494,6 +494,15 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations
|
|||
|
||||
internal static bool IsNullableBasedOnContext(Type containingType, MemberInfo member)
|
||||
{
|
||||
// For generic types, inspecting the nullability requirement additionally requires
|
||||
// inspecting the nullability constraint on generic type parameters. This is fairly non-triviial
|
||||
// so we'll just avoid calculating it. Users should still be able to apply an explicit [Required]
|
||||
// attribute on these members.
|
||||
if (containingType.IsGenericType)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// The [Nullable] and [NullableContext] attributes are not inherited.
|
||||
//
|
||||
// The [NullableContext] attribute can appear on a method or on the module.
|
||||
|
|
@ -516,7 +525,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations
|
|||
}
|
||||
|
||||
type = type.DeclaringType;
|
||||
}
|
||||
}
|
||||
while (type != null);
|
||||
|
||||
// If we don't find the attribute on the declaring type then repeat at the module level
|
||||
|
|
|
|||
|
|
@ -1339,6 +1339,38 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations
|
|||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsNullableReferenceType_ReturnsFalse_ForKeyValuePairWithoutNullableConstraints()
|
||||
{
|
||||
// Arrange
|
||||
var type = typeof(KeyValuePair<string, object>);
|
||||
var property = type.GetProperty(nameof(KeyValuePair<string, object>.Key));
|
||||
|
||||
// Act
|
||||
var result = DataAnnotationsMetadataProvider.IsNullableReferenceType(type, member: null, property.GetCustomAttributes(inherit: true));
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
|
||||
#nullable enable
|
||||
[Fact]
|
||||
public void IsNullableReferenceType_ReturnsTrue_ForKeyValuePairWithNullableConstraints()
|
||||
{
|
||||
// Arrange
|
||||
var type = typeof(KeyValuePair<string, object>);
|
||||
var property = type.GetProperty(nameof(KeyValuePair<string, object>.Key))!;
|
||||
|
||||
// Act
|
||||
var result = DataAnnotationsMetadataProvider.IsNullableReferenceType(type, member: null, property.GetCustomAttributes(inherit: true));
|
||||
|
||||
// Assert
|
||||
// While we'd like for result to be 'true', we don't have a very good way of actually calculating it correctly.
|
||||
// This test is primarily here to document the behavior.
|
||||
Assert.False(result);
|
||||
}
|
||||
#nullable restore
|
||||
|
||||
[Fact]
|
||||
public void IsNonNullable_FindsNullableProperty()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1126,6 +1126,105 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
|
|||
Assert.Equal(expectedMessage, exception.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CollectionModelBinder_CollectionOfSimpleTypes_DoesNotResultInValidationError()
|
||||
{
|
||||
// Regression test for https://github.com/aspnet/AspNetCore/issues/13512
|
||||
// Arrange
|
||||
var parameter = new ParameterDescriptor()
|
||||
{
|
||||
Name = "parameter",
|
||||
ParameterType = typeof(Collection<string>),
|
||||
};
|
||||
|
||||
var testContext = ModelBindingTestHelper.GetTestContext(
|
||||
request =>
|
||||
{
|
||||
request.QueryString = new QueryString("?[0]=hello&[1]=");
|
||||
});
|
||||
|
||||
var modelState = testContext.ModelState;
|
||||
var metadata = testContext.MetadataProvider.GetMetadataForType(parameter.ParameterType);
|
||||
var valueProvider = await CompositeValueProvider.CreateAsync(testContext);
|
||||
var parameterBinder = ModelBindingTestHelper.GetParameterBinder(testContext);
|
||||
|
||||
// Act
|
||||
var result = await parameterBinder.BindModelAsync(parameter, testContext);
|
||||
|
||||
// Assert
|
||||
Assert.True(modelState.IsValid);
|
||||
Assert.Equal(0, modelState.ErrorCount);
|
||||
|
||||
Assert.True(result.IsModelSet);
|
||||
var model = Assert.IsType<Collection<string>>(result.Model);
|
||||
Assert.Collection(
|
||||
model,
|
||||
item => Assert.Equal("hello", item),
|
||||
item => Assert.Null(item));
|
||||
|
||||
Assert.Collection(
|
||||
modelState,
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("[0]", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("[1]", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CollectionModelBinder_CollectionOfNonNullableTypes_AppliesImplicitRequired()
|
||||
{
|
||||
// Arrange
|
||||
var parameter = new ParameterDescriptor()
|
||||
{
|
||||
Name = "parameter",
|
||||
ParameterType = typeof(Collection<string>),
|
||||
};
|
||||
|
||||
var testContext = ModelBindingTestHelper.GetTestContext(
|
||||
request =>
|
||||
{
|
||||
request.QueryString = new QueryString("?[0]=hello&[1]=");
|
||||
});
|
||||
|
||||
var modelState = testContext.ModelState;
|
||||
var metadata = testContext.MetadataProvider.GetMetadataForType(parameter.ParameterType);
|
||||
var valueProvider = await CompositeValueProvider.CreateAsync(testContext);
|
||||
var parameterBinder = ModelBindingTestHelper.GetParameterBinder(testContext);
|
||||
|
||||
// Act
|
||||
var result = await parameterBinder.BindModelAsync(parameter, testContext);
|
||||
|
||||
// Assert
|
||||
Assert.True(modelState.IsValid);
|
||||
Assert.Equal(0, modelState.ErrorCount);
|
||||
|
||||
Assert.True(result.IsModelSet);
|
||||
var model = Assert.IsType<Collection<string>>(result.Model);
|
||||
Assert.Collection(
|
||||
model,
|
||||
item => Assert.Equal("hello", item),
|
||||
item => Assert.Null(item));
|
||||
|
||||
Assert.Collection(
|
||||
modelState,
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("[0]", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("[1]", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
});
|
||||
}
|
||||
|
||||
private class ClosedGenericCollection : Collection<string>
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ using System;
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc.Abstractions;
|
||||
|
|
@ -1162,6 +1163,211 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
|
|||
Assert.Equal(expectedMessage, exception.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DictionaryModelBinder_DictionaryOfSimpleType_NullValue_DoesNotResultInRequiredValidation()
|
||||
{
|
||||
// Regression test for https://github.com/aspnet/AspNetCore/issues/13512
|
||||
// Arrange
|
||||
var parameterBinder = ModelBindingTestHelper.GetParameterBinder();
|
||||
var parameter = new ParameterDescriptor()
|
||||
{
|
||||
Name = "parameter",
|
||||
ParameterType = typeof(Dictionary<string, string>)
|
||||
};
|
||||
|
||||
var testContext = ModelBindingTestHelper.GetTestContext(request =>
|
||||
{
|
||||
request.QueryString = new QueryString("?parameter[key0]=");
|
||||
});
|
||||
|
||||
var modelState = testContext.ModelState;
|
||||
|
||||
// Act
|
||||
var modelBindingResult = await parameterBinder.BindModelAsync(parameter, testContext);
|
||||
|
||||
// Assert
|
||||
Assert.True(modelBindingResult.IsModelSet);
|
||||
|
||||
var model = Assert.IsType<Dictionary<string, string>>(modelBindingResult.Model);
|
||||
Assert.Collection(
|
||||
model.OrderBy(kvp => kvp.Key),
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("key0", kvp.Key);
|
||||
Assert.Null(kvp.Value);
|
||||
});
|
||||
|
||||
Assert.Collection(
|
||||
modelState.OrderBy(kvp => kvp.Key),
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key0]", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
});
|
||||
Assert.Equal(0, modelState.ErrorCount);
|
||||
Assert.True(modelState.IsValid);
|
||||
}
|
||||
|
||||
#nullable enable
|
||||
public class NonNullPerson
|
||||
{
|
||||
public int Age { get; set; }
|
||||
|
||||
// This should be implicitly required
|
||||
public string Name { get; set; } = default!;
|
||||
}
|
||||
#nullable restore
|
||||
|
||||
[Fact]
|
||||
public async Task DictionaryModelBinder_ValuesIsNonNullableType_AppliesImplicitRequired()
|
||||
{
|
||||
// Arrange
|
||||
var parameterBinder = ModelBindingTestHelper.GetParameterBinder();
|
||||
var parameter = new ParameterDescriptor()
|
||||
{
|
||||
Name = "parameter",
|
||||
ParameterType = typeof(Dictionary<string, NonNullPerson>)
|
||||
};
|
||||
|
||||
var testContext = ModelBindingTestHelper.GetTestContext(request =>
|
||||
{
|
||||
request.QueryString = new QueryString("?parameter[key0].Age=¶meter[key0].Name=name0¶meter[key1].Age=27¶meter[key1].Name=");
|
||||
});
|
||||
|
||||
var modelState = testContext.ModelState;
|
||||
|
||||
// Act
|
||||
var modelBindingResult = await parameterBinder.BindModelAsync(parameter, testContext);
|
||||
|
||||
// Assert
|
||||
Assert.True(modelBindingResult.IsModelSet);
|
||||
|
||||
var model = Assert.IsType<Dictionary<string, NonNullPerson>>(modelBindingResult.Model);
|
||||
Assert.Collection(
|
||||
model.OrderBy(kvp => kvp.Key),
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("key0", kvp.Key);
|
||||
var person = kvp.Value;
|
||||
Assert.Equal(0, person.Age);
|
||||
Assert.Equal("name0", person.Name);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("key1", kvp.Key);
|
||||
var person = kvp.Value;
|
||||
Assert.Equal(27, person.Age);
|
||||
Assert.Null(person.Name);
|
||||
});
|
||||
|
||||
Assert.Collection(
|
||||
modelState.OrderBy(kvp => kvp.Key),
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key0].Age", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Invalid, kvp.Value.ValidationState);
|
||||
Assert.Equal("The value '' is invalid.", Assert.Single(kvp.Value.Errors).ErrorMessage);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key0].Name", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key1].Age", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key1].Name", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Invalid, kvp.Value.ValidationState);
|
||||
Assert.Equal("The Name field is required.", Assert.Single(kvp.Value.Errors).ErrorMessage);
|
||||
});
|
||||
Assert.Equal(2, modelState.ErrorCount);
|
||||
Assert.False(modelState.IsValid);
|
||||
}
|
||||
|
||||
#nullable enable
|
||||
public class NonNullPersonWithRequiredProperties
|
||||
{
|
||||
public int Age { get; set; }
|
||||
|
||||
[Required]
|
||||
public string? Name { get; set; }
|
||||
}
|
||||
#nullable restore
|
||||
|
||||
[Fact]
|
||||
public async Task DictionaryModelBinder_ValuesNullableTypeWithRequiredAttributes_AppliesValidation()
|
||||
{
|
||||
// Arrange
|
||||
var parameterBinder = ModelBindingTestHelper.GetParameterBinder();
|
||||
var parameter = new ParameterDescriptor()
|
||||
{
|
||||
Name = "parameter",
|
||||
ParameterType = typeof(Dictionary<string, NonNullPersonWithRequiredProperties>)
|
||||
};
|
||||
|
||||
var testContext = ModelBindingTestHelper.GetTestContext(request =>
|
||||
{
|
||||
request.QueryString = new QueryString("?parameter[key0].Age=¶meter[key0].Name=name0¶meter[key1].Age=27¶meter[key1].Name=");
|
||||
});
|
||||
|
||||
var modelState = testContext.ModelState;
|
||||
|
||||
// Act
|
||||
var modelBindingResult = await parameterBinder.BindModelAsync(parameter, testContext);
|
||||
|
||||
// Assert
|
||||
Assert.True(modelBindingResult.IsModelSet);
|
||||
|
||||
var model = Assert.IsType<Dictionary<string, NonNullPersonWithRequiredProperties>>(modelBindingResult.Model);
|
||||
Assert.Collection(
|
||||
model.OrderBy(kvp => kvp.Key),
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("key0", kvp.Key);
|
||||
var person = kvp.Value;
|
||||
Assert.Equal(0, person.Age);
|
||||
Assert.Equal("name0", person.Name);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("key1", kvp.Key);
|
||||
var person = kvp.Value;
|
||||
Assert.Equal(27, person.Age);
|
||||
Assert.Null(person.Name);
|
||||
});
|
||||
|
||||
Assert.Collection(
|
||||
modelState.OrderBy(kvp => kvp.Key),
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key0].Age", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Invalid, kvp.Value.ValidationState);
|
||||
Assert.Equal("The value '' is invalid.", Assert.Single(kvp.Value.Errors).ErrorMessage);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key0].Name", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key1].Age", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Valid, kvp.Value.ValidationState);
|
||||
},
|
||||
kvp =>
|
||||
{
|
||||
Assert.Equal("parameter[key1].Name", kvp.Key);
|
||||
Assert.Equal(ModelValidationState.Invalid, kvp.Value.ValidationState);
|
||||
Assert.Equal("The Name field is required.", Assert.Single(kvp.Value.Errors).ErrorMessage);
|
||||
});
|
||||
Assert.Equal(2, modelState.ErrorCount);
|
||||
Assert.False(modelState.IsValid);
|
||||
}
|
||||
|
||||
private class ClosedGenericDictionary : Dictionary<string, string>
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
|
||||
<RelativePath>%(DistFiles.Identity)</RelativePath>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
</ResolvedFileToPublish>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@
|
|||
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
|
||||
<RelativePath>%(DistFiles.Identity)</RelativePath>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
</ResolvedFileToPublish>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
|
||||
<RelativePath>%(DistFiles.Identity)</RelativePath>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
</ResolvedFileToPublish>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.E2ETesting;
|
||||
|
|
@ -96,6 +95,11 @@ namespace Templates.Test.SpaTemplateTest
|
|||
}
|
||||
}
|
||||
|
||||
if (template == "react" || template == "reactredux")
|
||||
{
|
||||
await CleanupReactClientAppBuildFolder(clientAppSubdirPath);
|
||||
}
|
||||
|
||||
using (var aspNetProcess = Project.StartBuiltProjectAsync())
|
||||
{
|
||||
Assert.False(
|
||||
|
|
@ -144,6 +148,35 @@ namespace Templates.Test.SpaTemplateTest
|
|||
}
|
||||
}
|
||||
|
||||
private async Task CleanupReactClientAppBuildFolder(string clientAppSubdirPath)
|
||||
{
|
||||
ProcessEx testResult = null;
|
||||
int? testResultExitCode = null;
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
testResult = await ProcessEx.RunViaShellAsync(Output, clientAppSubdirPath, "npx rimraf ./build");
|
||||
testResultExitCode = testResult.ExitCode;
|
||||
if (testResultExitCode == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
finally
|
||||
{
|
||||
testResult.Dispose();
|
||||
}
|
||||
|
||||
await Task.Delay(3000);
|
||||
}
|
||||
|
||||
Assert.True(testResultExitCode == 0, ErrorMessages.GetFailedProcessMessage("npx rimraf ./build", Project, testResult));
|
||||
}
|
||||
|
||||
private void ValidatePackageJson(string clientAppSubdirPath)
|
||||
{
|
||||
Assert.True(File.Exists(Path.Combine(clientAppSubdirPath, "package.json")), "Missing a package.json");
|
||||
|
|
|
|||
|
|
@ -24,39 +24,54 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
|
|||
new TaskCompletionSource<FlushResult>(TaskCreationOptions.RunContinuationsAsynchronously),
|
||||
};
|
||||
|
||||
var sync = new object();
|
||||
var mockPipeWriter = new MockPipeWriter(pipeWriterFlushTcsArray);
|
||||
var concurrentPipeWriter = new ConcurrentPipeWriter(mockPipeWriter, diagnosticPool, sync);
|
||||
|
||||
// No need to pass in a real sync object since all the calls in this test are passthrough.
|
||||
var concurrentPipeWriter = new ConcurrentPipeWriter(mockPipeWriter, diagnosticPool, new object());
|
||||
ValueTask<FlushResult> flushTask;
|
||||
|
||||
var memory = concurrentPipeWriter.GetMemory();
|
||||
Assert.Equal(1, mockPipeWriter.GetMemoryCallCount);
|
||||
lock (sync)
|
||||
{
|
||||
var memory = concurrentPipeWriter.GetMemory();
|
||||
Assert.Equal(1, mockPipeWriter.GetMemoryCallCount);
|
||||
|
||||
concurrentPipeWriter.Advance(memory.Length);
|
||||
Assert.Equal(1, mockPipeWriter.AdvanceCallCount);
|
||||
concurrentPipeWriter.Advance(memory.Length);
|
||||
Assert.Equal(1, mockPipeWriter.AdvanceCallCount);
|
||||
|
||||
var flushTask0 = concurrentPipeWriter.FlushAsync();
|
||||
Assert.Equal(1, mockPipeWriter.FlushCallCount);
|
||||
flushTask = concurrentPipeWriter.FlushAsync();
|
||||
Assert.Equal(1, mockPipeWriter.FlushCallCount);
|
||||
|
||||
pipeWriterFlushTcsArray[0].SetResult(default);
|
||||
pipeWriterFlushTcsArray[0].SetResult(default);
|
||||
}
|
||||
|
||||
await flushTask0.DefaultTimeout();
|
||||
await flushTask.DefaultTimeout();
|
||||
|
||||
memory = concurrentPipeWriter.GetMemory();
|
||||
Assert.Equal(2, mockPipeWriter.GetMemoryCallCount);
|
||||
lock (sync)
|
||||
{
|
||||
var memory = concurrentPipeWriter.GetMemory();
|
||||
Assert.Equal(2, mockPipeWriter.GetMemoryCallCount);
|
||||
|
||||
concurrentPipeWriter.Advance(memory.Length);
|
||||
Assert.Equal(2, mockPipeWriter.AdvanceCallCount);
|
||||
concurrentPipeWriter.Advance(memory.Length);
|
||||
Assert.Equal(2, mockPipeWriter.AdvanceCallCount);
|
||||
|
||||
var flushTask1 = concurrentPipeWriter.FlushAsync();
|
||||
Assert.Equal(2, mockPipeWriter.FlushCallCount);
|
||||
flushTask = concurrentPipeWriter.FlushAsync();
|
||||
Assert.Equal(2, mockPipeWriter.FlushCallCount);
|
||||
|
||||
pipeWriterFlushTcsArray[1].SetResult(default);
|
||||
pipeWriterFlushTcsArray[1].SetResult(default);
|
||||
}
|
||||
|
||||
await flushTask1.DefaultTimeout();
|
||||
await flushTask.DefaultTimeout();
|
||||
|
||||
var completeEx = new Exception();
|
||||
await concurrentPipeWriter.CompleteAsync(completeEx).DefaultTimeout();
|
||||
ValueTask completeTask;
|
||||
|
||||
lock (sync)
|
||||
{
|
||||
completeTask = concurrentPipeWriter.CompleteAsync(completeEx);
|
||||
}
|
||||
|
||||
await completeTask.DefaultTimeout();
|
||||
|
||||
Assert.Same(completeEx, mockPipeWriter.CompleteException);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ public class HubConnection {
|
|||
private Map<String, Observable> streamMap = new ConcurrentHashMap<>();
|
||||
private TransportEnum transportEnum = TransportEnum.ALL;
|
||||
private String connectionId;
|
||||
private String connectionToken;
|
||||
private final int negotiateVersion = 1;
|
||||
private final Logger logger = LoggerFactory.getLogger(HubConnection.class);
|
||||
|
||||
/**
|
||||
|
|
@ -340,11 +342,12 @@ public class HubConnection {
|
|||
});
|
||||
|
||||
stopError = null;
|
||||
String urlWithQS = Utils.appendQueryString(baseUrl, "negotiateVersion=" + negotiateVersion);
|
||||
Single<NegotiateResponse> negotiate = null;
|
||||
if (!skipNegotiate) {
|
||||
negotiate = tokenCompletable.andThen(Single.defer(() -> startNegotiate(baseUrl, 0)));
|
||||
negotiate = tokenCompletable.andThen(Single.defer(() -> startNegotiate(urlWithQS, 0)));
|
||||
} else {
|
||||
negotiate = tokenCompletable.andThen(Single.defer(() -> Single.just(new NegotiateResponse(baseUrl))));
|
||||
negotiate = tokenCompletable.andThen(Single.defer(() -> Single.just(new NegotiateResponse(urlWithQS))));
|
||||
}
|
||||
|
||||
CompletableSubject start = CompletableSubject.create();
|
||||
|
|
@ -377,7 +380,6 @@ public class HubConnection {
|
|||
hubConnectionStateLock.lock();
|
||||
try {
|
||||
hubConnectionState = HubConnectionState.CONNECTED;
|
||||
this.connectionId = negotiateResponse.getConnectionId();
|
||||
logger.info("HubConnection started.");
|
||||
resetServerTimeout();
|
||||
//Don't send pings if we're using long polling.
|
||||
|
|
@ -447,19 +449,21 @@ public class HubConnection {
|
|||
throw new RuntimeException("There were no compatible transports on the server.");
|
||||
}
|
||||
|
||||
String finalUrl = url;
|
||||
if (response.getConnectionId() != null) {
|
||||
if (url.contains("?")) {
|
||||
finalUrl = url + "&id=" + response.getConnectionId();
|
||||
} else {
|
||||
finalUrl = url + "?id=" + response.getConnectionId();
|
||||
}
|
||||
if (response.getVersion() > 0) {
|
||||
this.connectionId = response.getConnectionId();
|
||||
this.connectionToken = response.getConnectionToken();
|
||||
} else {
|
||||
this.connectionToken = this.connectionId = response.getConnectionId();
|
||||
}
|
||||
|
||||
String finalUrl = Utils.appendQueryString(url, "id=" + this.connectionToken);
|
||||
|
||||
response.setFinalUrl(finalUrl);
|
||||
return Single.just(response);
|
||||
}
|
||||
|
||||
return startNegotiate(response.getRedirectUrl(), negotiateAttempts + 1);
|
||||
String redirectUrl = Utils.appendQueryString(response.getRedirectUrl(), "negotiateVersion=" + negotiateVersion);
|
||||
return startNegotiate(redirectUrl, negotiateAttempts + 1);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -521,6 +525,7 @@ public class HubConnection {
|
|||
handshakeResponseSubject.onComplete();
|
||||
redirectAccessTokenProvider = null;
|
||||
connectionId = null;
|
||||
connectionToken = null;
|
||||
transportEnum = TransportEnum.ALL;
|
||||
this.localHeaders.clear();
|
||||
this.streamMap.clear();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class Negotiate {
|
|||
// Check if we have a query string. If we do then we ignore it for now.
|
||||
int queryStringIndex = url.indexOf('?');
|
||||
if (queryStringIndex > 0) {
|
||||
negotiateUrl = url.substring(0, url.indexOf('?'));
|
||||
negotiateUrl = url.substring(0, queryStringIndex);
|
||||
} else {
|
||||
negotiateUrl = url;
|
||||
}
|
||||
|
|
@ -24,7 +24,7 @@ class Negotiate {
|
|||
|
||||
// Add the query string back if it existed.
|
||||
if (queryStringIndex > 0) {
|
||||
negotiateUrl += url.substring(url.indexOf('?'));
|
||||
negotiateUrl += url.substring(queryStringIndex);
|
||||
}
|
||||
|
||||
return negotiateUrl;
|
||||
|
|
|
|||
|
|
@ -11,11 +11,13 @@ import com.google.gson.stream.JsonReader;
|
|||
|
||||
class NegotiateResponse {
|
||||
private String connectionId;
|
||||
private String connectionToken;
|
||||
private Set<String> availableTransports = new HashSet<>();
|
||||
private String redirectUrl;
|
||||
private String accessToken;
|
||||
private String error;
|
||||
private String finalUrl;
|
||||
private int version;
|
||||
|
||||
public NegotiateResponse(JsonReader reader) {
|
||||
try {
|
||||
|
|
@ -30,6 +32,12 @@ class NegotiateResponse {
|
|||
case "ProtocolVersion":
|
||||
this.error = "Detected an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.";
|
||||
return;
|
||||
case "negotiateVersion":
|
||||
this.version = reader.nextInt();
|
||||
break;
|
||||
case "connectionToken":
|
||||
this.connectionToken = reader.nextString();
|
||||
break;
|
||||
case "url":
|
||||
this.redirectUrl = reader.nextString();
|
||||
break;
|
||||
|
|
@ -106,6 +114,14 @@ class NegotiateResponse {
|
|||
return finalUrl;
|
||||
}
|
||||
|
||||
public int getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public String getConnectionToken() {
|
||||
return connectionToken;
|
||||
}
|
||||
|
||||
public void setFinalUrl(String url) {
|
||||
this.finalUrl = url;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
// 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.
|
||||
|
||||
package com.microsoft.signalr;
|
||||
|
||||
class Utils {
|
||||
public static String appendQueryString(String original, String queryStringValue) {
|
||||
if (original.contains("?")) {
|
||||
return original + "&" + queryStringValue;
|
||||
} else {
|
||||
return original + "?" + queryStringValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
// 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.
|
||||
|
||||
|
|
|
|||
|
|
@ -1714,12 +1714,12 @@ class HubConnectionTest {
|
|||
|
||||
List<HttpRequest> sentRequests = client.getSentRequests();
|
||||
assertEquals(1, sentRequests.size());
|
||||
assertEquals("http://example.com/negotiate", sentRequests.get(0).getUrl());
|
||||
assertEquals("http://example.com/negotiate?negotiateVersion=1", sentRequests.get(0).getUrl());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void negotiateThatRedirectsForeverFailsAfter100Tries() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "", "{\"url\":\"http://example.com\"}")));
|
||||
|
||||
HubConnection hubConnection = HubConnectionBuilder
|
||||
|
|
@ -1752,7 +1752,7 @@ class HubConnectionTest {
|
|||
|
||||
@Test
|
||||
public void connectionIdIsAvailableAfterStart() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "",
|
||||
"{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
|
@ -1775,9 +1775,62 @@ class HubConnectionTest {
|
|||
assertNull(hubConnection.getConnectionId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void connectionTokenAppearsInQSConnectionIdIsOnConnectionInstance() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "",
|
||||
"{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\"," +
|
||||
"\"negotiateVersion\": 1," +
|
||||
"\"connectionToken\":\"connection-token-value\"," +
|
||||
"\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
||||
MockTransport transport = new MockTransport(true);
|
||||
HubConnection hubConnection = HubConnectionBuilder
|
||||
.create("http://example.com")
|
||||
.withTransportImplementation(transport)
|
||||
.withHttpClient(client)
|
||||
.build();
|
||||
|
||||
assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState());
|
||||
assertNull(hubConnection.getConnectionId());
|
||||
hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait();
|
||||
assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState());
|
||||
assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", hubConnection.getConnectionId());
|
||||
assertEquals("http://example.com?negotiateVersion=1&id=connection-token-value", transport.getUrl());
|
||||
hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait();
|
||||
assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState());
|
||||
assertNull(hubConnection.getConnectionId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void connectionTokenIsIgnoredIfNegotiateVersionIsNotPresentInNegotiateResponse() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "",
|
||||
"{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\"," +
|
||||
"\"connectionToken\":\"connection-token-value\"," +
|
||||
"\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
||||
MockTransport transport = new MockTransport(true);
|
||||
HubConnection hubConnection = HubConnectionBuilder
|
||||
.create("http://example.com")
|
||||
.withTransportImplementation(transport)
|
||||
.withHttpClient(client)
|
||||
.build();
|
||||
|
||||
assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState());
|
||||
assertNull(hubConnection.getConnectionId());
|
||||
hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait();
|
||||
assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState());
|
||||
assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", hubConnection.getConnectionId());
|
||||
assertEquals("http://example.com?negotiateVersion=1&id=bVOiRPG8-6YiJ6d7ZcTOVQ", transport.getUrl());
|
||||
hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait();
|
||||
assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState());
|
||||
assertNull(hubConnection.getConnectionId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void afterSuccessfulNegotiateConnectsWithWebsocketsTransport() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "",
|
||||
"{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
|
@ -1798,7 +1851,7 @@ class HubConnectionTest {
|
|||
|
||||
@Test
|
||||
public void afterSuccessfulNegotiateConnectsWithLongPollingTransport() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "",
|
||||
"{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"LongPolling\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
|
@ -1891,7 +1944,7 @@ class HubConnectionTest {
|
|||
|
||||
@Test
|
||||
public void receivingServerSentEventsTransportFromNegotiateFails() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "",
|
||||
"{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"ServerSentEvents\",\"transferFormats\":[\"Text\"]}]}")));
|
||||
|
|
@ -1911,7 +1964,7 @@ class HubConnectionTest {
|
|||
|
||||
@Test
|
||||
public void negotiateThatReturnsErrorThrowsFromStart() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "", "{\"error\":\"Test error.\"}")));
|
||||
|
||||
MockTransport transport = new MockTransport(true);
|
||||
|
|
@ -1928,7 +1981,7 @@ class HubConnectionTest {
|
|||
|
||||
@Test
|
||||
public void DetectWhenTryingToConnectToClassicSignalRServer() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "", "{\"Url\":\"/signalr\"," +
|
||||
"\"ConnectionToken\":\"X97dw3uxW4NPPggQsYVcNcyQcuz4w2\"," +
|
||||
"\"ConnectionId\":\"05265228-1e2c-46c5-82a1-6a5bcc3f0143\"," +
|
||||
|
|
@ -1954,9 +2007,9 @@ class HubConnectionTest {
|
|||
|
||||
@Test
|
||||
public void negotiateRedirectIsFollowed() {
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate",
|
||||
TestHttpClient client = new TestHttpClient().on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\"}")))
|
||||
.on("POST", "http://testexample.com/negotiate",
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
||||
|
|
@ -1978,11 +2031,11 @@ class HubConnectionTest {
|
|||
AtomicReference<String> beforeRedirectToken = new AtomicReference<>();
|
||||
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate", (req) -> {
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
beforeRedirectToken.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\",\"accessToken\":\"newToken\"}"));
|
||||
})
|
||||
.on("POST", "http://testexample.com/negotiate", (req) -> {
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
token.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}"));
|
||||
|
|
@ -2018,7 +2071,7 @@ class HubConnectionTest {
|
|||
public void accessTokenProviderIsUsedForNegotiate() {
|
||||
AtomicReference<String> token = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
token.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2043,11 +2096,13 @@ class HubConnectionTest {
|
|||
public void accessTokenProviderIsOverriddenFromRedirectNegotiate() {
|
||||
AtomicReference<String> token = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate", (req) -> Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\",\"accessToken\":\"newToken\"}")))
|
||||
.on("POST", "http://testexample.com/negotiate", (req) -> {
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\",\"accessToken\":\"newToken\"}")))
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
token.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\","
|
||||
+ "\"connectionToken\":\"connection-token-value\","
|
||||
+ "\"negotiateVersion\":1,"
|
||||
+ "\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}"));
|
||||
});
|
||||
|
||||
MockTransport transport = new MockTransport(true);
|
||||
|
|
@ -2060,7 +2115,7 @@ class HubConnectionTest {
|
|||
|
||||
hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait();
|
||||
assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState());
|
||||
assertEquals("http://testexample.com/?id=bVOiRPG8-6YiJ6d7ZcTOVQ", transport.getUrl());
|
||||
assertEquals("http://testexample.com/?negotiateVersion=1&id=connection-token-value", transport.getUrl());
|
||||
hubConnection.stop();
|
||||
assertEquals("Bearer newToken", token.get());
|
||||
}
|
||||
|
|
@ -2071,14 +2126,14 @@ class HubConnectionTest {
|
|||
AtomicReference<String> beforeRedirectToken = new AtomicReference<>();
|
||||
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate", (req) -> {
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
beforeRedirectToken.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\",\"accessToken\":\"newToken\"}"));
|
||||
})
|
||||
.on("POST", "http://testexample.com/negotiate", (req) -> {
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
token.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\","
|
||||
+ "\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}"));
|
||||
});
|
||||
|
||||
MockTransport transport = new MockTransport(true);
|
||||
|
|
@ -2112,7 +2167,7 @@ class HubConnectionTest {
|
|||
AtomicInteger redirectCount = new AtomicInteger();
|
||||
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate", (req) -> {
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
if (redirectCount.get() == 0) {
|
||||
redirectCount.incrementAndGet();
|
||||
redirectToken.set(req.getHeaders().get("Authorization"));
|
||||
|
|
@ -2122,7 +2177,7 @@ class HubConnectionTest {
|
|||
return Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\",\"accessToken\":\"secondRedirectToken\"}"));
|
||||
}
|
||||
})
|
||||
.on("POST", "http://testexample.com/negotiate", (req) -> {
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> {
|
||||
token.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}"));
|
||||
|
|
@ -2189,7 +2244,7 @@ class HubConnectionTest {
|
|||
public void userAgentHeaderIsSet() {
|
||||
AtomicReference<String> header = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
header.set(req.getHeaders().get("User-Agent"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2213,7 +2268,7 @@ class HubConnectionTest {
|
|||
public void userAgentHeaderCanBeOverwritten() {
|
||||
AtomicReference<String> header = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
header.set(req.getHeaders().get("User-Agent"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2237,7 +2292,7 @@ class HubConnectionTest {
|
|||
public void userAgentCanBeCleared() {
|
||||
AtomicReference<String> header = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
header.set(req.getHeaders().get("User-Agent"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2260,7 +2315,7 @@ class HubConnectionTest {
|
|||
public void headersAreSetAndSentThroughBuilder() {
|
||||
AtomicReference<String> header = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
header.set(req.getHeaders().get("ExampleHeader"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2285,7 +2340,7 @@ class HubConnectionTest {
|
|||
public void headersAreNotClearedWhenConnectionIsRestarted() {
|
||||
AtomicReference<String> header = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
header.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2315,12 +2370,12 @@ class HubConnectionTest {
|
|||
AtomicReference<String> afterRedirectHeader = new AtomicReference<>();
|
||||
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
beforeRedirectHeader.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\",\"accessToken\":\"redirectToken\"}\"}"));
|
||||
})
|
||||
.on("POST", "http://testexample.com/negotiate",
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
afterRedirectHeader.set(req.getHeaders().get("Authorization"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2358,7 +2413,7 @@ class HubConnectionTest {
|
|||
public void sameHeaderSetTwiceGetsOverwritten() {
|
||||
AtomicReference<String> header = new AtomicReference<>();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> {
|
||||
header.set(req.getHeaders().get("ExampleHeader"));
|
||||
return Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
|
|
@ -2403,8 +2458,8 @@ class HubConnectionTest {
|
|||
public void hubConnectionCanBeStartedAfterBeingStoppedAndRedirected() {
|
||||
MockTransport mockTransport = new MockTransport();
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate", (req) -> Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\"}")))
|
||||
.on("POST", "http://testexample.com/negotiate", (req) -> Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", "{\"url\":\"http://testexample.com/\"}")))
|
||||
.on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\""
|
||||
+ "availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")));
|
||||
|
||||
HubConnection hubConnection = HubConnectionBuilder
|
||||
|
|
@ -2426,7 +2481,7 @@ class HubConnectionTest {
|
|||
@Test
|
||||
public void non200FromNegotiateThrowsError() {
|
||||
TestHttpClient client = new TestHttpClient()
|
||||
.on("POST", "http://example.com/negotiate",
|
||||
.on("POST", "http://example.com/negotiate?negotiateVersion=1",
|
||||
(req) -> Single.just(new HttpResponse(500, "Internal server error", "")));
|
||||
|
||||
MockTransport transport = new MockTransport();
|
||||
|
|
|
|||
|
|
@ -15,8 +15,9 @@ import com.google.gson.stream.JsonReader;
|
|||
class NegotiateResponseTest {
|
||||
@Test
|
||||
public void VerifyNegotiateResponse() {
|
||||
String stringNegotiateResponse = "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\"" +
|
||||
"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}," +
|
||||
String stringNegotiateResponse = "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\"," +
|
||||
"\"negotiateVersion\": 99, \"connectionToken\":\"connection-token-value\"," +
|
||||
"\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}," +
|
||||
"{\"transport\":\"ServerSentEvents\",\"transferFormats\":[\"Text\"]}," +
|
||||
"{\"transport\":\"LongPolling\",\"transferFormats\":[\"Text\",\"Binary\"]}]}";
|
||||
NegotiateResponse negotiateResponse = new NegotiateResponse(new JsonReader(new StringReader(stringNegotiateResponse)));
|
||||
|
|
@ -26,6 +27,8 @@ class NegotiateResponseTest {
|
|||
assertNull(negotiateResponse.getAccessToken());
|
||||
assertNull(negotiateResponse.getRedirectUrl());
|
||||
assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", negotiateResponse.getConnectionId());
|
||||
assertEquals("connection-token-value", negotiateResponse.getConnectionToken());
|
||||
assertEquals(99, negotiateResponse.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -56,4 +59,23 @@ class NegotiateResponseTest {
|
|||
NegotiateResponse negotiateResponse = new NegotiateResponse(new JsonReader(new StringReader(stringNegotiateResponse)));
|
||||
assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", negotiateResponse.getConnectionId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void NegotiateResponseWithNegotiateVersion() {
|
||||
String stringNegotiateResponse = "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\"," +
|
||||
"\"negotiateVersion\": 99}";
|
||||
NegotiateResponse negotiateResponse = new NegotiateResponse(new JsonReader(new StringReader(stringNegotiateResponse)));
|
||||
assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", negotiateResponse.getConnectionId());
|
||||
assertEquals(99, negotiateResponse.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void NegotiateResponseWithConnectionToken() {
|
||||
String stringNegotiateResponse = "{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\"," +
|
||||
"\"negotiateVersion\": 99, \"connectionToken\":\"connection-token-value\"}";
|
||||
NegotiateResponse negotiateResponse = new NegotiateResponse(new JsonReader(new StringReader(stringNegotiateResponse)));
|
||||
assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", negotiateResponse.getConnectionId());
|
||||
assertEquals("connection-token-value", negotiateResponse.getConnectionToken());
|
||||
assertEquals(99, negotiateResponse.getVersion());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,17 +30,17 @@ public class UserAgentTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void verifyJavaVendor(){
|
||||
public void verifyJavaVendor() {
|
||||
assertEquals(System.getProperty("java.vendor"), UserAgentHelper.getJavaVendor());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void verifyJavaVersion(){
|
||||
public void verifyJavaVersion() {
|
||||
assertEquals(System.getProperty("java.version"), UserAgentHelper.getJavaVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkUserAgentString(){
|
||||
public void checkUserAgentString() {
|
||||
String userAgent = UserAgentHelper.createUserAgentString();
|
||||
assertNotNull(userAgent);
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,17 @@ namespace Microsoft.DotNet.OpenApi.Add.Tests
|
|||
Assert.Contains("<PackageReference Include=\"NSwag.ApiDescription.Client\" Version=\"", content);
|
||||
Assert.Contains($"<OpenApiReference Include=\"{nswagJsonFile}\" CodeGenerator=\"NSwagTypeScript\" />", content);
|
||||
}
|
||||
|
||||
// Build project and make sure it compiles
|
||||
using var buildProc = ProcessEx.Run(_outputHelper, _tempDir.Root, "dotnet", "build");
|
||||
await buildProc.Exited;
|
||||
Assert.True(buildProc.ExitCode == 0, $"Build failed: {buildProc.Output}");
|
||||
|
||||
|
||||
// Run project and make sure it doesn't crash
|
||||
using var runProc = ProcessEx.Run(_outputHelper, _tempDir.Root, "dotnet", "run");
|
||||
Thread.Sleep(100);
|
||||
Assert.False(runProc.HasExited, $"Run failed with: {runProc.Output}");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -178,6 +189,16 @@ namespace Microsoft.DotNet.OpenApi.Add.Tests
|
|||
Assert.Contains("<PackageReference Include=\"NSwag.ApiDescription.Client\" Version=\"", content);
|
||||
Assert.Contains($"<OpenApiReference Include=\"{nswagJsonFile}\"", content);
|
||||
}
|
||||
|
||||
// Build project and make sure it compiles
|
||||
var buildProc = ProcessEx.Run(_outputHelper, _tempDir.Root, "dotnet", "build");
|
||||
await buildProc.Exited;
|
||||
Assert.True(buildProc.ExitCode == 0, $"Build failed: {buildProc.Output}");
|
||||
|
||||
// Run project and make sure it doesn't crash
|
||||
using var runProc = ProcessEx.Run(_outputHelper, _tempDir.Root, "dotnet", "run");
|
||||
Thread.Sleep(100);
|
||||
Assert.False(runProc.HasExited, $"Run failed with: {runProc.Output}");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
<PackAsTool>true</PackAsTool>
|
||||
<!-- This package is for internal use only. It contains a CLI which is bundled in the .NET Core SDK. -->
|
||||
<IsShippingPackage>false</IsShippingPackage>
|
||||
<ExcludeFromSourceBuild>false</ExcludeFromSourceBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ namespace Microsoft.Extensions.SecretManager.Tools.Internal
|
|||
var existingUserSecretsId = projectDocument.XPathSelectElements("//UserSecretsId").FirstOrDefault();
|
||||
|
||||
// Check if a UserSecretsId is already set
|
||||
if (existingUserSecretsId != default)
|
||||
if (existingUserSecretsId != null)
|
||||
{
|
||||
// Only set the UserSecretsId if the user specified an explicit value
|
||||
if (string.IsNullOrWhiteSpace(OverrideId))
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<PackAsTool>true</PackAsTool>
|
||||
<!-- This package is for internal use only. It contains a CLI which is bundled in the .NET Core SDK. -->
|
||||
<IsShippingPackage>false</IsShippingPackage>
|
||||
<ExcludeFromSourceBuild>false</ExcludeFromSourceBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
<PackAsTool>true</PackAsTool>
|
||||
<!-- This package is for internal use only. It contains a CLI which is bundled in the .NET Core SDK. -->
|
||||
<IsShippingPackage>false</IsShippingPackage>
|
||||
<ExcludeFromSourceBuild>false</ExcludeFromSourceBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
Loading…
Reference in New Issue