From 8fa3211b63d4b6aff01014afe07a57a8afe40514 Mon Sep 17 00:00:00 2001 From: bicijinlian Date: Mon, 24 Jun 2024 00:06:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpClientStudy.Core/Utilities/DotnetCommondUtility.cs | 9 +++++---- .../UtilitiesTest/DotnetCommondUtilityTest.cs | 4 ++-- HttpClientStudy.WebApp/Program.cs | 9 ++++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/HttpClientStudy.Core/Utilities/DotnetCommondUtility.cs b/HttpClientStudy.Core/Utilities/DotnetCommondUtility.cs index 8dfa8fa..e42559c 100644 --- a/HttpClientStudy.Core/Utilities/DotnetCommondUtility.cs +++ b/HttpClientStudy.Core/Utilities/DotnetCommondUtility.cs @@ -71,8 +71,9 @@ namespace HttpClientStudy.Core.Utilities /// 新窗口启动WebApp项目 /// /// 包含全路径的WebApp项目 + /// 命令参数 /// - public static string RunWebApp(string startFile) + public static string RunWebApp(string startFile, params string[] args) { string output = ""; @@ -81,8 +82,8 @@ namespace HttpClientStudy.Core.Utilities ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "powershell.exe", - Arguments = $"Start-Process -FilePath '{startFile}'", - UseShellExecute = false, + Arguments = $"Start-Process -FilePath '{startFile}' -ArgumentList '{string.Join(" ", args)}' ", + UseShellExecute = true, CreateNoWindow = false, }; @@ -94,7 +95,7 @@ namespace HttpClientStudy.Core.Utilities process.Start(); - output = "新窗口启动WebApp项目,已有实例在运行则窗口会自动关闭"; + output = "已在新窗口中启动WebApp项目。如果已有实例在运行或者执行异常,则窗口会自动关闭;否则新窗口一直存在,直到手动关闭!"; } catch (Exception ex) diff --git a/HttpClientStudy.UnitTest/UtilitiesTest/DotnetCommondUtilityTest.cs b/HttpClientStudy.UnitTest/UtilitiesTest/DotnetCommondUtilityTest.cs index 5241709..c56186f 100644 --- a/HttpClientStudy.UnitTest/UtilitiesTest/DotnetCommondUtilityTest.cs +++ b/HttpClientStudy.UnitTest/UtilitiesTest/DotnetCommondUtilityTest.cs @@ -43,9 +43,9 @@ namespace HttpClientStudy.UnitTest.UtilitiesTest [Fact] public void StartApp_Test() { - var webapiDll = Path.GetFullPath("../../../../Docs/Publish/HttpClientStudy.WebApp/HttpClientStudy.WebApp.exe"); + var webapiDll = Path.GetFullPath("../../../../Docs/Publish/HttpClientStudy.WebApp/HttpClientStudy.WebApp.exe", Environment.CurrentDirectory); - var result = DotnetCommondUtility.RunWebApp(webapiDll); + var result = DotnetCommondUtility.RunWebApp(webapiDll,"--urls=http://localhost:8899"); _output.WriteLine(result); } diff --git a/HttpClientStudy.WebApp/Program.cs b/HttpClientStudy.WebApp/Program.cs index ee1b45d..79c21fd 100644 --- a/HttpClientStudy.WebApp/Program.cs +++ b/HttpClientStudy.WebApp/Program.cs @@ -41,9 +41,17 @@ namespace HttpClientStudy.WebApp var configBasePath = AppContext.BaseDirectory; Console.WriteLine($"WebApp配置文件根目录:{configBasePath}"); builder.Configuration.SetBasePath(configBasePath); + + //环境变量 + builder.Configuration.AddEnvironmentVariables(); + + //配置文件 builder.Configuration.AddJsonFile("appsettings.json", false, true); builder.Configuration.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", true, true); builder.Configuration.AddJsonFile($"configFiles/Config.json", false, true); + + //命令行参数 + builder.Configuration.AddCommandLine(args); #endregion #region 向容器注册服务 @@ -190,7 +198,6 @@ namespace HttpClientStudy.WebApp builder.Services.AddHealthChecks(); //普通类 - builder.Services.AddScoped(provider => new Account() { Id = 0, Name = "服务注入示例", Password = "123456", Role = "IoC" }); builder.Services.AddScoped(); #endregion