diff --git a/NuGet.config b/NuGet.config index 4b821f800992e3c37517c61bef0dc570f13f4abf..76ccfd79eeeebfe4a90414e84e23dfc34b1fed17 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,8 +4,10 @@ <clear /> <!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.--> <!-- Begin: Package sources from dotnet-runtime --> + <add key="darc-int-dotnet-runtime-be98e88" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-be98e88c/nuget/v3/index.json" /> <!-- End: Package sources from dotnet-runtime --> <!-- Begin: Package sources from dotnet-efcore --> + <add key="darc-int-dotnet-efcore-aca50ae" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-efcore-aca50aef/nuget/v3/index.json" /> <!-- End: Package sources from dotnet-efcore --> <!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.--> <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" /> @@ -25,8 +27,10 @@ <clear /> <!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.--> <!-- Begin: Package sources from dotnet-efcore --> + <add key="darc-int-dotnet-efcore-aca50ae" value="true" /> <!-- End: Package sources from dotnet-efcore --> <!-- Begin: Package sources from dotnet-runtime --> + <add key="darc-int-dotnet-runtime-be98e88" value="true" /> <!-- End: Package sources from dotnet-runtime --> <!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.--> </disabledPackageSources> diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4e4a2e201fa0ebd54059f018db7a9b92392b9e0b..1982f784e8ce57d82ebe9d2b9f94311b38221bb2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> <Dependencies> <ProductDependencies> - <Dependency Name="dotnet-ef" Version="6.0.3"> + <Dependency Name="dotnet-ef" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> - <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="6.0.3"> + <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri> - <Sha>0257e5c118d78ce1b4d5e514779240c929c4b8aa</Sha> + <Sha>aca50aef8604cc23910d18edce820e0fa7c61910</Sha> </Dependency> <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="6.0.0"> <Uri>https://github.com/dotnet/runtime</Uri> @@ -177,9 +177,9 @@ <Uri>https://github.com/dotnet/runtime</Uri> <Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha> </Dependency> - <Dependency Name="Microsoft.Internal.Runtime.AspNetCore.Transport" Version="6.0.3-servicing.22123.9"> + <Dependency Name="Microsoft.Internal.Runtime.AspNetCore.Transport" Version="6.0.4-servicing.22164.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> <Dependency Name="System.Diagnostics.DiagnosticSource" Version="6.0.0"> <Uri>https://github.com/dotnet/runtime</Uri> @@ -201,9 +201,9 @@ <Uri>https://github.com/dotnet/runtime</Uri> <Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha> </Dependency> - <Dependency Name="System.Net.Http.WinHttpHandler" Version="6.0.0"> - <Uri>https://github.com/dotnet/runtime</Uri> - <Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha> + <Dependency Name="System.Net.Http.WinHttpHandler" Version="6.0.1"> + <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> <Dependency Name="System.Reflection.Metadata" Version="6.0.1"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> @@ -233,9 +233,9 @@ <Uri>https://github.com/dotnet/runtime</Uri> <Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha> </Dependency> - <Dependency Name="System.Text.Json" Version="6.0.2"> + <Dependency Name="System.Text.Json" Version="6.0.3"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>839cdfb0ecca5e0be3dbccd926e7651ef50fdf10</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> <Dependency Name="System.Threading.Channels" Version="6.0.0"> <Uri>https://github.com/dotnet/runtime</Uri> @@ -245,40 +245,40 @@ <Uri>https://github.com/dotnet/runtime</Uri> <Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha> </Dependency> - <Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.3"> + <Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> - <Dependency Name="Microsoft.NET.Runtime.MonoAOTCompiler.Task" Version="6.0.3"> + <Dependency Name="Microsoft.NET.Runtime.MonoAOTCompiler.Task" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> - <Dependency Name="Microsoft.NET.Runtime.WebAssembly.Sdk" Version="6.0.3"> + <Dependency Name="Microsoft.NET.Runtime.WebAssembly.Sdk" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> <!-- Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime. All Runtime.$rid packages should have the same version. --> - <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.3"> + <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> - <Dependency Name="Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm" Version="6.0.3"> + <Dependency Name="Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm" Version="6.0.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> - <Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="6.0.3-servicing.22123.9"> + <Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="6.0.4-servicing.22164.4"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> </ProductDependencies> <ToolsetDependencies> <!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 --> - <Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.2"> + <Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.3"> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> - <Sha>c24d9a9c91c5d04b7b4de71f1a9f33ac35e09663</Sha> + <Sha>be98e88c760526452df94ef452fff4602fb5bded</Sha> </Dependency> <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.22206.7"> <Uri>https://github.com/dotnet/arcade</Uri> diff --git a/eng/Versions.props b/eng/Versions.props index 5fc7bdc4148adc2a9460da178d82bd63108eec77..d7c4d0a70e889b5dd16964f006e3a2b3cb79599b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ <PropertyGroup Label="Automated"> <!-- Packages from dotnet/runtime --> <MicrosoftExtensionsDependencyModelVersion>6.0.0</MicrosoftExtensionsDependencyModelVersion> - <MicrosoftNETCoreAppRefVersion>6.0.3</MicrosoftNETCoreAppRefVersion> - <MicrosoftNETCoreAppRuntimewinx64Version>6.0.3</MicrosoftNETCoreAppRuntimewinx64Version> - <MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>6.0.3</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion> - <MicrosoftNETRuntimeWebAssemblySdkVersion>6.0.3</MicrosoftNETRuntimeWebAssemblySdkVersion> - <MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>6.0.3</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion> - <MicrosoftNETCoreBrowserDebugHostTransportVersion>6.0.3-servicing.22123.9</MicrosoftNETCoreBrowserDebugHostTransportVersion> + <MicrosoftNETCoreAppRefVersion>6.0.4</MicrosoftNETCoreAppRefVersion> + <MicrosoftNETCoreAppRuntimewinx64Version>6.0.4</MicrosoftNETCoreAppRuntimewinx64Version> + <MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>6.0.4</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion> + <MicrosoftNETRuntimeWebAssemblySdkVersion>6.0.4</MicrosoftNETRuntimeWebAssemblySdkVersion> + <MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>6.0.4</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion> + <MicrosoftNETCoreBrowserDebugHostTransportVersion>6.0.4-servicing.22164.4</MicrosoftNETCoreBrowserDebugHostTransportVersion> <MicrosoftExtensionsCachingAbstractionsVersion>6.0.0</MicrosoftExtensionsCachingAbstractionsVersion> <MicrosoftExtensionsCachingMemoryVersion>6.0.1</MicrosoftExtensionsCachingMemoryVersion> <MicrosoftExtensionsConfigurationAbstractionsVersion>6.0.0</MicrosoftExtensionsConfigurationAbstractionsVersion> @@ -103,13 +103,13 @@ <MicrosoftExtensionsOptionsDataAnnotationsVersion>6.0.0</MicrosoftExtensionsOptionsDataAnnotationsVersion> <MicrosoftExtensionsOptionsVersion>6.0.0</MicrosoftExtensionsOptionsVersion> <MicrosoftExtensionsPrimitivesVersion>6.0.0</MicrosoftExtensionsPrimitivesVersion> - <MicrosoftInternalRuntimeAspNetCoreTransportVersion>6.0.3-servicing.22123.9</MicrosoftInternalRuntimeAspNetCoreTransportVersion> + <MicrosoftInternalRuntimeAspNetCoreTransportVersion>6.0.4-servicing.22164.4</MicrosoftInternalRuntimeAspNetCoreTransportVersion> <SystemDiagnosticsDiagnosticSourceVersion>6.0.0</SystemDiagnosticsDiagnosticSourceVersion> <SystemDiagnosticsEventLogVersion>6.0.0</SystemDiagnosticsEventLogVersion> <SystemDirectoryServicesProtocolsVersion>6.0.1</SystemDirectoryServicesProtocolsVersion> <SystemIOPipelinesVersion>6.0.2</SystemIOPipelinesVersion> <SystemNetHttpJsonVersion>6.0.0</SystemNetHttpJsonVersion> - <SystemNetHttpWinHttpHandlerVersion>6.0.0</SystemNetHttpWinHttpHandlerVersion> + <SystemNetHttpWinHttpHandlerVersion>6.0.1</SystemNetHttpWinHttpHandlerVersion> <SystemReflectionMetadataVersion>6.0.1</SystemReflectionMetadataVersion> <SystemResourcesExtensionsVersion>6.0.0</SystemResourcesExtensionsVersion> <SystemRuntimeCompilerServicesUnsafeVersion>6.0.0</SystemRuntimeCompilerServicesUnsafeVersion> @@ -117,19 +117,19 @@ <SystemSecurityCryptographyXmlVersion>6.0.0</SystemSecurityCryptographyXmlVersion> <SystemServiceProcessServiceControllerVersion>6.0.0</SystemServiceProcessServiceControllerVersion> <SystemTextEncodingsWebVersion>6.0.0</SystemTextEncodingsWebVersion> - <SystemTextJsonVersion>6.0.2</SystemTextJsonVersion> + <SystemTextJsonVersion>6.0.3</SystemTextJsonVersion> <SystemThreadingChannelsVersion>6.0.0</SystemThreadingChannelsVersion> <!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 --> - <MicrosoftNETCorePlatformsVersion>6.0.2</MicrosoftNETCorePlatformsVersion> + <MicrosoftNETCorePlatformsVersion>6.0.3</MicrosoftNETCorePlatformsVersion> <!-- Packages from dotnet/efcore --> - <dotnetefVersion>6.0.3</dotnetefVersion> - <MicrosoftEntityFrameworkCoreInMemoryVersion>6.0.3</MicrosoftEntityFrameworkCoreInMemoryVersion> - <MicrosoftEntityFrameworkCoreRelationalVersion>6.0.3</MicrosoftEntityFrameworkCoreRelationalVersion> - <MicrosoftEntityFrameworkCoreSqliteVersion>6.0.3</MicrosoftEntityFrameworkCoreSqliteVersion> - <MicrosoftEntityFrameworkCoreSqlServerVersion>6.0.3</MicrosoftEntityFrameworkCoreSqlServerVersion> - <MicrosoftEntityFrameworkCoreToolsVersion>6.0.3</MicrosoftEntityFrameworkCoreToolsVersion> - <MicrosoftEntityFrameworkCoreVersion>6.0.3</MicrosoftEntityFrameworkCoreVersion> - <MicrosoftEntityFrameworkCoreDesignVersion>6.0.3</MicrosoftEntityFrameworkCoreDesignVersion> + <dotnetefVersion>6.0.4</dotnetefVersion> + <MicrosoftEntityFrameworkCoreInMemoryVersion>6.0.4</MicrosoftEntityFrameworkCoreInMemoryVersion> + <MicrosoftEntityFrameworkCoreRelationalVersion>6.0.4</MicrosoftEntityFrameworkCoreRelationalVersion> + <MicrosoftEntityFrameworkCoreSqliteVersion>6.0.4</MicrosoftEntityFrameworkCoreSqliteVersion> + <MicrosoftEntityFrameworkCoreSqlServerVersion>6.0.4</MicrosoftEntityFrameworkCoreSqlServerVersion> + <MicrosoftEntityFrameworkCoreToolsVersion>6.0.4</MicrosoftEntityFrameworkCoreToolsVersion> + <MicrosoftEntityFrameworkCoreVersion>6.0.4</MicrosoftEntityFrameworkCoreVersion> + <MicrosoftEntityFrameworkCoreDesignVersion>6.0.4</MicrosoftEntityFrameworkCoreDesignVersion> <!-- Packages from dotnet/arcade --> <MicrosoftDotNetBuildTasksInstallersVersion>6.0.0-beta.22206.7</MicrosoftDotNetBuildTasksInstallersVersion> <MicrosoftDotNetBuildTasksTemplatingVersion>6.0.0-beta.22206.7</MicrosoftDotNetBuildTasksTemplatingVersion> diff --git a/eng/helix/helix.proj b/eng/helix/helix.proj index b9b16f9f858fc060b3b163bee1a7454a5aecf182..f1f7e4a3d42e09b2a9b0e99865d3fe50b415a264 100644 --- a/eng/helix/helix.proj +++ b/eng/helix/helix.proj @@ -10,7 +10,7 @@ not HelixCorrelationPayload. --> <PropertyGroup> - <IsPublicRuntime>true</IsPublicRuntime> + <IsPublicRuntime>false</IsPublicRuntime> </PropertyGroup> <PropertyGroup> diff --git a/src/DefaultBuilder/src/WebApplicationBuilder.cs b/src/DefaultBuilder/src/WebApplicationBuilder.cs index 19e8c0661c848aa9dcc663671fdfbe2e59fc664d..e258cb29834907830348fd0645f64c8d4a84b4a9 100644 --- a/src/DefaultBuilder/src/WebApplicationBuilder.cs +++ b/src/DefaultBuilder/src/WebApplicationBuilder.cs @@ -22,6 +22,7 @@ namespace Microsoft.AspNetCore.Builder private readonly BootstrapHostBuilder _bootstrapHostBuilder; private readonly WebApplicationServiceCollection _services = new(); private readonly List<KeyValuePair<string, string>> _hostConfigurationValues; + private readonly ConfigurationManager _hostConfigurationManager = new(); private WebApplication? _builtApplication; @@ -76,6 +77,8 @@ namespace Microsoft.AspNetCore.Builder }); Configuration = new(); + // This is chained as the first configuration source in Configuration so host config can be added later without overriding app config. + Configuration.AddConfiguration(_hostConfigurationManager); // Collect the hosted services separately since we want those to run after the user's hosted services _services.TrackHostedServices = true; @@ -194,6 +197,9 @@ namespace Microsoft.AspNetCore.Builder // to the new one. This allows code that has references to the service collection to still function. _services.InnerCollection = services; + // Keep any configuration sources added before the TrackingChainedConfigurationSource (namely host configuration from _hostConfigurationValues) + // from overriding config values set via Configuration by inserting them at beginning using _hostConfigurationValues. + var beforeChainedConfig = true; var hostBuilderProviders = ((IConfigurationRoot)context.Configuration).Providers; if (!hostBuilderProviders.Contains(chainedConfigSource.BuiltProvider)) @@ -201,15 +207,22 @@ namespace Microsoft.AspNetCore.Builder // Something removed the _hostBuilder's TrackingChainedConfigurationSource pointing back to the ConfigurationManager. // This is likely a test using WebApplicationFactory. Replicate the effect by clearing the ConfingurationManager sources. ((IConfigurationBuilder)Configuration).Sources.Clear(); + beforeChainedConfig = false; } - // Make builder.Configuration match the final configuration. To do that, we add the additional - // providers in the inner _hostBuilders's Configuration to the ConfigurationManager. + // Make the ConfigurationManager match the final _hostBuilder's configuration. To do that, we add the additional providers + // to the inner _hostBuilders's configuration to the ConfigurationManager. We wrap the existing provider in a + // configuration source to avoid rebuilding or reloading the already added configuration sources. foreach (var provider in hostBuilderProviders) { - if (!ReferenceEquals(provider, chainedConfigSource.BuiltProvider)) + if (ReferenceEquals(provider, chainedConfigSource.BuiltProvider)) { - ((IConfigurationBuilder)Configuration).Add(new ConfigurationProviderSource(provider)); + beforeChainedConfig = false; + } + else + { + IConfigurationBuilder configBuilder = beforeChainedConfig ? _hostConfigurationManager : Configuration; + configBuilder.Add(new ConfigurationProviderSource(provider)); } } }); diff --git a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/WebApplicationTests.cs b/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/WebApplicationTests.cs index 8a29e17b21ba560067278e7c3acaf7e14a83e7eb..8f724498dde73a1751abe241468ca8676ad8b837 100644 --- a/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/WebApplicationTests.cs +++ b/src/DefaultBuilder/test/Microsoft.AspNetCore.Tests/WebApplicationTests.cs @@ -129,6 +129,33 @@ namespace Microsoft.AspNetCore.Tests await runTask; } + [Fact] + public async Task WebApplicationWebHostUseUrls_OverridesDefaultHostingConfiguration() + { + var builder = new WebApplicationBuilder(new(), bootstrapBuilder => + { + bootstrapBuilder.ConfigureHostConfiguration(configBuilder => + { + configBuilder.AddInMemoryCollection(new Dictionary<string, string> + { + [WebHostDefaults.ServerUrlsKey] = "http://localhost:5000", + }); + }); + }); + + builder.WebHost.UseUrls("http://localhost:5001"); + + var urls = new List<string>(); + var server = new MockAddressesServer(urls); + builder.Services.AddSingleton<IServer>(server); + await using var app = builder.Build(); + + await app.StartAsync(); + + var url = Assert.Single(urls); + Assert.Equal("http://localhost:5001", url); + } + [Fact] public async Task WebApplicationUrls_ThrowsInvalidOperationExceptionIfThereIsNoIServerAddressesFeature() { diff --git a/src/Installers/Rpm/Directory.Build.targets b/src/Installers/Rpm/Directory.Build.targets index 4fe38e018bc1c93b6d34d4d8f5e8d94b9d0dcbed..07d01bb46ed6dd51a01493aa32bcd0527d0695b2 100644 --- a/src/Installers/Rpm/Directory.Build.targets +++ b/src/Installers/Rpm/Directory.Build.targets @@ -50,6 +50,14 @@ <ChangeLogProps>$(ChangeLogProps);PACKAGE_VERSION=$(PackageVersion)</ChangeLogProps> <ChangeLogProps>$(ChangeLogProps);PACKAGE_REVISION=$(PackageRevision)</ChangeLogProps> + <!-- + RpmArch is used to match our naming conventions but + https://fedoraproject.org/wiki/Architectures#Primary_Architectures lists the canonical names `fpm` and + `rpmbuild` expect on the command line. Aliases like ARMv8, arm-64 and amd64 should also work. + --> + <CommandLineArch Condition=" '$(TargetArchitecture)' == 'x64' ">x86_64</CommandLineArch> + <CommandLineArch Condition=" '$(TargetArchitecture)' == 'arm64' ">aarch64</CommandLineArch> + <GeneratedChangeLog>$(IntermediateOutputPath)changelog</GeneratedChangeLog> </PropertyGroup> @@ -64,7 +72,7 @@ <FpmArgs Include="--package=$(TargetPath)" /> <FpmArgs Include="--version=$(PackageVersion)" /> <FpmArgs Include="--iteration=$(PackageRevision)" /> - <FpmArgs Include="--architecture=$(RpmArch)" /> + <FpmArgs Include="--architecture=$(CommandLineArch)" /> <FpmArgs Include="--depends="%(RpmDependency.Identity) >= %(RpmDependency.Version)"" Condition=" '%(RpmDependency.Identity)' != '' " /> <FpmArgs Include="--rpm-changelog="$(GeneratedChangeLog)"" /> <FpmArgs Include="--rpm-summary="$(PackageSummary)"" />