From 48a9013e089a8d15a3314c83e14679d789fd894d Mon Sep 17 00:00:00 2001 From: "Chris Ross (ASP.NET)" Date: Thu, 24 May 2018 11:18:31 -0700 Subject: [PATCH] Do not overwrite ContentRoot #267 --- src/Microsoft.AspNetCore/WebHost.cs | 20 +++++++++++-------- .../WebHostFunctionalTests.cs | 4 ++-- .../CreateDefaultBuilderApp/Program.cs | 5 +++-- .../CreateDefaultBuilderOfTApp/Startup.cs | 5 +++-- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/Microsoft.AspNetCore/WebHost.cs b/src/Microsoft.AspNetCore/WebHost.cs index 8c49d2eb23..987d9afd2c 100644 --- a/src/Microsoft.AspNetCore/WebHost.cs +++ b/src/Microsoft.AspNetCore/WebHost.cs @@ -149,12 +149,21 @@ namespace Microsoft.AspNetCore /// The initialized . public static IWebHostBuilder CreateDefaultBuilder(string[] args) { - var builder = new WebHostBuilder() - .UseKestrel((builderContext, options) => + var builder = new WebHostBuilder(); + + if (string.IsNullOrEmpty(builder.GetSetting(WebHostDefaults.ContentRootKey))) + { + builder.UseContentRoot(Directory.GetCurrentDirectory()); + } + if (args != null) + { + builder.UseConfiguration(new ConfigurationBuilder().AddCommandLine(args).Build()); + } + + builder.UseKestrel((builderContext, options) => { options.Configure(builderContext.Configuration.GetSection("Kestrel")); }) - .UseContentRoot(Directory.GetCurrentDirectory()) .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; @@ -209,11 +218,6 @@ namespace Microsoft.AspNetCore options.ValidateScopes = context.HostingEnvironment.IsDevelopment(); }); - if (args != null) - { - builder.UseConfiguration(new ConfigurationBuilder().AddCommandLine(args).Build()); - } - return builder; } diff --git a/test/Microsoft.AspNetCore.FunctionalTests/WebHostFunctionalTests.cs b/test/Microsoft.AspNetCore.FunctionalTests/WebHostFunctionalTests.cs index b882205779..4942fefb39 100644 --- a/test/Microsoft.AspNetCore.FunctionalTests/WebHostFunctionalTests.cs +++ b/test/Microsoft.AspNetCore.FunctionalTests/WebHostFunctionalTests.cs @@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Tests var applicationName = "CreateDefaultBuilderApp"; await ExecuteTestApp(applicationName, async (deploymentResult, logger) => { - var response = await RetryHelper.RetryRequest(() => deploymentResult.HttpClient.GetAsync(string.Empty), logger, deploymentResult.HostShutdownToken); + var response = await RetryHelper.RetryRequest(() => deploymentResult.HttpClient.GetAsync(string.Empty), logger, deploymentResult.HostShutdownToken, retryCount: 5); var responseText = await response.Content.ReadAsStringAsync(); try @@ -79,7 +79,7 @@ namespace Microsoft.AspNetCore.Tests var applicationName = "CreateDefaultBuilderOfTApp"; await ExecuteTestApp(applicationName, async (deploymentResult, logger) => { - var response = await RetryHelper.RetryRequest(() => deploymentResult.HttpClient.GetAsync(string.Empty), logger, deploymentResult.HostShutdownToken); + var response = await RetryHelper.RetryRequest(() => deploymentResult.HttpClient.GetAsync(string.Empty), logger, deploymentResult.HostShutdownToken, retryCount: 5); var responseText = await response.Content.ReadAsStringAsync(); try diff --git a/test/TestSites/CreateDefaultBuilderApp/Program.cs b/test/TestSites/CreateDefaultBuilderApp/Program.cs index e8b91c67c0..e0002ced01 100644 --- a/test/TestSites/CreateDefaultBuilderApp/Program.cs +++ b/test/TestSites/CreateDefaultBuilderApp/Program.cs @@ -35,9 +35,10 @@ namespace CreateDefaultBuilderApp private static string GetResponseMessage(WebHostBuilderContext context, IServiceCollection services) { // Verify ContentRootPath set - if (!string.Equals(Directory.GetCurrentDirectory(), context.HostingEnvironment.ContentRootPath, StringComparison.Ordinal)) + var contentRoot = Environment.GetEnvironmentVariable("ASPNETCORE_CONTENTROOT"); + if (!string.Equals(contentRoot, context.HostingEnvironment.ContentRootPath, StringComparison.Ordinal)) { - return $"Current directory incorrect. Expected: {Directory.GetCurrentDirectory()} Actual: {context.HostingEnvironment.ContentRootPath}"; + return $"ContentRootPath incorrect. Expected: {contentRoot} Actual: {context.HostingEnvironment.ContentRootPath}"; } // Verify appsettings.json loaded diff --git a/test/TestSites/CreateDefaultBuilderOfTApp/Startup.cs b/test/TestSites/CreateDefaultBuilderOfTApp/Startup.cs index 2bfb0cdfe9..4d607bffc0 100644 --- a/test/TestSites/CreateDefaultBuilderOfTApp/Startup.cs +++ b/test/TestSites/CreateDefaultBuilderOfTApp/Startup.cs @@ -26,9 +26,10 @@ namespace CreateDefaultBuilderOfTApp private static string GetResponseMessage(WebHostBuilderContext context, IOptions hostFilteringOptions) { // Verify ContentRootPath set - if (!string.Equals(Directory.GetCurrentDirectory(), context.HostingEnvironment.ContentRootPath, StringComparison.Ordinal)) + var contentRoot = Environment.GetEnvironmentVariable("ASPNETCORE_CONTENTROOT"); + if (!string.Equals(contentRoot, context.HostingEnvironment.ContentRootPath, StringComparison.Ordinal)) { - return $"Current directory incorrect. Expected: {Directory.GetCurrentDirectory()} Actual: {context.HostingEnvironment.ContentRootPath}"; + return $"ContentRootPath incorrect. Expected: {contentRoot} Actual: {context.HostingEnvironment.ContentRootPath}"; } // Verify appsettings.json loaded