Skip to content

Commit 0eedd7a

Browse files
committed
[修改] 启动参数的配置方式
1 parent 113ed91 commit 0eedd7a

3 files changed

Lines changed: 104 additions & 95 deletions

File tree

GameFrameX.StartUp/GameApp.cs

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
using System.Collections;
2-
using System.Reflection;
3-
using CommandLine;
1+
using System.Reflection;
42
using GameFrameX.Foundation.Extensions;
53
using GameFrameX.Foundation.Logger;
4+
using GameFrameX.Foundation.Options;
65
using GameFrameX.StartUp.Abstractions;
76
using GameFrameX.StartUp.Options;
87
using GameFrameX.Utility;
@@ -28,40 +27,16 @@ public static class GameApp
2827
/// <param name="logConfiguration">初始化日志系统之前回调,可以重写参数</param>
2928
public static async Task Entry(string[] args, Action initAction, Action<LogOptions> logConfiguration = null)
3029
{
31-
var environmentVariablesList = new List<string>(args);
32-
LogHelper.Console("启动参数:" + string.Join(" ", args));
33-
LogHelper.Console("当前环境变量START---------------------");
34-
var environmentVariables = Environment.GetEnvironmentVariables();
35-
foreach (DictionaryEntry environmentVariable in environmentVariables)
30+
LauncherOptions launcherOptions = null;
31+
try
3632
{
37-
if (environmentVariable.Value == null || environmentVariable.Key.ToString().IsNullOrWhiteSpace())
38-
{
39-
continue;
40-
}
41-
42-
var key = environmentVariable.Key.ToString().StartsWith("--") ? environmentVariable.Key.ToString() : "--" + environmentVariable.Key;
43-
if (environmentVariablesList.Contains(key))
44-
{
45-
continue;
46-
}
47-
48-
environmentVariablesList.Add(key);
49-
environmentVariablesList.Add(environmentVariable.Value.ToString());
33+
launcherOptions = OptionsBuilder.CreateWithDebug<LauncherOptions>(args);
5034
}
51-
52-
LogHelper.Console(string.Join("\n", environmentVariablesList));
53-
LogHelper.Console("当前环境变量END---------------------");
54-
LogHelper.Console(string.Empty);
55-
LogHelper.Console(string.Empty);
56-
var commandLineParser = new Parser(configuration => { configuration.IgnoreUnknownArguments = true; });
57-
58-
var launcherOptions = commandLineParser.ParseArguments<LauncherOptions>(environmentVariablesList).WithParsed(LauncherOptionsValidate).WithNotParsed(errors =>
35+
catch (Exception e)
5936
{
60-
foreach (var error in errors)
61-
{
62-
LogHelper.ErrorConsole(error.Tag + ": " + error);
63-
}
64-
})?.Value;
37+
LogHelper.ErrorConsole(e.Message);
38+
}
39+
6540
var serverType = launcherOptions?.ServerType;
6641
if (!serverType.IsNullOrEmpty())
6742
{

GameFrameX.StartUp/GameFrameX.StartUp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
</ItemGroup>
4747

4848
<ItemGroup>
49+
<PackageReference Include="GameFrameX.Foundation.Options" Version="1.5.14" />
4950
<PackageReference Include="GameFrameX.SuperSocket.Server" Version="1.2.0" />
50-
<PackageReference Include="CommandLineParser" Version="2.9.1" />
5151
<PackageReference Include="GameFrameX.SuperSocket.Udp" Version="1.2.0" />
5252
<PackageReference Include="Grafana.OpenTelemetry" Version="1.2.0" />
5353
<PackageReference Include="OpenTelemetry.Api" Version="1.11.2" />

0 commit comments

Comments
 (0)