Merge branch 'release/3.0' into merge/release/3.0-preview9-to-release/3.0
This commit is contained in:
commit
a6597967e4
|
|
@ -9,412 +9,412 @@
|
||||||
-->
|
-->
|
||||||
<Dependencies>
|
<Dependencies>
|
||||||
<ProductDependencies>
|
<ProductDependencies>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="3.0.0-preview9.19421.1">
|
<Dependency Name="Microsoft.AspNetCore.Blazor.Mono" Version="3.0.0-preview9.19421.2">
|
||||||
<Uri>https://github.com/aspnet/Blazor</Uri>
|
<Uri>https://github.com/aspnet/Blazor</Uri>
|
||||||
<Sha>7ec39bb7c45a07e2c316bd42b0ae80368ceaf7ba</Sha>
|
<Sha>e982a0d2deb1abd36aa3858f468c165f86c7ce44</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-preview9.19423.3">
|
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.0.0-rc1.19422.14">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>495b7f1f845df71ed5a7f9ea493d6d456f016491</Sha>
|
<Sha>44ce5dde3719182e824ed69adbc5403b9b689cfa</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-preview9.19423.3">
|
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.0.0-rc1.19422.14">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>495b7f1f845df71ed5a7f9ea493d6d456f016491</Sha>
|
<Sha>44ce5dde3719182e824ed69adbc5403b9b689cfa</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-preview9.19423.3">
|
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.0.0-rc1.19422.14">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>495b7f1f845df71ed5a7f9ea493d6d456f016491</Sha>
|
<Sha>44ce5dde3719182e824ed69adbc5403b9b689cfa</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-preview9.19423.3">
|
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.0.0-rc1.19422.14">
|
||||||
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
<Uri>https://github.com/aspnet/AspNetCore-Tooling</Uri>
|
||||||
<Sha>495b7f1f845df71ed5a7f9ea493d6d456f016491</Sha>
|
<Sha>44ce5dde3719182e824ed69adbc5403b9b689cfa</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="dotnet-ef" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="dotnet-ef" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-preview9.19423.6">
|
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.0.0-rc1.19422.8">
|
||||||
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
<Uri>https://github.com/aspnet/EntityFrameworkCore</Uri>
|
||||||
<Sha>f900e4758628f0c8f1e5e33765bcca530de9a1f8</Sha>
|
<Sha>729889f4da68014e90bd357d90c06e34564624e8</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Http" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Localization" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Logging" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Options" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.JSInterop" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Mono.WebAssembly.Interop" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.0.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.CSharp" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="Microsoft.CSharp" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="Microsoft.Win32.Registry" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Win32.SystemEvents" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="Microsoft.Win32.SystemEvents" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.ComponentModel.Annotations" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Data.SqlClient" Version="4.7.0-preview6.19264.9" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64" Pinned="true">
|
<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>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
<Sha>a28176b5ec68b6da1472934fe9493790d1665cae</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Diagnostics.EventLog" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Drawing.Common" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Drawing.Common" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.IO.Pipelines" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.IO.Pipelines" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Reflection.Metadata" Version="1.7.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Security.Cryptography.Cng" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Security.Cryptography.Xml" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Permissions" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Security.Permissions" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Security.Principal.Windows" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Text.Encodings.Web" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Text.Json" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Text.Json" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Threading.Channels" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Threading.Channels" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="System.Windows.Extensions" Version="4.6.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="System.Windows.Extensions" Version="4.6.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-preview9-19423-09" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.0.0-rc1-19421-22" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||||
<Sha>2be172345a420387413bab7ce9053a52624c4461</Sha>
|
<Sha>de78ba11198343228e7e4f8fbf2117add6c67944</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="3.0.0-preview9-19423-09" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="Microsoft.NETCore.App.Ref" Version="3.0.0-rc1-19421-22" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||||
<Sha>2be172345a420387413bab7ce9053a52624c4461</Sha>
|
<Sha>de78ba11198343228e7e4f8fbf2117add6c67944</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<!--
|
<!--
|
||||||
Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
|
Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
|
||||||
All Runtime.$rid packages should have the same version.
|
All Runtime.$rid packages should have the same version.
|
||||||
-->
|
-->
|
||||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.0.0-preview9-19423-09" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.0.0-rc1-19421-22" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||||
<Sha>2be172345a420387413bab7ce9053a52624c4461</Sha>
|
<Sha>de78ba11198343228e7e4f8fbf2117add6c67944</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-preview9-19423-09" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0-rc1-19421-22" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||||
<Sha>2be172345a420387413bab7ce9053a52624c4461</Sha>
|
<Sha>de78ba11198343228e7e4f8fbf2117add6c67944</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ProductDependencies>
|
</ProductDependencies>
|
||||||
<ToolsetDependencies>
|
<ToolsetDependencies>
|
||||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-preview9.19421.4" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.0.0-rc1.19420.10" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||||
<Sha>8f95b1e7953e3fbff7f101d0ca6830fd9e37fd99</Sha>
|
<Sha>d341fd37dcb2c22e382adccdc06770cf8f160577</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19416.16">
|
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19416.16">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
|
|
@ -428,11 +428,11 @@
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>0e36c2410b72166a1b9a67142e652225e22feada</Sha>
|
<Sha>0e36c2410b72166a1b9a67142e652225e22feada</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview9.19423.4" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-rc1.19422.7" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>1be91939b2b824107c39496800aa91f67225b013</Sha>
|
<Sha>a459d9eab2a21b657ac567841ceb5b1085ea59b6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.3.1-beta3-19421-04" CoherentParentDependency="Microsoft.Extensions.Logging">
|
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.3.1-beta3-19422-01" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||||
<Sha>807f6d9c1f62e66aa907513ccf0fa5b2372748f6</Sha>
|
<Sha>807f6d9c1f62e66aa907513ccf0fa5b2372748f6</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,12 @@
|
||||||
<AspNetCoreMajorVersion>3</AspNetCoreMajorVersion>
|
<AspNetCoreMajorVersion>3</AspNetCoreMajorVersion>
|
||||||
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
||||||
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
||||||
<PreReleasePreviewNumber>9</PreReleasePreviewNumber>
|
<PreReleasePreviewNumber>1</PreReleasePreviewNumber>
|
||||||
<PreReleaseVersionLabel>preview$(PreReleasePreviewNumber)</PreReleaseVersionLabel>
|
<PreReleaseVersionLabel>rc$(PreReleasePreviewNumber)</PreReleaseVersionLabel>
|
||||||
<PreReleaseBrandingLabel>Preview $(PreReleasePreviewNumber)</PreReleaseBrandingLabel>
|
<PreReleaseBrandingLabel>Release Candidate $(PreReleasePreviewNumber)</PreReleaseBrandingLabel>
|
||||||
|
<!-- Blazor Client packages will not RTM with 3.0 -->
|
||||||
|
<BlazorClientPreReleasePreviewNumber>9</BlazorClientPreReleasePreviewNumber>
|
||||||
|
<BlazorClientPreReleaseVersionLabel>preview$(BlazorClientPreReleasePreviewNumber)</BlazorClientPreReleaseVersionLabel>
|
||||||
<AspNetCoreMajorMinorVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</AspNetCoreMajorMinorVersion>
|
<AspNetCoreMajorMinorVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</AspNetCoreMajorMinorVersion>
|
||||||
<!-- Additional assembly attributes are already configured to include the source revision ID. -->
|
<!-- Additional assembly attributes are already configured to include the source revision ID. -->
|
||||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||||
|
|
@ -52,115 +55,115 @@
|
||||||
<!-- Packages from dotnet/arcade -->
|
<!-- Packages from dotnet/arcade -->
|
||||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19416.16</MicrosoftDotNetGenAPIPackageVersion>
|
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19416.16</MicrosoftDotNetGenAPIPackageVersion>
|
||||||
<!-- Packages from dotnet/roslyn -->
|
<!-- Packages from dotnet/roslyn -->
|
||||||
<MicrosoftNetCompilersToolsetPackageVersion>3.3.1-beta3-19421-04</MicrosoftNetCompilersToolsetPackageVersion>
|
<MicrosoftNetCompilersToolsetPackageVersion>3.3.1-beta3-19422-01</MicrosoftNetCompilersToolsetPackageVersion>
|
||||||
<!-- Packages from dotnet/core-setup -->
|
<!-- Packages from dotnet/core-setup -->
|
||||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview9-19423-09</MicrosoftExtensionsDependencyModelPackageVersion>
|
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-rc1-19421-22</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||||
<MicrosoftNETCoreAppRefPackageVersion>3.0.0-preview9-19423-09</MicrosoftNETCoreAppRefPackageVersion>
|
<MicrosoftNETCoreAppRefPackageVersion>3.0.0-rc1-19421-22</MicrosoftNETCoreAppRefPackageVersion>
|
||||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.0.0-preview9-19423-09</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.0.0-rc1-19421-22</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||||
<NETStandardLibraryRefPackageVersion>2.1.0-preview9-19423-09</NETStandardLibraryRefPackageVersion>
|
<NETStandardLibraryRefPackageVersion>2.1.0-rc1-19421-22</NETStandardLibraryRefPackageVersion>
|
||||||
<!-- Packages from dotnet/corefx -->
|
<!-- Packages from dotnet/corefx -->
|
||||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.0.0-preview9.19421.4</MicrosoftBclAsyncInterfacesPackageVersion>
|
<MicrosoftBclAsyncInterfacesPackageVersion>1.0.0-rc1.19420.10</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||||
<MicrosoftCSharpPackageVersion>4.6.0-preview9.19421.4</MicrosoftCSharpPackageVersion>
|
<MicrosoftCSharpPackageVersion>4.6.0-rc1.19420.10</MicrosoftCSharpPackageVersion>
|
||||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview9.19421.4</MicrosoftWin32RegistryPackageVersion>
|
<MicrosoftWin32RegistryPackageVersion>4.6.0-rc1.19420.10</MicrosoftWin32RegistryPackageVersion>
|
||||||
<MicrosoftWin32SystemEventsPackageVersion>4.6.0-preview9.19421.4</MicrosoftWin32SystemEventsPackageVersion>
|
<MicrosoftWin32SystemEventsPackageVersion>4.6.0-rc1.19420.10</MicrosoftWin32SystemEventsPackageVersion>
|
||||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview9.19421.4</SystemComponentModelAnnotationsPackageVersion>
|
<SystemComponentModelAnnotationsPackageVersion>4.6.0-rc1.19420.10</SystemComponentModelAnnotationsPackageVersion>
|
||||||
<SystemDataSqlClientPackageVersion>4.7.0-preview6.19264.9</SystemDataSqlClientPackageVersion>
|
<SystemDataSqlClientPackageVersion>4.7.0-preview6.19264.9</SystemDataSqlClientPackageVersion>
|
||||||
<SystemDiagnosticsEventLogPackageVersion>4.6.0-preview9.19421.4</SystemDiagnosticsEventLogPackageVersion>
|
<SystemDiagnosticsEventLogPackageVersion>4.6.0-rc1.19420.10</SystemDiagnosticsEventLogPackageVersion>
|
||||||
<SystemDrawingCommonPackageVersion>4.6.0-preview9.19421.4</SystemDrawingCommonPackageVersion>
|
<SystemDrawingCommonPackageVersion>4.6.0-rc1.19420.10</SystemDrawingCommonPackageVersion>
|
||||||
<SystemIOPipelinesPackageVersion>4.6.0-preview9.19421.4</SystemIOPipelinesPackageVersion>
|
<SystemIOPipelinesPackageVersion>4.6.0-rc1.19420.10</SystemIOPipelinesPackageVersion>
|
||||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-preview9.19421.4</SystemNetHttpWinHttpHandlerPackageVersion>
|
<SystemNetHttpWinHttpHandlerPackageVersion>4.6.0-rc1.19420.10</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-preview9.19421.4</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.6.0-rc1.19420.10</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||||
<SystemReflectionMetadataPackageVersion>1.7.0-preview9.19421.4</SystemReflectionMetadataPackageVersion>
|
<SystemReflectionMetadataPackageVersion>1.7.0-rc1.19420.10</SystemReflectionMetadataPackageVersion>
|
||||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview9.19421.4</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-rc1.19420.10</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||||
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview9.19421.4</SystemSecurityCryptographyCngPackageVersion>
|
<SystemSecurityCryptographyCngPackageVersion>4.6.0-rc1.19420.10</SystemSecurityCryptographyCngPackageVersion>
|
||||||
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview9.19421.4</SystemSecurityCryptographyPkcsPackageVersion>
|
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-rc1.19420.10</SystemSecurityCryptographyPkcsPackageVersion>
|
||||||
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview9.19421.4</SystemSecurityCryptographyXmlPackageVersion>
|
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-rc1.19420.10</SystemSecurityCryptographyXmlPackageVersion>
|
||||||
<SystemSecurityPermissionsPackageVersion>4.6.0-preview9.19421.4</SystemSecurityPermissionsPackageVersion>
|
<SystemSecurityPermissionsPackageVersion>4.6.0-rc1.19420.10</SystemSecurityPermissionsPackageVersion>
|
||||||
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview9.19421.4</SystemSecurityPrincipalWindowsPackageVersion>
|
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-rc1.19420.10</SystemSecurityPrincipalWindowsPackageVersion>
|
||||||
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview9.19421.4</SystemServiceProcessServiceControllerPackageVersion>
|
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-rc1.19420.10</SystemServiceProcessServiceControllerPackageVersion>
|
||||||
<SystemTextEncodingsWebPackageVersion>4.6.0-preview9.19421.4</SystemTextEncodingsWebPackageVersion>
|
<SystemTextEncodingsWebPackageVersion>4.6.0-rc1.19420.10</SystemTextEncodingsWebPackageVersion>
|
||||||
<SystemTextJsonPackageVersion>4.6.0-preview9.19421.4</SystemTextJsonPackageVersion>
|
<SystemTextJsonPackageVersion>4.6.0-rc1.19420.10</SystemTextJsonPackageVersion>
|
||||||
<SystemThreadingChannelsPackageVersion>4.6.0-preview9.19421.4</SystemThreadingChannelsPackageVersion>
|
<SystemThreadingChannelsPackageVersion>4.6.0-rc1.19420.10</SystemThreadingChannelsPackageVersion>
|
||||||
<SystemWindowsExtensionsPackageVersion>4.6.0-preview9.19421.4</SystemWindowsExtensionsPackageVersion>
|
<SystemWindowsExtensionsPackageVersion>4.6.0-rc1.19420.10</SystemWindowsExtensionsPackageVersion>
|
||||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||||
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-preview9.19421.4</MicrosoftNETCorePlatformsPackageVersion>
|
<MicrosoftNETCorePlatformsPackageVersion>3.0.0-rc1.19420.10</MicrosoftNETCorePlatformsPackageVersion>
|
||||||
<!-- Packages from aspnet/Blazor -->
|
<!-- Packages from aspnet/Blazor -->
|
||||||
<MicrosoftAspNetCoreBlazorMonoPackageVersion>3.0.0-preview9.19421.1</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
<MicrosoftAspNetCoreBlazorMonoPackageVersion>3.0.0-preview9.19421.2</MicrosoftAspNetCoreBlazorMonoPackageVersion>
|
||||||
<!-- Packages from aspnet/Extensions -->
|
<!-- Packages from aspnet/Extensions -->
|
||||||
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-preview9.19423.4</InternalAspNetCoreAnalyzersPackageVersion>
|
<InternalAspNetCoreAnalyzersPackageVersion>3.0.0-rc1.19422.7</InternalAspNetCoreAnalyzersPackageVersion>
|
||||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-preview9.19423.4</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.0.0-rc1.19422.7</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||||
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-preview9.19423.4</MicrosoftAspNetCoreTestingPackageVersion>
|
<MicrosoftAspNetCoreTestingPackageVersion>3.0.0-rc1.19422.7</MicrosoftAspNetCoreTestingPackageVersion>
|
||||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsCachingMemoryPackageVersion>
|
<MicrosoftExtensionsCachingMemoryPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationIniPackageVersion>
|
<MicrosoftExtensionsConfigurationIniPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationPackageVersion>
|
<MicrosoftExtensionsConfigurationPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsHostingPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsHostingPackageVersion>
|
<MicrosoftExtensionsHostingPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsHostingPackageVersion>
|
||||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsHttpPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsHttpPackageVersion>
|
<MicrosoftExtensionsHttpPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsHttpPackageVersion>
|
||||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLocalizationPackageVersion>
|
<MicrosoftExtensionsLocalizationPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLocalizationPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingConsolePackageVersion>
|
<MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingDebugPackageVersion>
|
<MicrosoftExtensionsLoggingDebugPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingPackageVersion>
|
<MicrosoftExtensionsLoggingPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingTestingPackageVersion>
|
<MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsObjectPoolPackageVersion>
|
<MicrosoftExtensionsObjectPoolPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||||
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsOptionsPackageVersion>
|
<MicrosoftExtensionsOptionsPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsOptionsPackageVersion>
|
||||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsPrimitivesPackageVersion>
|
<MicrosoftExtensionsPrimitivesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-preview9.19423.4</MicrosoftExtensionsWebEncodersPackageVersion>
|
<MicrosoftExtensionsWebEncodersPackageVersion>3.0.0-rc1.19422.7</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-preview9.19423.4</MicrosoftInternalExtensionsRefsPackageVersion>
|
<MicrosoftInternalExtensionsRefsPackageVersion>3.0.0-rc1.19422.7</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||||
<MicrosoftJSInteropPackageVersion>3.0.0-preview9.19423.4</MicrosoftJSInteropPackageVersion>
|
<MicrosoftJSInteropPackageVersion>3.0.0-rc1.19422.7</MicrosoftJSInteropPackageVersion>
|
||||||
<MonoWebAssemblyInteropPackageVersion>3.0.0-preview9.19423.4</MonoWebAssemblyInteropPackageVersion>
|
<MonoWebAssemblyInteropPackageVersion>3.0.0-rc1.19422.7</MonoWebAssemblyInteropPackageVersion>
|
||||||
<!-- Packages from aspnet/EntityFrameworkCore -->
|
<!-- Packages from aspnet/EntityFrameworkCore -->
|
||||||
<dotnetefPackageVersion>3.0.0-preview9.19423.6</dotnetefPackageVersion>
|
<dotnetefPackageVersion>3.0.0-rc1.19422.8</dotnetefPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-preview9.19423.6</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.0.0-rc1.19422.8</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-preview9.19423.6</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.0.0-rc1.19422.8</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-preview9.19423.6</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.0.0-rc1.19422.8</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-preview9.19423.6</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.0.0-rc1.19422.8</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-preview9.19423.6</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.0.0-rc1.19422.8</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||||
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-preview9.19423.6</MicrosoftEntityFrameworkCorePackageVersion>
|
<MicrosoftEntityFrameworkCorePackageVersion>3.0.0-rc1.19422.8</MicrosoftEntityFrameworkCorePackageVersion>
|
||||||
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
||||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-preview9.19423.3</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.0.0-rc1.19422.14</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-preview9.19423.3</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.0.0-rc1.19422.14</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-preview9.19423.3</MicrosoftCodeAnalysisRazorPackageVersion>
|
<MicrosoftCodeAnalysisRazorPackageVersion>3.0.0-rc1.19422.14</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||||
<MicrosoftNETSdkRazorPackageVersion>3.0.0-preview9.19423.3</MicrosoftNETSdkRazorPackageVersion>
|
<MicrosoftNETSdkRazorPackageVersion>3.0.0-rc1.19422.14</MicrosoftNETSdkRazorPackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<!-- Override prerelease label and use preview 9, even in the final build -->
|
||||||
|
<PreReleaseVersionLabel>$(BlazorClientPreReleaseVersionLabel)</PreReleaseVersionLabel>
|
||||||
|
<DotNetFinalVersionKind></DotNetFinalVersionKind>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -121,6 +121,10 @@ export class AuthorizeService {
|
||||||
|
|
||||||
public async signOut(state: any): Promise<IAuthenticationResult> {
|
public async signOut(state: any): Promise<IAuthenticationResult> {
|
||||||
try {
|
try {
|
||||||
|
if (this.popUpDisabled) {
|
||||||
|
throw new Error('Popup disabled. Change \'authorize.service.ts:AuthorizeService.popupDisabled\' to false to enable it.');
|
||||||
|
}
|
||||||
|
|
||||||
await this.ensureUserManagerInitialized();
|
await this.ensureUserManagerInitialized();
|
||||||
await this.userManager.signoutPopup(this.createArguments());
|
await this.userManager.signoutPopup(this.createArguments());
|
||||||
this.userSubject.next(null);
|
this.userSubject.next(null);
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,10 @@ export class AuthorizeService {
|
||||||
async signOut(state) {
|
async signOut(state) {
|
||||||
await this.ensureUserManagerInitialized();
|
await this.ensureUserManagerInitialized();
|
||||||
try {
|
try {
|
||||||
|
if (this._popUpDisabled) {
|
||||||
|
throw new Error('Popup disabled. Change \'AuthorizeService.js:AuthorizeService._popupDisabled\' to false to enable it.')
|
||||||
|
}
|
||||||
|
|
||||||
await this.userManager.signoutPopup(this.createArguments());
|
await this.userManager.signoutPopup(this.createArguments());
|
||||||
this.updateState(undefined);
|
this.updateState(undefined);
|
||||||
return this.success(state);
|
return this.success(state);
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConditionalTheory]
|
[ConditionalTheory]
|
||||||
|
[RequiresNewHandler]
|
||||||
[InlineData("/RequestPath/a/b/../c", "/a/c")]
|
[InlineData("/RequestPath/a/b/../c", "/a/c")]
|
||||||
[InlineData("/RequestPath/a/b/./c", "/a/b/c")]
|
[InlineData("/RequestPath/a/b/./c", "/a/b/c")]
|
||||||
public async Task Request_WithNavigation_Removed(string input, string expectedPath)
|
public async Task Request_WithNavigation_Removed(string input, string expectedPath)
|
||||||
|
|
@ -60,6 +61,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests.InProcess
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConditionalTheory]
|
[ConditionalTheory]
|
||||||
|
[RequiresNewHandler]
|
||||||
[InlineData("/RequestPath/a/b/%2E%2E/c", "/a/c")]
|
[InlineData("/RequestPath/a/b/%2E%2E/c", "/a/c")]
|
||||||
[InlineData("/RequestPath/a/b/%2E/c", "/a/b/c")]
|
[InlineData("/RequestPath/a/b/%2E/c", "/a/b/c")]
|
||||||
public async Task Request_WithEscapedNavigation_Removed(string input, string expectedPath)
|
public async Task Request_WithEscapedNavigation_Removed(string input, string expectedPath)
|
||||||
|
|
|
||||||
|
|
@ -171,9 +171,6 @@ const configFile = sauce ?
|
||||||
path.resolve(__dirname, "karma.local.conf.js");
|
path.resolve(__dirname, "karma.local.conf.js");
|
||||||
debug(`Loading Karma config file: ${configFile}`);
|
debug(`Loading Karma config file: ${configFile}`);
|
||||||
|
|
||||||
// Workaround for 'wd' not installing correctly. https://github.com/karma-runner/karma-sauce-launcher/issues/117
|
|
||||||
exec("node ../node_modules/wd/scripts/build-browser-scripts.js");
|
|
||||||
|
|
||||||
// Gross but it works
|
// Gross but it works
|
||||||
process.env.ASPNETCORE_SIGNALR_TEST_ALL_BROWSERS = allBrowsers ? "true" : null;
|
process.env.ASPNETCORE_SIGNALR_TEST_ALL_BROWSERS = allBrowsers ? "true" : null;
|
||||||
const config = (karma as any).config.parseConfig(configFile);
|
const config = (karma as any).config.parseConfig(configFile);
|
||||||
|
|
@ -197,6 +194,19 @@ if (sauce) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Workaround for 'wd' not installing correctly. https://github.com/karma-runner/karma-sauce-launcher/issues/117
|
||||||
|
function ensureWdInstalled() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
exec(`node ${__dirname}/../node_modules/wd/scripts/build-browser-scripts.js`, { timeout: 30000 }, (error: any, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
console.log(error.message);
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function runKarma(karmaConfig) {
|
function runKarma(karmaConfig) {
|
||||||
return new Promise<number>((resolve, reject) => {
|
return new Promise<number>((resolve, reject) => {
|
||||||
const server = new karma.Server(karmaConfig, (exitCode: number) => {
|
const server = new karma.Server(karmaConfig, (exitCode: number) => {
|
||||||
|
|
@ -289,6 +299,8 @@ function runJest(httpsUrl: string, httpUrl: string) {
|
||||||
|
|
||||||
debug(`Functional Test Server has started at ${httpsUrl} and ${httpUrl}`);
|
debug(`Functional Test Server has started at ${httpsUrl} and ${httpUrl}`);
|
||||||
|
|
||||||
|
await ensureWdInstalled();
|
||||||
|
|
||||||
// Start karma server
|
// Start karma server
|
||||||
const conf = {
|
const conf = {
|
||||||
...config,
|
...config,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using Microsoft.Build.Framework;
|
using Microsoft.Build.Framework;
|
||||||
|
|
@ -9,7 +9,7 @@ namespace Microsoft.Extensions.ApiDescription.Client
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Restore <see cref="ITaskItem"/>s from given property value.
|
/// Restore <see cref="ITaskItem"/>s from given property value.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class GetCurrentItems : Task
|
public class GetCurrentOpenApiReference : Task
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The property value to deserialize.
|
/// The property value to deserialize.
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -13,7 +13,7 @@ namespace Microsoft.Extensions.ApiDescription.Client
|
||||||
/// Adds or corrects ClassName, FirstForGenerator, Namespace, and OutputPath metadata in OpenApiReference items.
|
/// Adds or corrects ClassName, FirstForGenerator, Namespace, and OutputPath metadata in OpenApiReference items.
|
||||||
/// Also stores final metadata as SerializedMetadata.
|
/// Also stores final metadata as SerializedMetadata.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class GetFileReferenceMetadata : Task
|
public class GetOpenApiReferenceMetadata : Task
|
||||||
{
|
{
|
||||||
private const string TypeScriptLanguageName = "TypeScript";
|
private const string TypeScriptLanguageName = "TypeScript";
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!-- Do not complain about lack of lib folder. -->
|
<!-- Do not complain about lack of lib folder. -->
|
||||||
<NoPackageAnalysis>true</NoPackageAnalysis>
|
<NoPackageAnalysis>true</NoPackageAnalysis>
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<PackageId>$(MSBuildProjectName)</PackageId>
|
<PackageId>$(MSBuildProjectName)</PackageId>
|
||||||
<PackageTags>Build Tasks;MSBuild;Swagger;OpenAPI;code generation;Web API client;service reference</PackageTags>
|
<PackageTags>Build Tasks;MSBuild;Swagger;OpenAPI;code generation;Web API client;service reference</PackageTags>
|
||||||
<IsShippingPackage>true</IsShippingPackage>
|
<IsShippingPackage>true</IsShippingPackage>
|
||||||
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
|
<TargetFrameworks>netstandard2.0</TargetFrameworks>
|
||||||
<DevelopmentDependency>true</DevelopmentDependency>
|
<DevelopmentDependency>true</DevelopmentDependency>
|
||||||
<HasReferenceAssembly>false</HasReferenceAssembly>
|
<HasReferenceAssembly>false</HasReferenceAssembly>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||||
<metadata minClientVersion="2.8">
|
<metadata minClientVersion="2.8">
|
||||||
$CommonMetadataElements$
|
$CommonMetadataElements$
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
<files>
|
<files>
|
||||||
<file src="build\*" target="build" />
|
<file src="build\*" target="build" />
|
||||||
<file src="buildMultiTargeting\*" target="buildMultiTargeting" />
|
<file src="buildMultiTargeting\*" target="buildMultiTargeting" />
|
||||||
<file src="$baseOutputPath$\$configuration$\net461\Microsoft.Extensions.ApiDescription.Client.*" target="tasks\net461" />
|
|
||||||
<file src="$baseOutputPath$\$configuration$\netstandard2.0\Microsoft.Extensions.ApiDescription.Client.*" target="tasks\netstandard2.0" />
|
<file src="$baseOutputPath$\$configuration$\netstandard2.0\Microsoft.Extensions.ApiDescription.Client.*" target="tasks\netstandard2.0" />
|
||||||
</files>
|
</files>
|
||||||
</package>
|
</package>
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,10 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ApiDescriptionClientAssemblyTarget
|
<_ApiDescriptionClientAssemblyPath>$(MSBuildThisFileDirectory)/../tasks/netstandard2.0/Microsoft.Extensions.ApiDescription.Client.dll</_ApiDescriptionClientAssemblyPath>
|
||||||
Condition="'$(MSBuildRuntimeType)' == 'Core'">netstandard2.0</_ApiDescriptionClientAssemblyTarget>
|
|
||||||
<_ApiDescriptionClientAssemblyTarget
|
|
||||||
Condition="'$(MSBuildRuntimeType)' != 'Core'">net461</_ApiDescriptionClientAssemblyTarget>
|
|
||||||
<_ApiDescriptionClientAssemblyPath>$(MSBuildThisFileDirectory)/../tasks/$(_ApiDescriptionClientAssemblyTarget)/Microsoft.Extensions.ApiDescription.Client.dll</_ApiDescriptionClientAssemblyPath>
|
|
||||||
<_ApiDescriptionClientAssemblyTarget />
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<UsingTask TaskName="GetCurrentItems" AssemblyFile="$(_ApiDescriptionClientAssemblyPath)" />
|
<UsingTask TaskName="GetCurrentOpenApiReference" AssemblyFile="$(_ApiDescriptionClientAssemblyPath)" />
|
||||||
<UsingTask TaskName="GetFileReferenceMetadata" AssemblyFile="$(_ApiDescriptionClientAssemblyPath)" />
|
<UsingTask TaskName="GetOpenApiReferenceMetadata" AssemblyFile="$(_ApiDescriptionClientAssemblyPath)" />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Settings users may update as they see fit.
|
Settings users may update as they see fit.
|
||||||
|
|
@ -98,6 +93,13 @@
|
||||||
|
|
||||||
<!-- OpenApiProjectReference items may include all OpenApiReference metadata. -->
|
<!-- OpenApiProjectReference items may include all OpenApiReference metadata. -->
|
||||||
<OpenApiProjectReference>
|
<OpenApiProjectReference>
|
||||||
|
<!--
|
||||||
|
Semicolon-separated list of global properties to remove in a @(ProjectReference) item created for this
|
||||||
|
@(OpenApiProjectReference). These properties, along with Configuration, Platform, RuntimeIdentifier and
|
||||||
|
TargetFrameworks, are also removed when invoking the 'OpenApiGetDocuments' target in the referenced project.
|
||||||
|
-->
|
||||||
|
<GlobalPropertiesToRemove>TargetFramework</GlobalPropertiesToRemove>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Name of the class to generate. Defaults to match filename in %(OutputPath). To avoid compilation errors,
|
Name of the class to generate. Defaults to match filename in %(OutputPath). To avoid compilation errors,
|
||||||
override only if the referenced project has a single registered document.
|
override only if the referenced project has a single registered document.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<Project>
|
<Project>
|
||||||
<!-- Internal settings. Not intended for customization. -->
|
<!-- Internal settings. Not intended for customization. -->
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|
@ -25,7 +25,6 @@
|
||||||
@(OpenApiProjectReference) items.
|
@(OpenApiProjectReference) items.
|
||||||
-->
|
-->
|
||||||
<ProjectReference Include="@(OpenApiProjectReference)" Exclude="@(ProjectReference)">
|
<ProjectReference Include="@(OpenApiProjectReference)" Exclude="@(ProjectReference)">
|
||||||
<GlobalPropertiesToRemove>TargetFramework</GlobalPropertiesToRemove>
|
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
|
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
|
||||||
|
|
@ -44,7 +43,7 @@
|
||||||
BuildInParallel="$(BuildInParallel)"
|
BuildInParallel="$(BuildInParallel)"
|
||||||
Projects="@(OpenApiProjectReference)"
|
Projects="@(OpenApiProjectReference)"
|
||||||
RebaseOutputs="true"
|
RebaseOutputs="true"
|
||||||
RemoveProperties="Configuration;Platform;RuntimeIdentifier;TargetFramework;TargetFrameworks">
|
RemoveProperties="RuntimeIdentifier;TargetFrameworks;%(OpenApiProjectReference.GlobalPropertiesToRemove)">
|
||||||
<Output TaskParameter="TargetOutputs" ItemName="_Temporary" />
|
<Output TaskParameter="TargetOutputs" ItemName="_Temporary" />
|
||||||
</MSBuild>
|
</MSBuild>
|
||||||
|
|
||||||
|
|
@ -61,12 +60,12 @@
|
||||||
<_Temporary Remove="@(_Temporary)" />
|
<_Temporary Remove="@(_Temporary)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<GetFileReferenceMetadata Inputs="@(OpenApiReference)"
|
<GetOpenApiReferenceMetadata Inputs="@(OpenApiReference)"
|
||||||
Extension="$(DefaultLanguageSourceExtension)"
|
Extension="$(DefaultLanguageSourceExtension)"
|
||||||
Namespace="$(RootNamespace)"
|
Namespace="$(RootNamespace)"
|
||||||
OutputDirectory="$(OpenApiCodeDirectory)">
|
OutputDirectory="$(OpenApiCodeDirectory)">
|
||||||
<Output TaskParameter="Outputs" ItemName="_Temporary" />
|
<Output TaskParameter="Outputs" ItemName="_Temporary" />
|
||||||
</GetFileReferenceMetadata>
|
</GetOpenApiReferenceMetadata>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<OpenApiReference Remove="@(OpenApiReference)" />
|
<OpenApiReference Remove="@(OpenApiReference)" />
|
||||||
|
|
@ -76,9 +75,9 @@
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="_GetCurrentOpenApiReference">
|
<Target Name="_GetCurrentOpenApiReference">
|
||||||
<GetCurrentItems Input="$(GeneratorMetadata)">
|
<GetCurrentOpenApiReference Input="$(GeneratorMetadata)">
|
||||||
<Output TaskParameter="Outputs" ItemName="CurrentOpenApiReference" />
|
<Output TaskParameter="Outputs" ItemName="CurrentOpenApiReference" />
|
||||||
</GetCurrentItems>
|
</GetCurrentOpenApiReference>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="_InnerGenerateOpenApiCode" DependsOnTargets="_GetCurrentOpenApiReference;$(GeneratorTarget)" />
|
<Target Name="_InnerGenerateOpenApiCode" DependsOnTargets="_GetCurrentOpenApiReference;$(GeneratorTarget)" />
|
||||||
|
|
@ -132,7 +131,7 @@
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
||||||
<FileWrites Exclude="@(FileWrites)"
|
<FileWrites Exclude="@(FileWrites)"
|
||||||
Include="@(_Files);@(_Directories -> '%(Identity)/**/*.ts;%(Identity)/**/*.tsx;%(Identity)/**/*.$(DefaultLanguageSourceExtension)'" />
|
Include="@(_Files);@(_Directories -> '%(Identity)/**/*.ts;%(Identity)/**/*.tsx;%(Identity)/**/*.$(DefaultLanguageSourceExtension)')" />
|
||||||
|
|
||||||
<_Files Remove="@(_Files)" />
|
<_Files Remove="@(_Files)" />
|
||||||
<_Directories Remove="@(_Directories)" />
|
<_Directories Remove="@(_Directories)" />
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<Project>
|
<Project>
|
||||||
<!--
|
<!--
|
||||||
Settings users may update as they see fit.
|
Settings users may update as they see fit.
|
||||||
-->
|
-->
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!--
|
<!--
|
||||||
Options added to the OpenAPI document generation tool ('dotnet-getdocument') command line. Available options
|
Options added to the OpenAPI document generation tool ('dotnet-getdocument') command line. For example, the
|
||||||
control console output: 'no-color', 'prefix-output' and 'verbose'. All require a double-dash prefix.
|
'prefix-output', 'quiet' and 'verbose' options control console output and the 'help' and 'version' options show
|
||||||
|
information. Long form options require a double-dash prefix.
|
||||||
-->
|
-->
|
||||||
<OpenApiGenerateDocumentsOptions Condition=" '$(OpenApiGenerateDocumentsOptions)' == '' " />
|
<OpenApiGenerateDocumentsOptions Condition=" '$(OpenApiGenerateDocumentsOptions)' == '' " />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
<!-- Unless this is an inner build or default timing is disabled, tie document retrieval into the build. -->
|
<!-- Unless this is an inner build or default timing is disabled, tie document retrieval into the build. -->
|
||||||
|
|
||||||
<Target Name="_GenerateOpenApiDocuments"
|
<Target Name="_GenerateOpenApiDocuments"
|
||||||
AfterTargets="Build"
|
BeforeTargets="Build"
|
||||||
Condition=" '$(OpenApiGenerateDocumentsOnBuild)' == 'true' AND ('$(TargetFramework)' == '' OR '$(TargetFrameworks)' == '') "
|
Condition=" '$(OpenApiGenerateDocumentsOnBuild)' == 'true' AND ('$(TargetFramework)' == '' OR '$(TargetFrameworks)' == '') "
|
||||||
DependsOnTargets="GenerateOpenApiDocuments" />
|
DependsOnTargets="GenerateOpenApiDocuments" />
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,15 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<Project>
|
<Project>
|
||||||
<ItemGroup>
|
|
||||||
<_OpenApiGenerateDocumentsTFMs Remove="@(_OpenApiGenerateDocumentsTFMs)" />
|
|
||||||
<_OpenApiGenerateDocumentsTFMs Include="$(TargetFrameworks)" Exclude="netcoreapp1.0;netcoreapp1.1;netcoreapp2.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!-- Default value may lead to an inner build error if $(OpenApiGenerateDocuments) is explicitly set to 'true'. -->
|
<!-- Default value may lead to an inner build error if $(OpenApiGenerateDocuments) is explicitly set to 'true'. -->
|
||||||
<_OpenApiGenerateDocumentsTFM>$(TargetFrameworks.Trim(';').Split(';')[0])</_OpenApiGenerateDocumentsTFM>
|
<_OpenApiGenerateDocumentsTFM>$(TargetFrameworks.Trim(';').Split(';')[0])</_OpenApiGenerateDocumentsTFM>
|
||||||
|
|
||||||
<!-- Prefer first TFM of those the tool supports. -->
|
<!-- Prefer first TFM of those the tool supports. -->
|
||||||
<_Temporary>$(@(_OpenApiGenerateDocumentsTFMs).Trim(';'))</_Temporary>
|
<_Temporary>$(TargetFrameworks
|
||||||
|
.Replace('netcoreapp1.0', '')
|
||||||
|
.Replace('netcoreapp1.1', '')
|
||||||
|
.Replace('netcoreapp2.0', '')
|
||||||
|
.Trim(';'))</_Temporary>
|
||||||
<_OpenApiGenerateDocumentsTFM
|
<_OpenApiGenerateDocumentsTFM
|
||||||
Condition=" '$(_Temporary)' != '' ">$(_Temporary.Split(';')[0])</_OpenApiGenerateDocumentsTFM>
|
Condition=" '$(_Temporary)' != '' ">$(_Temporary.Split(';')[0])</_OpenApiGenerateDocumentsTFM>
|
||||||
|
|
||||||
|
|
@ -34,7 +33,7 @@
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="_GenerateOpenApiDocuments"
|
<Target Name="_GenerateOpenApiDocuments"
|
||||||
AfterTargets="Build"
|
BeforeTargets="Build"
|
||||||
Condition=" '$(OpenApiGenerateDocumentsOnBuild)' == 'true' "
|
Condition=" '$(OpenApiGenerateDocumentsOnBuild)' == 'true' "
|
||||||
DependsOnTargets="GenerateOpenApiDocuments" />
|
DependsOnTargets="GenerateOpenApiDocuments" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
|
||||||
{
|
|
||||||
internal class AnsiConsole
|
|
||||||
{
|
|
||||||
public static readonly AnsiTextWriter _out = new AnsiTextWriter(Console.Out);
|
|
||||||
|
|
||||||
public static void WriteLine(string text)
|
|
||||||
=> _out.WriteLine(text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
|
||||||
{
|
|
||||||
internal static class AnsiConstants
|
|
||||||
{
|
|
||||||
public const string Reset = "\x1b[22m\x1b[39m";
|
|
||||||
public const string Bold = "\x1b[1m";
|
|
||||||
public const string Dark = "\x1b[22m";
|
|
||||||
public const string Black = "\x1b[30m";
|
|
||||||
public const string Red = "\x1b[31m";
|
|
||||||
public const string Green = "\x1b[32m";
|
|
||||||
public const string Yellow = "\x1b[33m";
|
|
||||||
public const string Blue = "\x1b[34m";
|
|
||||||
public const string Magenta = "\x1b[35m";
|
|
||||||
public const string Cyan = "\x1b[36m";
|
|
||||||
public const string Gray = "\x1b[37m";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,131 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
|
||||||
{
|
|
||||||
internal class AnsiTextWriter
|
|
||||||
{
|
|
||||||
private readonly TextWriter _writer;
|
|
||||||
|
|
||||||
public AnsiTextWriter(TextWriter writer) => _writer = writer;
|
|
||||||
|
|
||||||
public void WriteLine(string text)
|
|
||||||
{
|
|
||||||
Interpret(text);
|
|
||||||
_writer.Write(Environment.NewLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Interpret(string value)
|
|
||||||
{
|
|
||||||
var matches = Regex.Matches(value, "\x1b\\[([0-9]+)?m");
|
|
||||||
|
|
||||||
var start = 0;
|
|
||||||
foreach (Match match in matches)
|
|
||||||
{
|
|
||||||
var length = match.Index - start;
|
|
||||||
if (length != 0)
|
|
||||||
{
|
|
||||||
_writer.Write(value.Substring(start, length));
|
|
||||||
}
|
|
||||||
|
|
||||||
Apply(match.Groups[1].Value);
|
|
||||||
|
|
||||||
start = match.Index + match.Length;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start != value.Length)
|
|
||||||
{
|
|
||||||
_writer.Write(value.Substring(start));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void Apply(string parameter)
|
|
||||||
{
|
|
||||||
switch (parameter)
|
|
||||||
{
|
|
||||||
case "1":
|
|
||||||
ApplyBold();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "22":
|
|
||||||
ResetBold();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "30":
|
|
||||||
ApplyColor(ConsoleColor.Black);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "31":
|
|
||||||
ApplyColor(ConsoleColor.DarkRed);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "32":
|
|
||||||
ApplyColor(ConsoleColor.DarkGreen);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "33":
|
|
||||||
ApplyColor(ConsoleColor.DarkYellow);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "34":
|
|
||||||
ApplyColor(ConsoleColor.DarkBlue);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "35":
|
|
||||||
ApplyColor(ConsoleColor.DarkMagenta);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "36":
|
|
||||||
ApplyColor(ConsoleColor.DarkCyan);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "37":
|
|
||||||
ApplyColor(ConsoleColor.Gray);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "39":
|
|
||||||
ResetColor();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
Debug.Fail("Unsupported parameter: " + parameter);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void ApplyBold()
|
|
||||||
=> Console.ForegroundColor = (ConsoleColor)((int)Console.ForegroundColor | 8);
|
|
||||||
|
|
||||||
private static void ResetBold()
|
|
||||||
=> Console.ForegroundColor = (ConsoleColor)((int)Console.ForegroundColor & 7);
|
|
||||||
|
|
||||||
private static void ApplyColor(ConsoleColor color)
|
|
||||||
{
|
|
||||||
var wasBold = ((int)Console.ForegroundColor & 8) != 0;
|
|
||||||
|
|
||||||
Console.ForegroundColor = color;
|
|
||||||
|
|
||||||
if (wasBold)
|
|
||||||
{
|
|
||||||
ApplyBold();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void ResetColor()
|
|
||||||
{
|
|
||||||
var wasBold = ((int)Console.ForegroundColor & 8) != 0;
|
|
||||||
|
|
||||||
Console.ResetColor();
|
|
||||||
|
|
||||||
if (wasBold)
|
|
||||||
{
|
|
||||||
ApplyBold();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.CommandLine
|
|
||||||
{
|
|
||||||
internal class CommandArgument
|
|
||||||
{
|
|
||||||
public CommandArgument() => Values = new List<string>();
|
|
||||||
|
|
||||||
public string Name { get; set; }
|
|
||||||
public string Description { get; set; }
|
|
||||||
public List<string> Values { get; private set; }
|
|
||||||
public bool MultipleValues { get; set; }
|
|
||||||
public string Value => Values.FirstOrDefault();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,604 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.CommandLine
|
|
||||||
{
|
|
||||||
internal class CommandLineApplication
|
|
||||||
{
|
|
||||||
private enum ParseOptionResult
|
|
||||||
{
|
|
||||||
Succeeded,
|
|
||||||
ShowHelp,
|
|
||||||
ShowVersion,
|
|
||||||
UnexpectedArgs,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Indicates whether the parser should throw an exception when it runs into an unexpected argument.
|
|
||||||
// If this field is set to false, the parser will stop parsing when it sees an unexpected argument, and all
|
|
||||||
// remaining arguments, including the first unexpected argument, will be stored in RemainingArguments property.
|
|
||||||
private readonly bool _throwOnUnexpectedArg;
|
|
||||||
|
|
||||||
public CommandLineApplication(bool throwOnUnexpectedArg = true)
|
|
||||||
{
|
|
||||||
_throwOnUnexpectedArg = throwOnUnexpectedArg;
|
|
||||||
Options = new List<CommandOption>();
|
|
||||||
Arguments = new List<CommandArgument>();
|
|
||||||
Commands = new List<CommandLineApplication>();
|
|
||||||
RemainingArguments = new List<string>();
|
|
||||||
Invoke = () => 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommandLineApplication Parent { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
public string FullName { get; set; }
|
|
||||||
public string Syntax { get; set; }
|
|
||||||
public string Description { get; set; }
|
|
||||||
public List<CommandOption> Options { get; private set; }
|
|
||||||
public CommandOption OptionHelp { get; private set; }
|
|
||||||
public CommandOption OptionVersion { get; private set; }
|
|
||||||
public List<CommandArgument> Arguments { get; private set; }
|
|
||||||
public List<string> RemainingArguments { get; private set; }
|
|
||||||
public bool IsShowingInformation { get; protected set; } // Is showing help or version?
|
|
||||||
public Func<int> Invoke { get; set; }
|
|
||||||
public Func<string> LongVersionGetter { get; set; }
|
|
||||||
public Func<string> ShortVersionGetter { get; set; }
|
|
||||||
public List<CommandLineApplication> Commands { get; private set; }
|
|
||||||
public bool HandleResponseFiles { get; set; }
|
|
||||||
public bool AllowArgumentSeparator { get; set; }
|
|
||||||
public bool HandleRemainingArguments { get; set; }
|
|
||||||
public string ArgumentSeparatorHelpText { get; set; }
|
|
||||||
|
|
||||||
public CommandLineApplication Command(string name, bool throwOnUnexpectedArg = true)
|
|
||||||
=> Command(name, _ => { }, throwOnUnexpectedArg);
|
|
||||||
|
|
||||||
public CommandLineApplication Command(string name, Action<CommandLineApplication> configuration,
|
|
||||||
bool throwOnUnexpectedArg = true)
|
|
||||||
{
|
|
||||||
var command = new CommandLineApplication(throwOnUnexpectedArg) { Name = name, Parent = this };
|
|
||||||
Commands.Add(command);
|
|
||||||
configuration(command);
|
|
||||||
return command;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommandOption Option(string template, string description, CommandOptionType optionType)
|
|
||||||
=> Option(template, description, optionType, _ => { });
|
|
||||||
|
|
||||||
public CommandOption Option(string template, string description, CommandOptionType optionType, Action<CommandOption> configuration)
|
|
||||||
{
|
|
||||||
var option = new CommandOption(template, optionType) { Description = description };
|
|
||||||
Options.Add(option);
|
|
||||||
configuration(option);
|
|
||||||
return option;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommandArgument Argument(string name, string description, bool multipleValues = false)
|
|
||||||
=> Argument(name, description, _ => { }, multipleValues);
|
|
||||||
|
|
||||||
public CommandArgument Argument(string name, string description, Action<CommandArgument> configuration, bool multipleValues = false)
|
|
||||||
{
|
|
||||||
var lastArg = Arguments.LastOrDefault();
|
|
||||||
if (lastArg != null && lastArg.MultipleValues)
|
|
||||||
{
|
|
||||||
var message = string.Format("The last argument '{0}' accepts multiple values. No more argument can be added.",
|
|
||||||
lastArg.Name);
|
|
||||||
throw new InvalidOperationException(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
var argument = new CommandArgument { Name = name, Description = description, MultipleValues = multipleValues };
|
|
||||||
Arguments.Add(argument);
|
|
||||||
configuration(argument);
|
|
||||||
return argument;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnExecute(Func<int> invoke) => Invoke = invoke;
|
|
||||||
|
|
||||||
public void OnExecute(Func<Task<int>> invoke) => Invoke = () => invoke().Result;
|
|
||||||
|
|
||||||
public int Execute(params string[] args)
|
|
||||||
{
|
|
||||||
var command = this;
|
|
||||||
IEnumerator<CommandArgument> arguments = null;
|
|
||||||
|
|
||||||
if (HandleResponseFiles)
|
|
||||||
{
|
|
||||||
args = ExpandResponseFiles(args).ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var index = 0; index < args.Length; index++)
|
|
||||||
{
|
|
||||||
var arg = args[index];
|
|
||||||
|
|
||||||
var isLongOption = arg.StartsWith("--");
|
|
||||||
if (isLongOption || arg.StartsWith("-"))
|
|
||||||
{
|
|
||||||
var result = ParseOption(isLongOption, command, args, ref index, out var option);
|
|
||||||
if (result == ParseOptionResult.ShowHelp)
|
|
||||||
{
|
|
||||||
command.ShowHelp();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if (result == ParseOptionResult.ShowVersion)
|
|
||||||
{
|
|
||||||
command.ShowVersion();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var subcommand = ParseSubCommand(arg, command);
|
|
||||||
if (subcommand != null)
|
|
||||||
{
|
|
||||||
command = subcommand;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (arguments == null)
|
|
||||||
{
|
|
||||||
arguments = new CommandArgumentEnumerator(command.Arguments.GetEnumerator());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arguments.MoveNext())
|
|
||||||
{
|
|
||||||
arguments.Current.Values.Add(arg);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HandleUnexpectedArg(command, args, index, argTypeName: "command or argument");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return command.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
private ParseOptionResult ParseOption(
|
|
||||||
bool isLongOption,
|
|
||||||
CommandLineApplication command,
|
|
||||||
string[] args,
|
|
||||||
ref int index,
|
|
||||||
out CommandOption option)
|
|
||||||
{
|
|
||||||
option = null;
|
|
||||||
var result = ParseOptionResult.Succeeded;
|
|
||||||
var arg = args[index];
|
|
||||||
|
|
||||||
var optionPrefixLength = isLongOption ? 2 : 1;
|
|
||||||
var optionComponents = arg.Substring(optionPrefixLength).Split(new[] { ':', '=' }, 2);
|
|
||||||
var optionName = optionComponents[0];
|
|
||||||
|
|
||||||
if (isLongOption)
|
|
||||||
{
|
|
||||||
option = command.Options.SingleOrDefault(
|
|
||||||
opt => string.Equals(opt.LongName, optionName, StringComparison.Ordinal));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
option = command.Options.SingleOrDefault(
|
|
||||||
opt => string.Equals(opt.ShortName, optionName, StringComparison.Ordinal));
|
|
||||||
|
|
||||||
if (option == null)
|
|
||||||
{
|
|
||||||
option = command.Options.SingleOrDefault(
|
|
||||||
opt => string.Equals(opt.SymbolName, optionName, StringComparison.Ordinal));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (option == null)
|
|
||||||
{
|
|
||||||
if (isLongOption && string.IsNullOrEmpty(optionName) &&
|
|
||||||
!command._throwOnUnexpectedArg && AllowArgumentSeparator)
|
|
||||||
{
|
|
||||||
// a stand-alone "--" is the argument separator, so skip it and
|
|
||||||
// handle the rest of the args as unexpected args
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
|
|
||||||
HandleUnexpectedArg(command, args, index, argTypeName: "option");
|
|
||||||
result = ParseOptionResult.UnexpectedArgs;
|
|
||||||
}
|
|
||||||
else if (command.OptionHelp == option)
|
|
||||||
{
|
|
||||||
result = ParseOptionResult.ShowHelp;
|
|
||||||
}
|
|
||||||
else if (command.OptionVersion == option)
|
|
||||||
{
|
|
||||||
result = ParseOptionResult.ShowVersion;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (optionComponents.Length == 2)
|
|
||||||
{
|
|
||||||
if (!option.TryParse(optionComponents[1]))
|
|
||||||
{
|
|
||||||
command.ShowHint();
|
|
||||||
throw new CommandParsingException(command,
|
|
||||||
$"Unexpected value '{optionComponents[1]}' for option '{optionName}'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (option.OptionType == CommandOptionType.NoValue ||
|
|
||||||
option.OptionType == CommandOptionType.BoolValue)
|
|
||||||
{
|
|
||||||
// No value is needed for this option
|
|
||||||
option.TryParse(null);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
index++;
|
|
||||||
arg = args[index];
|
|
||||||
if (!option.TryParse(arg))
|
|
||||||
{
|
|
||||||
command.ShowHint();
|
|
||||||
throw new CommandParsingException(command, $"Unexpected value '{arg}' for option '{optionName}'");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static CommandLineApplication ParseSubCommand(string arg, CommandLineApplication command)
|
|
||||||
{
|
|
||||||
foreach (var subcommand in command.Commands)
|
|
||||||
{
|
|
||||||
if (string.Equals(subcommand.Name, arg, StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
return subcommand;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method that adds a help option
|
|
||||||
public CommandOption HelpOption(string template)
|
|
||||||
{
|
|
||||||
// Help option is special because we stop parsing once we see it
|
|
||||||
// So we store it separately for further use
|
|
||||||
OptionHelp = Option(template, "Show help information", CommandOptionType.NoValue);
|
|
||||||
|
|
||||||
return OptionHelp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommandOption VersionOption(string template,
|
|
||||||
string shortFormVersion,
|
|
||||||
string longFormVersion = null)
|
|
||||||
{
|
|
||||||
if (longFormVersion == null)
|
|
||||||
{
|
|
||||||
return VersionOption(template, () => shortFormVersion);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return VersionOption(template, () => shortFormVersion, () => longFormVersion);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method that adds a version option
|
|
||||||
public CommandOption VersionOption(string template,
|
|
||||||
Func<string> shortFormVersionGetter,
|
|
||||||
Func<string> longFormVersionGetter = null)
|
|
||||||
{
|
|
||||||
// Version option is special because we stop parsing once we see it
|
|
||||||
// So we store it separately for further use
|
|
||||||
OptionVersion = Option(template, "Show version information", CommandOptionType.NoValue);
|
|
||||||
ShortVersionGetter = shortFormVersionGetter;
|
|
||||||
LongVersionGetter = longFormVersionGetter ?? shortFormVersionGetter;
|
|
||||||
|
|
||||||
return OptionVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show short hint that reminds users to use help option
|
|
||||||
public void ShowHint()
|
|
||||||
{
|
|
||||||
if (OptionHelp != null)
|
|
||||||
{
|
|
||||||
Console.WriteLine(string.Format("Specify --{0} for a list of available options and commands.", OptionHelp.LongName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show full help
|
|
||||||
public void ShowHelp(string commandName = null)
|
|
||||||
{
|
|
||||||
var headerBuilder = new StringBuilder("Usage:");
|
|
||||||
var usagePrefixLength = headerBuilder.Length;
|
|
||||||
for (var cmd = this; cmd != null; cmd = cmd.Parent)
|
|
||||||
{
|
|
||||||
cmd.IsShowingInformation = true;
|
|
||||||
if (cmd != this && cmd.Arguments.Any())
|
|
||||||
{
|
|
||||||
var args = string.Join(" ", cmd.Arguments.Select(arg => arg.Name));
|
|
||||||
headerBuilder.Insert(usagePrefixLength, string.Format(" {0} {1}", cmd.Name, args));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
headerBuilder.Insert(usagePrefixLength, string.Format(" {0}", cmd.Name));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CommandLineApplication target;
|
|
||||||
|
|
||||||
if (commandName == null || string.Equals(Name, commandName, StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
target = this;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
target = Commands.SingleOrDefault(cmd => string.Equals(cmd.Name, commandName, StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
if (target != null)
|
|
||||||
{
|
|
||||||
headerBuilder.AppendFormat(" {0}", commandName);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// The command name is invalid so don't try to show help for something that doesn't exist
|
|
||||||
target = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var optionsBuilder = new StringBuilder();
|
|
||||||
var commandsBuilder = new StringBuilder();
|
|
||||||
var argumentsBuilder = new StringBuilder();
|
|
||||||
var argumentSeparatorBuilder = new StringBuilder();
|
|
||||||
|
|
||||||
var maxArgLen = 0;
|
|
||||||
for (var cmd = target; cmd != null; cmd = cmd.Parent)
|
|
||||||
{
|
|
||||||
if (cmd.Arguments.Any())
|
|
||||||
{
|
|
||||||
if (cmd == target)
|
|
||||||
{
|
|
||||||
headerBuilder.Append(" [arguments]");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (argumentsBuilder.Length == 0)
|
|
||||||
{
|
|
||||||
argumentsBuilder.AppendLine();
|
|
||||||
argumentsBuilder.AppendLine("Arguments:");
|
|
||||||
}
|
|
||||||
|
|
||||||
maxArgLen = Math.Max(maxArgLen, MaxArgumentLength(cmd.Arguments));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var cmd = target; cmd != null; cmd = cmd.Parent)
|
|
||||||
{
|
|
||||||
if (cmd.Arguments.Any())
|
|
||||||
{
|
|
||||||
var outputFormat = " {0}{1}";
|
|
||||||
foreach (var arg in cmd.Arguments)
|
|
||||||
{
|
|
||||||
argumentsBuilder.AppendFormat(
|
|
||||||
outputFormat,
|
|
||||||
arg.Name.PadRight(maxArgLen + 2),
|
|
||||||
arg.Description);
|
|
||||||
argumentsBuilder.AppendLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (target.Options.Any())
|
|
||||||
{
|
|
||||||
headerBuilder.Append(" [options]");
|
|
||||||
|
|
||||||
optionsBuilder.AppendLine();
|
|
||||||
optionsBuilder.AppendLine("Options:");
|
|
||||||
var maxOptLen = MaxOptionTemplateLength(target.Options);
|
|
||||||
var outputFormat = string.Format(" {{0, -{0}}}{{1}}", maxOptLen + 2);
|
|
||||||
foreach (var opt in target.Options)
|
|
||||||
{
|
|
||||||
optionsBuilder.AppendFormat(outputFormat, opt.Template, opt.Description);
|
|
||||||
optionsBuilder.AppendLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (target.Commands.Any())
|
|
||||||
{
|
|
||||||
headerBuilder.Append(" [command]");
|
|
||||||
|
|
||||||
commandsBuilder.AppendLine();
|
|
||||||
commandsBuilder.AppendLine("Commands:");
|
|
||||||
var maxCmdLen = MaxCommandLength(target.Commands);
|
|
||||||
var outputFormat = string.Format(" {{0, -{0}}}{{1}}", maxCmdLen + 2);
|
|
||||||
foreach (var cmd in target.Commands.OrderBy(c => c.Name))
|
|
||||||
{
|
|
||||||
commandsBuilder.AppendFormat(outputFormat, cmd.Name, cmd.Description);
|
|
||||||
commandsBuilder.AppendLine();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (OptionHelp != null)
|
|
||||||
{
|
|
||||||
commandsBuilder.AppendLine();
|
|
||||||
commandsBuilder.AppendFormat("Use \"{0} [command] --help\" for more information about a command.", Name);
|
|
||||||
commandsBuilder.AppendLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (target.AllowArgumentSeparator || target.HandleRemainingArguments)
|
|
||||||
{
|
|
||||||
if (target.AllowArgumentSeparator)
|
|
||||||
{
|
|
||||||
headerBuilder.Append(" [[--] <arg>...]]");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
headerBuilder.Append(" [args]");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(target.ArgumentSeparatorHelpText))
|
|
||||||
{
|
|
||||||
argumentSeparatorBuilder.AppendLine();
|
|
||||||
argumentSeparatorBuilder.AppendLine("Args:");
|
|
||||||
argumentSeparatorBuilder.AppendLine($" {target.ArgumentSeparatorHelpText}");
|
|
||||||
argumentSeparatorBuilder.AppendLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
headerBuilder.AppendLine();
|
|
||||||
|
|
||||||
var nameAndVersion = new StringBuilder();
|
|
||||||
nameAndVersion.AppendLine(GetFullNameAndVersion());
|
|
||||||
nameAndVersion.AppendLine();
|
|
||||||
|
|
||||||
Console.Write("{0}{1}{2}{3}{4}{5}", nameAndVersion, headerBuilder, argumentsBuilder, optionsBuilder, commandsBuilder, argumentSeparatorBuilder);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowVersion()
|
|
||||||
{
|
|
||||||
for (var cmd = this; cmd != null; cmd = cmd.Parent)
|
|
||||||
{
|
|
||||||
cmd.IsShowingInformation = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.WriteLine(FullName);
|
|
||||||
Console.WriteLine(LongVersionGetter());
|
|
||||||
}
|
|
||||||
|
|
||||||
public string GetFullNameAndVersion()
|
|
||||||
=> ShortVersionGetter == null ? FullName : string.Format("{0} {1}", FullName, ShortVersionGetter());
|
|
||||||
|
|
||||||
public void ShowRootCommandFullNameAndVersion()
|
|
||||||
{
|
|
||||||
var rootCmd = this;
|
|
||||||
while (rootCmd.Parent != null)
|
|
||||||
{
|
|
||||||
rootCmd = rootCmd.Parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.WriteLine(rootCmd.GetFullNameAndVersion());
|
|
||||||
Console.WriteLine();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int MaxOptionTemplateLength(IEnumerable<CommandOption> options)
|
|
||||||
{
|
|
||||||
var maxLen = 0;
|
|
||||||
foreach (var opt in options)
|
|
||||||
{
|
|
||||||
maxLen = opt.Template.Length > maxLen ? opt.Template.Length : maxLen;
|
|
||||||
}
|
|
||||||
return maxLen;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int MaxCommandLength(IEnumerable<CommandLineApplication> commands)
|
|
||||||
{
|
|
||||||
var maxLen = 0;
|
|
||||||
foreach (var cmd in commands)
|
|
||||||
{
|
|
||||||
maxLen = cmd.Name.Length > maxLen ? cmd.Name.Length : maxLen;
|
|
||||||
}
|
|
||||||
return maxLen;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int MaxArgumentLength(IEnumerable<CommandArgument> arguments)
|
|
||||||
{
|
|
||||||
var maxLen = 0;
|
|
||||||
foreach (var arg in arguments)
|
|
||||||
{
|
|
||||||
maxLen = arg.Name.Length > maxLen ? arg.Name.Length : maxLen;
|
|
||||||
}
|
|
||||||
return maxLen;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void HandleUnexpectedArg(CommandLineApplication command, string[] args, int index, string argTypeName)
|
|
||||||
{
|
|
||||||
if (command._throwOnUnexpectedArg)
|
|
||||||
{
|
|
||||||
command.ShowHint();
|
|
||||||
throw new CommandParsingException(command, $"Unrecognized {argTypeName} '{args[index]}'");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
command.RemainingArguments.Add(args[index]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<string> ExpandResponseFiles(IEnumerable<string> args)
|
|
||||||
{
|
|
||||||
foreach (var arg in args)
|
|
||||||
{
|
|
||||||
if (!arg.StartsWith("@", StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
yield return arg;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var fileName = arg.Substring(1);
|
|
||||||
|
|
||||||
var responseFileArguments = ParseResponseFile(fileName);
|
|
||||||
|
|
||||||
// ParseResponseFile can suppress expanding this response file by
|
|
||||||
// returning null. In that case, we'll treat the response
|
|
||||||
// file token as a regular argument.
|
|
||||||
|
|
||||||
if (responseFileArguments == null)
|
|
||||||
{
|
|
||||||
yield return arg;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var responseFileArgument in responseFileArguments)
|
|
||||||
{
|
|
||||||
yield return responseFileArgument.Trim();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<string> ParseResponseFile(string fileName)
|
|
||||||
{
|
|
||||||
if (!HandleResponseFiles)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!File.Exists(fileName))
|
|
||||||
{
|
|
||||||
throw new InvalidOperationException($"Response file '{fileName}' doesn't exist.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return File.ReadLines(fileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class CommandArgumentEnumerator : IEnumerator<CommandArgument>
|
|
||||||
{
|
|
||||||
private readonly IEnumerator<CommandArgument> _enumerator;
|
|
||||||
|
|
||||||
public CommandArgumentEnumerator(IEnumerator<CommandArgument> enumerator) => _enumerator = enumerator;
|
|
||||||
|
|
||||||
public CommandArgument Current => _enumerator.Current;
|
|
||||||
|
|
||||||
object IEnumerator.Current => Current;
|
|
||||||
|
|
||||||
public void Dispose() => _enumerator.Dispose();
|
|
||||||
|
|
||||||
public bool MoveNext()
|
|
||||||
{
|
|
||||||
if (Current == null || !Current.MultipleValues)
|
|
||||||
{
|
|
||||||
return _enumerator.MoveNext();
|
|
||||||
}
|
|
||||||
|
|
||||||
// If current argument allows multiple values, we don't move forward and
|
|
||||||
// all later values will be added to current CommandArgument.Values
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Reset() => _enumerator.Reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.CommandLine
|
|
||||||
{
|
|
||||||
internal static class CommandLineApplicationExtensions
|
|
||||||
{
|
|
||||||
public static CommandOption Option(this CommandLineApplication command, string template, string description)
|
|
||||||
=> command.Option(
|
|
||||||
template,
|
|
||||||
description,
|
|
||||||
template.IndexOf('<') != -1
|
|
||||||
? template.EndsWith(">...")
|
|
||||||
? CommandOptionType.MultipleValue
|
|
||||||
: CommandOptionType.SingleValue
|
|
||||||
: CommandOptionType.NoValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,125 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.CommandLine
|
|
||||||
{
|
|
||||||
internal class CommandOption
|
|
||||||
{
|
|
||||||
public CommandOption(string template, CommandOptionType optionType)
|
|
||||||
{
|
|
||||||
Template = template;
|
|
||||||
OptionType = optionType;
|
|
||||||
Values = new List<string>();
|
|
||||||
|
|
||||||
foreach (var part in Template.Split(new[] { ' ', '|' }, StringSplitOptions.RemoveEmptyEntries))
|
|
||||||
{
|
|
||||||
if (part.StartsWith("--"))
|
|
||||||
{
|
|
||||||
LongName = part.Substring(2);
|
|
||||||
}
|
|
||||||
else if (part.StartsWith("-"))
|
|
||||||
{
|
|
||||||
var optName = part.Substring(1);
|
|
||||||
|
|
||||||
// If there is only one char and it is not an English letter, it is a symbol option (e.g. "-?")
|
|
||||||
if (optName.Length == 1 && !IsEnglishLetter(optName[0]))
|
|
||||||
{
|
|
||||||
SymbolName = optName;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ShortName = optName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (part.StartsWith("<") && part.EndsWith(">"))
|
|
||||||
{
|
|
||||||
ValueName = part.Substring(1, part.Length - 2);
|
|
||||||
}
|
|
||||||
else if (optionType == CommandOptionType.MultipleValue && part.StartsWith("<") && part.EndsWith(">..."))
|
|
||||||
{
|
|
||||||
ValueName = part.Substring(1, part.Length - 5);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new ArgumentException($"Invalid template pattern '{template}'", nameof(template));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(LongName) && string.IsNullOrEmpty(ShortName) && string.IsNullOrEmpty(SymbolName))
|
|
||||||
{
|
|
||||||
throw new ArgumentException($"Invalid template pattern '{template}'", nameof(template));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Template { get; set; }
|
|
||||||
public string ShortName { get; set; }
|
|
||||||
public string LongName { get; set; }
|
|
||||||
public string SymbolName { get; set; }
|
|
||||||
public string ValueName { get; set; }
|
|
||||||
public string Description { get; set; }
|
|
||||||
public List<string> Values { get; private set; }
|
|
||||||
public bool? BoolValue { get; private set; }
|
|
||||||
public CommandOptionType OptionType { get; private set; }
|
|
||||||
|
|
||||||
public bool TryParse(string value)
|
|
||||||
{
|
|
||||||
switch (OptionType)
|
|
||||||
{
|
|
||||||
case CommandOptionType.MultipleValue:
|
|
||||||
Values.Add(value);
|
|
||||||
break;
|
|
||||||
case CommandOptionType.SingleValue:
|
|
||||||
if (Values.Any())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Values.Add(value);
|
|
||||||
break;
|
|
||||||
case CommandOptionType.BoolValue:
|
|
||||||
if (Values.Any())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (value == null)
|
|
||||||
{
|
|
||||||
// add null to indicate that the option was present, but had no value
|
|
||||||
Values.Add(null);
|
|
||||||
BoolValue = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!bool.TryParse(value, out var boolValue))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Values.Add(value);
|
|
||||||
BoolValue = boolValue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CommandOptionType.NoValue:
|
|
||||||
if (value != null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Add a value to indicate that this option was specified
|
|
||||||
Values.Add("on");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool HasValue() => Values.Any();
|
|
||||||
|
|
||||||
public string Value() => HasValue() ? Values[0] : null;
|
|
||||||
|
|
||||||
private static bool IsEnglishLetter(char c) => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.CommandLine
|
|
||||||
{
|
|
||||||
internal enum CommandOptionType
|
|
||||||
{
|
|
||||||
MultipleValue,
|
|
||||||
SingleValue,
|
|
||||||
BoolValue,
|
|
||||||
NoValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.CommandLine
|
|
||||||
{
|
|
||||||
internal class CommandParsingException : Exception
|
|
||||||
{
|
|
||||||
public CommandParsingException(CommandLineApplication command, string message)
|
|
||||||
: base(message) => Command = command;
|
|
||||||
|
|
||||||
public CommandLineApplication Command { get; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +1,43 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
using System;
|
||||||
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
{
|
{
|
||||||
internal abstract class CommandBase
|
internal abstract class CommandBase
|
||||||
{
|
{
|
||||||
|
private readonly IConsole _console;
|
||||||
|
|
||||||
|
public bool IsQuiet { get; private set; }
|
||||||
|
|
||||||
|
public bool IsVerbose { get; private set; }
|
||||||
|
|
||||||
|
protected IReporter Reporter { get; private set; }
|
||||||
|
|
||||||
|
protected CommandBase(IConsole console)
|
||||||
|
{
|
||||||
|
_console = console ?? throw new ArgumentNullException(nameof(console));
|
||||||
|
Reporter = new ConsoleReporter(_console);
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void Configure(CommandLineApplication command)
|
public virtual void Configure(CommandLineApplication command)
|
||||||
{
|
{
|
||||||
var verbose = command.Option("-v|--verbose", Resources.VerboseDescription);
|
|
||||||
var noColor = command.Option("--no-color", Resources.NoColorDescription);
|
|
||||||
var prefixOutput = command.Option("--prefix-output", Resources.PrefixDescription);
|
var prefixOutput = command.Option("--prefix-output", Resources.PrefixDescription);
|
||||||
|
var quiet = command.Option("-q|--quiet", Resources.QuietDescription);
|
||||||
command.HandleResponseFiles = true;
|
var verbose = command.VerboseOption();
|
||||||
|
|
||||||
command.OnExecute(
|
command.OnExecute(
|
||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
Reporter.IsVerbose = verbose.HasValue();
|
IsQuiet = quiet.HasValue();
|
||||||
Reporter.NoColor = noColor.HasValue();
|
IsVerbose = verbose.HasValue() || CliContext.IsGlobalVerbose();
|
||||||
Reporter.PrefixOutput = prefixOutput.HasValue();
|
ReporterExtensions.PrefixOutput = prefixOutput.HasValue();
|
||||||
|
|
||||||
|
// Update the reporter now that we know the option values.
|
||||||
|
Reporter = new ConsoleReporter(_console, IsVerbose, IsQuiet);
|
||||||
|
|
||||||
Validate();
|
Validate();
|
||||||
|
|
||||||
|
|
@ -30,6 +47,10 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
|
|
||||||
protected virtual void Validate()
|
protected virtual void Validate()
|
||||||
{
|
{
|
||||||
|
if (IsQuiet && IsVerbose)
|
||||||
|
{
|
||||||
|
throw new CommandException(Resources.QuietAndVerboseSpecified);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual int Execute() => 0;
|
protected virtual int Execute() => 0;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -8,7 +8,8 @@ using System.Reflection;
|
||||||
#if NETCOREAPP2_1
|
#if NETCOREAPP2_1
|
||||||
using System.Runtime.Loader;
|
using System.Runtime.Loader;
|
||||||
#endif
|
#endif
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
{
|
{
|
||||||
|
|
@ -17,6 +18,10 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
private CommandOption _fileListPath;
|
private CommandOption _fileListPath;
|
||||||
private CommandOption _output;
|
private CommandOption _output;
|
||||||
|
|
||||||
|
public GetDocumentCommand(IConsole console) : base(console)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public override void Configure(CommandLineApplication command)
|
public override void Configure(CommandLineApplication command)
|
||||||
{
|
{
|
||||||
base.Configure(command);
|
base.Configure(command);
|
||||||
|
|
@ -124,13 +129,14 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
FileListPath = _fileListPath.Value(),
|
FileListPath = _fileListPath.Value(),
|
||||||
OutputDirectory = _output.Value(),
|
OutputDirectory = _output.Value(),
|
||||||
ProjectName = ProjectName.Value(),
|
ProjectName = ProjectName.Value(),
|
||||||
|
Reporter = Reporter,
|
||||||
};
|
};
|
||||||
|
|
||||||
return GetDocumentCommandWorker.Process(context);
|
return new GetDocumentCommandWorker(context).Process();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.Error.WriteLine(ex.ToString());
|
Reporter.WriteError(ex.ToString());
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
{
|
{
|
||||||
|
|
@ -17,5 +18,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
public string OutputDirectory { get; set; }
|
public string OutputDirectory { get; set; }
|
||||||
|
|
||||||
public string ProjectName { get; set; }
|
public string ProjectName { get; set; }
|
||||||
|
|
||||||
|
public IReporter Reporter { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -8,6 +8,7 @@ using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
{
|
{
|
||||||
|
|
@ -32,14 +33,23 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
private static readonly Type[] GenerateMethodParameterTypes = new[] { typeof(string), typeof(TextWriter) };
|
private static readonly Type[] GenerateMethodParameterTypes = new[] { typeof(string), typeof(TextWriter) };
|
||||||
private static readonly Type GenerateMethodReturnType = typeof(Task);
|
private static readonly Type GenerateMethodReturnType = typeof(Task);
|
||||||
|
|
||||||
public static int Process(GetDocumentCommandContext context)
|
private readonly GetDocumentCommandContext _context;
|
||||||
|
private readonly IReporter _reporter;
|
||||||
|
|
||||||
|
public GetDocumentCommandWorker(GetDocumentCommandContext context)
|
||||||
{
|
{
|
||||||
var assemblyName = new AssemblyName(context.AssemblyName);
|
_context = context ?? throw new ArgumentNullException(nameof(context));
|
||||||
|
_reporter = context.Reporter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Process()
|
||||||
|
{
|
||||||
|
var assemblyName = new AssemblyName(_context.AssemblyName);
|
||||||
var assembly = Assembly.Load(assemblyName);
|
var assembly = Assembly.Load(assemblyName);
|
||||||
var entryPointType = assembly.EntryPoint?.DeclaringType;
|
var entryPointType = assembly.EntryPoint?.DeclaringType;
|
||||||
if (entryPointType == null)
|
if (entryPointType == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatMissingEntryPoint(context.AssemblyPath));
|
_reporter.WriteError(Resources.FormatMissingEntryPoint(_context.AssemblyPath));
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,7 +58,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
var serviceFactory = HostFactoryResolver.ResolveServiceProviderFactory(assembly);
|
var serviceFactory = HostFactoryResolver.ResolveServiceProviderFactory(assembly);
|
||||||
if (serviceFactory == null)
|
if (serviceFactory == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatMethodsNotFound(
|
_reporter.WriteError(Resources.FormatMethodsNotFound(
|
||||||
HostFactoryResolver.BuildWebHost,
|
HostFactoryResolver.BuildWebHost,
|
||||||
HostFactoryResolver.CreateHostBuilder,
|
HostFactoryResolver.CreateHostBuilder,
|
||||||
HostFactoryResolver.CreateWebHostBuilder,
|
HostFactoryResolver.CreateWebHostBuilder,
|
||||||
|
|
@ -60,7 +70,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
var services = serviceFactory(Array.Empty<string>());
|
var services = serviceFactory(Array.Empty<string>());
|
||||||
if (services == null)
|
if (services == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatServiceProviderNotFound(
|
_reporter.WriteError(Resources.FormatServiceProviderNotFound(
|
||||||
typeof(IServiceProvider),
|
typeof(IServiceProvider),
|
||||||
HostFactoryResolver.BuildWebHost,
|
HostFactoryResolver.BuildWebHost,
|
||||||
HostFactoryResolver.CreateHostBuilder,
|
HostFactoryResolver.CreateHostBuilder,
|
||||||
|
|
@ -70,7 +80,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
var success = GetDocuments(context, services);
|
var success = GetDocuments(services);
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
return 6;
|
return 6;
|
||||||
|
|
@ -78,14 +88,14 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(ex.ToString());
|
_reporter.WriteError(ex.ToString());
|
||||||
return 7;
|
return 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool GetDocuments(GetDocumentCommandContext context, IServiceProvider services)
|
private bool GetDocuments(IServiceProvider services)
|
||||||
{
|
{
|
||||||
Type serviceType = null;
|
Type serviceType = null;
|
||||||
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||||
|
|
@ -99,7 +109,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
|
|
||||||
if (serviceType == null)
|
if (serviceType == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatServiceTypeNotFound(DocumentService));
|
_reporter.WriteError(Resources.FormatServiceTypeNotFound(DocumentService));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,7 +136,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
var service = services.GetService(serviceType);
|
var service = services.GetService(serviceType);
|
||||||
if (service == null)
|
if (service == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatServiceNotFound(DocumentService));
|
_reporter.WriteError(Resources.FormatServiceNotFound(DocumentService));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -138,14 +148,14 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
|
|
||||||
// Write out the documents.
|
// Write out the documents.
|
||||||
var found = false;
|
var found = false;
|
||||||
Directory.CreateDirectory(context.OutputDirectory);
|
Directory.CreateDirectory(_context.OutputDirectory);
|
||||||
var filePathList = new List<string>();
|
var filePathList = new List<string>();
|
||||||
foreach (var documentName in documentNames)
|
foreach (var documentName in documentNames)
|
||||||
{
|
{
|
||||||
var filePath = GetDocument(
|
var filePath = GetDocument(
|
||||||
documentName,
|
documentName,
|
||||||
context.ProjectName,
|
_context.ProjectName,
|
||||||
context.OutputDirectory,
|
_context.OutputDirectory,
|
||||||
generateMethod,
|
generateMethod,
|
||||||
service);
|
service);
|
||||||
if (filePath == null)
|
if (filePath == null)
|
||||||
|
|
@ -158,26 +168,26 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write out the cache file.
|
// Write out the cache file.
|
||||||
var stream = File.Create(context.FileListPath);
|
var stream = File.Create(_context.FileListPath);
|
||||||
using var writer = new StreamWriter(stream);
|
using var writer = new StreamWriter(stream);
|
||||||
writer.WriteLine(string.Join(Environment.NewLine, filePathList));
|
writer.WriteLine(string.Join(Environment.NewLine, filePathList));
|
||||||
|
|
||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.DocumentsNotFound);
|
_reporter.WriteError(Resources.DocumentsNotFound);
|
||||||
}
|
}
|
||||||
|
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetDocument(
|
private string GetDocument(
|
||||||
string documentName,
|
string documentName,
|
||||||
string projectName,
|
string projectName,
|
||||||
string outputDirectory,
|
string outputDirectory,
|
||||||
MethodInfo generateMethod,
|
MethodInfo generateMethod,
|
||||||
object service)
|
object service)
|
||||||
{
|
{
|
||||||
Reporter.WriteInformation(Resources.FormatGeneratingDocument(documentName));
|
_reporter.WriteInformation(Resources.FormatGeneratingDocument(documentName));
|
||||||
|
|
||||||
using var stream = new MemoryStream();
|
using var stream = new MemoryStream();
|
||||||
using (var writer = new StreamWriter(stream, UTF8EncodingWithoutBOM, bufferSize: 1024, leaveOpen: true))
|
using (var writer = new StreamWriter(stream, UTF8EncodingWithoutBOM, bufferSize: 1024, leaveOpen: true))
|
||||||
|
|
@ -192,21 +202,21 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
var finished = resultTask.Wait(TimeSpan.FromMinutes(1));
|
var finished = resultTask.Wait(TimeSpan.FromMinutes(1));
|
||||||
if (!finished)
|
if (!finished)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatMethodTimedOut(GenerateMethodName, DocumentService, 1));
|
_reporter.WriteError(Resources.FormatMethodTimedOut(GenerateMethodName, DocumentService, 1));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream.Length == 0L)
|
if (stream.Length == 0L)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(
|
_reporter.WriteError(
|
||||||
Resources.FormatMethodWroteNoContent(GenerateMethodName, DocumentService, documentName));
|
Resources.FormatMethodWroteNoContent(GenerateMethodName, DocumentService, documentName));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var filePath = GetDocumentPath(documentName, projectName, outputDirectory);
|
var filePath = GetDocumentPath(documentName, projectName, outputDirectory);
|
||||||
Reporter.WriteInformation(Resources.FormatWritingDocument(documentName, filePath));
|
_reporter.WriteInformation(Resources.FormatWritingDocument(documentName, filePath));
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
stream.Position = 0L;
|
stream.Position = 0L;
|
||||||
|
|
@ -256,24 +266,24 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static MethodInfo GetMethod(string methodName, Type type, Type[] parameterTypes, Type returnType)
|
private MethodInfo GetMethod(string methodName, Type type, Type[] parameterTypes, Type returnType)
|
||||||
{
|
{
|
||||||
var method = type.GetMethod(methodName, parameterTypes);
|
var method = type.GetMethod(methodName, parameterTypes);
|
||||||
if (method == null)
|
if (method == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatMethodNotFound(methodName, type));
|
_reporter.WriteError(Resources.FormatMethodNotFound(methodName, type));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (method.IsStatic)
|
if (method.IsStatic)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(Resources.FormatMethodIsStatic(methodName, type));
|
_reporter.WriteError(Resources.FormatMethodIsStatic(methodName, type));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!returnType.IsAssignableFrom(method.ReturnType))
|
if (!returnType.IsAssignableFrom(method.ReturnType))
|
||||||
{
|
{
|
||||||
Reporter.WriteError(
|
_reporter.WriteError(
|
||||||
Resources.FormatMethodReturnTypeUnsupported(methodName, type, method.ReturnType, returnType));
|
Resources.FormatMethodReturnTypeUnsupported(methodName, type, method.ReturnType, returnType));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -282,12 +292,12 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
return method;
|
return method;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static object InvokeMethod(MethodInfo method, object instance, object[] arguments)
|
private object InvokeMethod(MethodInfo method, object instance, object[] arguments)
|
||||||
{
|
{
|
||||||
var result = method.Invoke(instance, arguments);
|
var result = method.Invoke(instance, arguments);
|
||||||
if (result == null)
|
if (result == null)
|
||||||
{
|
{
|
||||||
Reporter.WriteError(
|
_reporter.WriteError(
|
||||||
Resources.FormatMethodReturnedNull(method.Name, method.DeclaringType, method.ReturnType));
|
Resources.FormatMethodReturnedNull(method.Name, method.DeclaringType, method.ReturnType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,21 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
{
|
{
|
||||||
internal class HelpCommandBase : CommandBase
|
internal class HelpCommandBase : CommandBase
|
||||||
{
|
{
|
||||||
|
public HelpCommandBase(IConsole console) : base(console)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public override void Configure(CommandLineApplication command)
|
public override void Configure(CommandLineApplication command)
|
||||||
{
|
{
|
||||||
command.HelpOption("-h|--help");
|
command.HelpOption();
|
||||||
command.VersionOption("--version", ProductInfo.GetVersion);
|
command.VersionOptionFromAssemblyAttributes();
|
||||||
base.Configure(command);
|
base.Configure(command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,17 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
{
|
{
|
||||||
internal abstract class ProjectCommandBase : HelpCommandBase
|
internal abstract class ProjectCommandBase : HelpCommandBase
|
||||||
{
|
{
|
||||||
|
public ProjectCommandBase(IConsole console) : base(console)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public CommandOption AssemblyPath { get; private set; }
|
public CommandOption AssemblyPath { get; private set; }
|
||||||
|
|
||||||
public CommandOption ProjectName { get; private set; }
|
public CommandOption ProjectName { get; private set; }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<AssemblyName>GetDocument.Insider</AssemblyName>
|
<AssemblyName>GetDocument.Insider</AssemblyName>
|
||||||
<Description>GetDocument Command-line Tool inside man</Description>
|
<Description>GetDocument Command-line Tool inside man</Description>
|
||||||
|
|
@ -15,10 +15,13 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="$(ToolSharedSourceRoot)CommandLine/**/*.cs" />
|
||||||
|
|
||||||
|
<Reference Include="Microsoft.Extensions.CommandLineUtils.Sources" />
|
||||||
<Reference Include="Microsoft.Extensions.HostFactoryResolver.Sources" />
|
<Reference Include="Microsoft.Extensions.HostFactoryResolver.Sources" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="BuildX86" AfterTargets="Build" Condition=" '$(TargetFramework)' == 'net461' And '$(Platform)' != 'x86' ">
|
<Target Name="BuildX86" BeforeTargets="Build" Condition=" '$(TargetFramework)' == 'net461' And '$(Platform)' != 'x86' ">
|
||||||
<MSBuild Projects="$(MSBuildProjectFullPath)" Properties="TargetFramework=$(TargetFramework);Platform=x86" Targets="Build" />
|
<MSBuild Projects="$(MSBuildProjectFullPath)" Properties="TargetFramework=$(TargetFramework);Platform=x86" Targets="Build" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
|
||||||
{
|
|
||||||
internal static class ProductInfo
|
|
||||||
{
|
|
||||||
public static string GetVersion()
|
|
||||||
=> typeof(ProductInfo)
|
|
||||||
.Assembly
|
|
||||||
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
|
|
||||||
.InformationalVersion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +1,24 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Text;
|
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
|
||||||
using Microsoft.Extensions.ApiDescription.Tool.Commands;
|
using Microsoft.Extensions.ApiDescription.Tool.Commands;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
{
|
{
|
||||||
internal static class Program
|
internal class Program : ProgramBase
|
||||||
{
|
{
|
||||||
|
public Program(IConsole console) : base(console)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private static int Main(string[] args)
|
private static int Main(string[] args)
|
||||||
{
|
{
|
||||||
if (Console.IsOutputRedirected)
|
DebugHelper.HandleDebugSwitch(ref args);
|
||||||
{
|
|
||||||
Console.OutputEncoding = Encoding.UTF8;
|
|
||||||
}
|
|
||||||
|
|
||||||
var app = new CommandLineApplication()
|
var console = GetConsole();
|
||||||
{
|
|
||||||
FullName = Resources.CommandFullName,
|
|
||||||
Name = Resources.CommandFullName,
|
|
||||||
};
|
|
||||||
|
|
||||||
new GetDocumentCommand().Configure(app);
|
return new Program(console).Run(args, new GetDocumentCommand(console), throwOnUnexpectedArg: true);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return app.Execute(args);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
if (ex is CommandException || ex is CommandParsingException)
|
|
||||||
{
|
|
||||||
Reporter.WriteError(ex.Message);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Reporter.WriteError(ex.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
// 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.Text;
|
||||||
|
using Microsoft.Extensions.ApiDescription.Tool.Commands;
|
||||||
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
|
namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
|
{
|
||||||
|
internal abstract class ProgramBase
|
||||||
|
{
|
||||||
|
private readonly IConsole _console;
|
||||||
|
private readonly IReporter _reporter;
|
||||||
|
|
||||||
|
public ProgramBase(IConsole console)
|
||||||
|
{
|
||||||
|
_console = console ?? throw new ArgumentNullException(nameof(console));
|
||||||
|
_reporter = new ConsoleReporter(_console, verbose: false, quiet: false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static IConsole GetConsole()
|
||||||
|
{
|
||||||
|
var console = PhysicalConsole.Singleton;
|
||||||
|
if (console.IsOutputRedirected)
|
||||||
|
{
|
||||||
|
Console.OutputEncoding = Encoding.UTF8;
|
||||||
|
}
|
||||||
|
|
||||||
|
return console;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int Run(string[] args, CommandBase command, bool throwOnUnexpectedArg)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// AllowArgumentSeparator and continueAfterUnexpectedArg are ignored when !throwOnUnexpectedArg _except_
|
||||||
|
// AllowArgumentSeparator=true changes the help text (ignoring throwOnUnexpectedArg).
|
||||||
|
var app = new CommandLineApplication(throwOnUnexpectedArg, continueAfterUnexpectedArg: true)
|
||||||
|
{
|
||||||
|
AllowArgumentSeparator = !throwOnUnexpectedArg,
|
||||||
|
Error = _console.Error,
|
||||||
|
FullName = Resources.CommandFullName,
|
||||||
|
Name = Resources.CommandFullName,
|
||||||
|
Out = _console.Out,
|
||||||
|
};
|
||||||
|
|
||||||
|
command.Configure(app);
|
||||||
|
|
||||||
|
return app.Execute(args);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (ex is CommandException || ex is CommandParsingException)
|
||||||
|
{
|
||||||
|
_reporter.WriteError(ex.Message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_reporter.WriteError(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using static Microsoft.Extensions.ApiDescription.Tool.AnsiConstants;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
|
||||||
{
|
|
||||||
internal static class Reporter
|
|
||||||
{
|
|
||||||
private static AnsiTextWriter Error = new AnsiTextWriter(Console.Error);
|
|
||||||
private static AnsiTextWriter Out = new AnsiTextWriter(Console.Out);
|
|
||||||
|
|
||||||
public static bool IsVerbose { get; set; }
|
|
||||||
public static bool NoColor { get; set; }
|
|
||||||
public static bool PrefixOutput { get; set; }
|
|
||||||
|
|
||||||
public static string Colorize(string value, Func<string, string> colorizeFunc)
|
|
||||||
=> NoColor ? value : colorizeFunc(value);
|
|
||||||
|
|
||||||
public static void WriteError(string message)
|
|
||||||
=> WriteLine(Prefix("error: ", Colorize(message, x => Bold + Red + x + Reset)), isError: true);
|
|
||||||
|
|
||||||
public static void WriteWarning(string message)
|
|
||||||
=> WriteLine(Prefix("warn: ", Colorize(message, x => Bold + Yellow + x + Reset)));
|
|
||||||
|
|
||||||
public static void WriteInformation(string message)
|
|
||||||
=> WriteLine(Prefix("info: ", message));
|
|
||||||
|
|
||||||
public static void WriteData(string message)
|
|
||||||
=> WriteLine(Prefix("data: ", Colorize(message, x => Bold + Gray + x + Reset)));
|
|
||||||
|
|
||||||
public static void WriteVerbose(string message)
|
|
||||||
{
|
|
||||||
if (IsVerbose)
|
|
||||||
{
|
|
||||||
WriteLine(Prefix("verbose: ", Colorize(message, x => Gray + x + Reset)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string Prefix(string prefix, string value)
|
|
||||||
=> PrefixOutput
|
|
||||||
? string.Join(
|
|
||||||
Environment.NewLine,
|
|
||||||
value.Split(new[] { Environment.NewLine }, StringSplitOptions.None).Select(l => prefix + l))
|
|
||||||
: value;
|
|
||||||
|
|
||||||
private static void WriteLine(string value, bool isError = false)
|
|
||||||
{
|
|
||||||
if (NoColor)
|
|
||||||
{
|
|
||||||
(isError ? Console.Error : Console.Out).WriteLine(value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
(isError ? Error : Out).WriteLine(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
// 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.Linq;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
|
namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
|
{
|
||||||
|
internal static class ReporterExtensions
|
||||||
|
{
|
||||||
|
public static bool PrefixOutput { get; set; }
|
||||||
|
|
||||||
|
public static void WriteError(this IReporter reporter, string message)
|
||||||
|
=> reporter.Error(Prefix("error: ", message));
|
||||||
|
|
||||||
|
public static void WriteWarning(this IReporter reporter, string message)
|
||||||
|
=> reporter.Warn(Prefix("warn: ", message));
|
||||||
|
|
||||||
|
public static void WriteInformation(this IReporter reporter, string message)
|
||||||
|
=> reporter.Output(Prefix("info: ", message));
|
||||||
|
|
||||||
|
public static void WriteVerbose(this IReporter reporter, string message)
|
||||||
|
=> reporter.Verbose(Prefix("verbose: ", message));
|
||||||
|
|
||||||
|
private static string Prefix(string prefix, string value)
|
||||||
|
{
|
||||||
|
if (PrefixOutput)
|
||||||
|
{
|
||||||
|
return string.Join(
|
||||||
|
Environment.NewLine,
|
||||||
|
value
|
||||||
|
.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
|
||||||
|
.Select(l => prefix + l));
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -123,9 +123,6 @@
|
||||||
<data name="MissingOption" xml:space="preserve">
|
<data name="MissingOption" xml:space="preserve">
|
||||||
<value>Missing required option '--{0}'.</value>
|
<value>Missing required option '--{0}'.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NoColorDescription" xml:space="preserve">
|
|
||||||
<value>Do not colorize console output.</value>
|
|
||||||
</data>
|
|
||||||
<data name="OutputDescription" xml:space="preserve">
|
<data name="OutputDescription" xml:space="preserve">
|
||||||
<value>The directory where the document files should be written. Required.</value>
|
<value>The directory where the document files should be written. Required.</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
@ -191,4 +188,10 @@
|
||||||
<value>Unable to find any registered documents. Update the 'Startup' class to register a document.</value>
|
<value>Unable to find any registered documents. Update the 'Startup' class to register a document.</value>
|
||||||
<comment>Do not translate 'Startup'</comment>
|
<comment>Do not translate 'Startup'</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="QuietAndVerboseSpecified" xml:space="preserve">
|
||||||
|
<value>Cannot specify both '--quiet' and '--verbose' options.</value>
|
||||||
|
</data>
|
||||||
|
<data name="QuietDescription" xml:space="preserve">
|
||||||
|
<value>Suppresses all output except warnings and errors.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -22,6 +22,17 @@ namespace Microsoft.Extensions.CommandLineUtils
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
public static CommandOption Option(this CommandLineApplication command, string template, string description)
|
||||||
|
=> command.Option(
|
||||||
|
template,
|
||||||
|
description,
|
||||||
|
template.IndexOf('<') != -1
|
||||||
|
? template.EndsWith(">...") ? CommandOptionType.MultipleValue : CommandOptionType.SingleValue
|
||||||
|
: CommandOptionType.NoValue);
|
||||||
|
|
||||||
|
public static void VersionOptionFromAssemblyAttributes(this CommandLineApplication app)
|
||||||
|
=> app.VersionOptionFromAssemblyAttributes(typeof(CommandLineApplicationExtensions).Assembly);
|
||||||
|
|
||||||
public static void VersionOptionFromAssemblyAttributes(this CommandLineApplication app, Assembly assembly)
|
public static void VersionOptionFromAssemblyAttributes(this CommandLineApplication app, Assembly assembly)
|
||||||
=> app.VersionOption("--version", GetInformationalVersion(assembly));
|
=> app.VersionOption("--version", GetInformationalVersion(assembly));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Tools.Internal
|
||||||
{
|
{
|
||||||
public class ConsoleReporter : IReporter
|
public class ConsoleReporter : IReporter
|
||||||
{
|
{
|
||||||
private object _writeLock = new object();
|
private readonly object _writeLock = new object();
|
||||||
|
|
||||||
public ConsoleReporter(IConsole console)
|
public ConsoleReporter(IConsole console)
|
||||||
: this(console, verbose: false, quiet: false)
|
: this(console, verbose: false, quiet: false)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -6,7 +6,8 @@ using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.Versioning;
|
using System.Runtime.Versioning;
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
|
@ -19,6 +20,10 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
private readonly ProjectOptions _projectOptions = new ProjectOptions();
|
private readonly ProjectOptions _projectOptions = new ProjectOptions();
|
||||||
private IList<string> _args;
|
private IList<string> _args;
|
||||||
|
|
||||||
|
public InvokeCommand(IConsole console) : base(console)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public override void Configure(CommandLineApplication command)
|
public override void Configure(CommandLineApplication command)
|
||||||
{
|
{
|
||||||
base.Configure(command);
|
base.Configure(command);
|
||||||
|
|
@ -75,7 +80,7 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
targetFramework.Version));
|
targetFramework.Version));
|
||||||
}
|
}
|
||||||
|
|
||||||
executable = "dotnet";
|
executable = DotNetMuxer.MuxerPathOrDefault();
|
||||||
toolsDirectory = Path.Combine(thisPath, "netcoreapp2.1");
|
toolsDirectory = Path.Combine(thisPath, "netcoreapp2.1");
|
||||||
|
|
||||||
args.Add("exec");
|
args.Add("exec");
|
||||||
|
|
@ -133,22 +138,22 @@ namespace Microsoft.Extensions.ApiDescription.Tool.Commands
|
||||||
args.Add("--tools-directory");
|
args.Add("--tools-directory");
|
||||||
args.Add(toolsDirectory);
|
args.Add(toolsDirectory);
|
||||||
|
|
||||||
if (Reporter.IsVerbose)
|
if (ReporterExtensions.PrefixOutput)
|
||||||
{
|
|
||||||
args.Add("--verbose");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Reporter.NoColor)
|
|
||||||
{
|
|
||||||
args.Add("--no-color");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Reporter.PrefixOutput)
|
|
||||||
{
|
{
|
||||||
args.Add("--prefix-output");
|
args.Add("--prefix-output");
|
||||||
}
|
}
|
||||||
|
|
||||||
return Exe.Run(executable, args);
|
if (IsQuiet)
|
||||||
|
{
|
||||||
|
args.Add("--quiet");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsVerbose)
|
||||||
|
{
|
||||||
|
args.Add("--verbose");
|
||||||
|
}
|
||||||
|
|
||||||
|
return Exe.Run(executable, args, Reporter);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Text;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
{
|
{
|
||||||
|
|
@ -13,12 +14,13 @@ namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
public static int Run(
|
public static int Run(
|
||||||
string executable,
|
string executable,
|
||||||
IReadOnlyList<string> args,
|
IReadOnlyList<string> args,
|
||||||
|
IReporter reporter,
|
||||||
string workingDirectory = null,
|
string workingDirectory = null,
|
||||||
bool interceptOutput = false)
|
bool interceptOutput = false)
|
||||||
{
|
{
|
||||||
var arguments = ToArguments(args);
|
var arguments = ArgumentEscaper.EscapeAndConcatenate(args);
|
||||||
|
|
||||||
Reporter.WriteVerbose(executable + " " + arguments);
|
reporter.WriteVerbose(executable + " " + arguments);
|
||||||
|
|
||||||
var startInfo = new ProcessStartInfo
|
var startInfo = new ProcessStartInfo
|
||||||
{
|
{
|
||||||
|
|
@ -32,100 +34,30 @@ namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
startInfo.WorkingDirectory = workingDirectory;
|
startInfo.WorkingDirectory = workingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var process = Process.Start(startInfo))
|
using var process = Process.Start(startInfo);
|
||||||
|
if (interceptOutput)
|
||||||
{
|
{
|
||||||
if (interceptOutput)
|
string line;
|
||||||
|
while ((line = process.StandardOutput.ReadLine()) != null)
|
||||||
{
|
{
|
||||||
string line;
|
reporter.WriteVerbose(line);
|
||||||
while ((line = process.StandardOutput.ReadLine()) != null)
|
|
||||||
{
|
|
||||||
Reporter.WriteVerbose(line);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Follow precedent set in Razor integration tests and ensure process events and output are complete.
|
|
||||||
// https://github.com/aspnet/Razor/blob/d719920fdcc7d1db3a6f74cd5404d66fa098f057/test/Microsoft.NET.Sdk.Razor.Test/IntegrationTests/MSBuildProcessManager.cs#L91-L102
|
|
||||||
// Timeout is double how long the inside man waits for the IDocumentProcessor to wrap up.
|
|
||||||
if (!process.WaitForExit((int)(TimeSpan.FromMinutes(2).TotalMilliseconds)))
|
|
||||||
{
|
|
||||||
process.Kill();
|
|
||||||
|
|
||||||
// Should be unreachable in almost every case.
|
|
||||||
throw new TimeoutException($"Process {executable} timed out after 2 minutes.");
|
|
||||||
}
|
|
||||||
|
|
||||||
process.WaitForExit();
|
|
||||||
|
|
||||||
return process.ExitCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string ToArguments(IReadOnlyList<string> args)
|
|
||||||
{
|
|
||||||
var builder = new StringBuilder();
|
|
||||||
for (var i = 0; i < args.Count; i++)
|
|
||||||
{
|
|
||||||
if (i != 0)
|
|
||||||
{
|
|
||||||
builder.Append(" ");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[i].IndexOf(' ') == -1)
|
|
||||||
{
|
|
||||||
builder.Append(args[i]);
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.Append("\"");
|
|
||||||
|
|
||||||
var pendingBackslashes = 0;
|
|
||||||
for (var j = 0; j < args[i].Length; j++)
|
|
||||||
{
|
|
||||||
switch (args[i][j])
|
|
||||||
{
|
|
||||||
case '\"':
|
|
||||||
if (pendingBackslashes != 0)
|
|
||||||
{
|
|
||||||
builder.Append('\\', pendingBackslashes * 2);
|
|
||||||
pendingBackslashes = 0;
|
|
||||||
}
|
|
||||||
builder.Append("\\\"");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '\\':
|
|
||||||
pendingBackslashes++;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
if (pendingBackslashes != 0)
|
|
||||||
{
|
|
||||||
if (pendingBackslashes == 1)
|
|
||||||
{
|
|
||||||
builder.Append("\\");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
builder.Append('\\', pendingBackslashes * 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pendingBackslashes = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.Append(args[i][j]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pendingBackslashes != 0)
|
|
||||||
{
|
|
||||||
builder.Append('\\', pendingBackslashes * 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.Append("\"");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return builder.ToString();
|
// Follow precedent set in Razor integration tests and ensure process events and output are complete.
|
||||||
|
// https://github.com/aspnet/Razor/blob/d719920fdcc7d1db3a6f74cd5404d66fa098f057/test/Microsoft.NET.Sdk.Razor.Test/IntegrationTests/MSBuildProcessManager.cs#L91-L102
|
||||||
|
// Timeout is double how long the inside man waits for the IDocumentProcessor to wrap up.
|
||||||
|
if (!process.WaitForExit((int)(TimeSpan.FromMinutes(2).TotalMilliseconds)))
|
||||||
|
{
|
||||||
|
process.Kill();
|
||||||
|
|
||||||
|
// Should be unreachable in almost every case.
|
||||||
|
throw new TimeoutException($"Process {executable} timed out after 2 minutes.");
|
||||||
|
}
|
||||||
|
|
||||||
|
process.WaitForExit();
|
||||||
|
|
||||||
|
return process.ExitCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,41 +1,24 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
|
||||||
using Microsoft.Extensions.ApiDescription.Tool.Commands;
|
using Microsoft.Extensions.ApiDescription.Tool.Commands;
|
||||||
|
using Microsoft.Extensions.Tools.Internal;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
{
|
{
|
||||||
internal static class Program
|
internal class Program : ProgramBase
|
||||||
{
|
{
|
||||||
|
public Program(IConsole console) : base(console)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private static int Main(string[] args)
|
private static int Main(string[] args)
|
||||||
{
|
{
|
||||||
var app = new CommandLineApplication(throwOnUnexpectedArg: false)
|
DebugHelper.HandleDebugSwitch(ref args);
|
||||||
{
|
|
||||||
FullName = Resources.CommandFullName,
|
|
||||||
Name = Resources.CommandFullName,
|
|
||||||
};
|
|
||||||
|
|
||||||
new InvokeCommand().Configure(app);
|
var console = GetConsole();
|
||||||
|
|
||||||
try
|
return new Program(console).Run(args, new InvokeCommand(console), throwOnUnexpectedArg: false);
|
||||||
{
|
|
||||||
return app.Execute(args);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
if (ex is CommandException || ex is CommandParsingException)
|
|
||||||
{
|
|
||||||
Reporter.WriteError(ex.Message);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Reporter.WriteError(ex.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using Microsoft.DotNet.Cli.CommandLine;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.ApiDescription.Tool
|
namespace Microsoft.Extensions.ApiDescription.Tool
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
various data types are done through the TypeConverter classes
|
various data types are done through the TypeConverter classes
|
||||||
associated with the data types.
|
associated with the data types.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">2.0</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
|
|
@ -26,36 +26,36 @@
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
<comment>This is a comment</comment>
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
name/value pairs.
|
name/value pairs.
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
Each data row contains a name, and value. The row also contains a
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
text/value conversion through the TypeConverter architecture.
|
text/value conversion through the TypeConverter architecture.
|
||||||
Classes that don't support this are serialized and stored with the
|
Classes that don't support this are serialized and stored with the
|
||||||
mimetype set.
|
mimetype set.
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
The mimetype is used for serialized objects, and tells the
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
read any of the formats listed below.
|
read any of the formats listed below.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
value : The object must be serialized into a byte array
|
value : The object must be serialized into a byte array
|
||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
@ -129,9 +129,6 @@
|
||||||
<data name="NETStandardProject" xml:space="preserve">
|
<data name="NETStandardProject" xml:space="preserve">
|
||||||
<value>Project '{0}' targets framework '.NETStandard'. There is no runtime associated with this framework and projects targeting it cannot be executed directly. To use the dotnet-getdocument tool with this project, update this project to target .NET Core and / or .NET Framework.</value>
|
<value>Project '{0}' targets framework '.NETStandard'. There is no runtime associated with this framework and projects targeting it cannot be executed directly. To use the dotnet-getdocument tool with this project, update this project to target .NET Core and / or .NET Framework.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NoColorDescription" xml:space="preserve">
|
|
||||||
<value>Do not colorize console output.</value>
|
|
||||||
</data>
|
|
||||||
<data name="PrefixDescription" xml:space="preserve">
|
<data name="PrefixDescription" xml:space="preserve">
|
||||||
<value>Prefix console output with logging level.</value>
|
<value>Prefix console output with logging level.</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
@ -159,4 +156,10 @@
|
||||||
<data name="AssemblyDescription" xml:space="preserve">
|
<data name="AssemblyDescription" xml:space="preserve">
|
||||||
<value>The assembly path to use. Required.</value>
|
<value>The assembly path to use. Required.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="QuietAndVerboseSpecified" xml:space="preserve">
|
||||||
|
<value>Cannot specify both '--quiet' and '--verbose' options.</value>
|
||||||
|
</data>
|
||||||
|
<data name="QuietDescription" xml:space="preserve">
|
||||||
|
<value>Suppresses all output except warnings and errors.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<AssemblyName>dotnet-getdocument</AssemblyName>
|
<AssemblyName>dotnet-getdocument</AssemblyName>
|
||||||
<Description>GetDocument Command-line Tool outside man</Description>
|
<Description>GetDocument Command-line Tool outside man</Description>
|
||||||
|
|
@ -12,14 +12,14 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="../../GetDocumentInsider/src/Ansi*.cs" />
|
<Compile Include="$(ToolSharedSourceRoot)CommandLine/**/*.cs" />
|
||||||
<Compile Include="../../GetDocumentInsider/src/CommandException.cs" />
|
<Compile Include="../../GetDocumentInsider/src/CommandException.cs" />
|
||||||
<Compile Include="../../GetDocumentInsider/src/CommandLineUtils/*.cs" LinkBase="CommandLineUtils" />
|
|
||||||
<Compile Include="../../GetDocumentInsider/src/Commands/CommandBase.cs" Link="Commands/CommandBase.cs" />
|
<Compile Include="../../GetDocumentInsider/src/Commands/CommandBase.cs" Link="Commands/CommandBase.cs" />
|
||||||
<Compile Include="../../GetDocumentInsider/src/Commands/HelpCommandBase.cs" Link="Commands/HelpCommandBase.cs" />
|
<Compile Include="../../GetDocumentInsider/src/Commands/HelpCommandBase.cs" Link="Commands/HelpCommandBase.cs" />
|
||||||
<Compile Include="../../GetDocumentInsider/src/ProductInfo.cs" />
|
<Compile Include="../../GetDocumentInsider/src/ProgramBase.cs" />
|
||||||
<Compile Include="../../GetDocumentInsider/src/Reporter.cs" />
|
<Compile Include="../../GetDocumentInsider/src/ReporterExtensions.cs" />
|
||||||
|
|
||||||
|
<Reference Include="Microsoft.Extensions.CommandLineUtils.Sources" />
|
||||||
<Reference Include="Newtonsoft.Json" />
|
<Reference Include="Newtonsoft.Json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue