Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3c8e2c1

Browse files
committed
Add ShowCommand & Misc
1 parent c696651 commit 3c8e2c1

15 files changed

Lines changed: 109 additions & 18 deletions

File tree

src/Avalonia.Desktop/Avalonia.Desktop.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.1;net6.0-windows</TargetFrameworks>
4+
<TargetFrameworks>net6.0;net6.0-windows</TargetFrameworks>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Avalonia.Native/Avalonia.Native.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Avalonia.Win32/Avalonia.Win32.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Avalonia.X11/Avalonia.X11.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<DelaySign>false</DelaySign>
77
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
88
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
9+
<IsTrimmable>true</IsTrimmable>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Common.CoreLib/Application/Settings/FileSettingsProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ public void Load()
100100
IsLoaded = true;
101101
}
102102

103+
public string ToJsonString() => Serializable.SJSON(_settings, writeIndented: true);
104+
103105
event EventHandler ISerializationProvider.Reloaded
104106
{
105107
add { }

src/Common.CoreLib/Application/Settings/ISerializationProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@ public interface ISerializationProvider
2020
bool TryGetValue<T>(string key, [NotNullWhen(true)] out T? value) where T : notnull;
2121

2222
bool RemoveValue(string key);
23+
24+
string ToJsonString();
2325
}

src/ST.Client.CommandLine/CommandLineHost.cs

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
using System.Application.Services;
33
using System.CommandLine;
44
using System.CommandLine.NamingConventionBinder;
5+
using System.Runtime.InteropServices;
56
using LogLevel = Microsoft.Extensions.Logging.LogLevel;
7+
using System.Runtime.Versioning;
8+
using System.Application.Settings;
9+
using System.Security.Cryptography.X509Certificates;
10+
using System.Security.Cryptography;
611

712
namespace System.Application.CommandLine;
813

@@ -227,6 +232,67 @@ void MainHandlerByCLT_(Action? onInitStartuped)
227232
});
228233
rootCommand.AddCommand(run_SteamApp);
229234

235+
// -clt show -config -cert
236+
var show = new Command("show", "显示信息");
237+
show.AddOption(new Option<bool>("-config", "显示 Config.mpo 值"));
238+
show.AddOption(new Option<bool>("-cert", "显示当前根证书信息"));
239+
show.Handler = CommandHandler.Create((bool config, bool cert) =>
240+
{
241+
if (OperatingSystem.IsWindows()) if (!AttachConsole()) AllocConsole();
242+
243+
if (config)
244+
{
245+
Console.WriteLine("Config: ");
246+
try
247+
{
248+
SettingsHost.Load();
249+
var configValue = SettingsHostBase.Local.ToJsonString();
250+
Console.WriteLine(configValue);
251+
}
252+
catch (Exception e)
253+
{
254+
Console.WriteLine(e.ToString());
255+
}
256+
Console.WriteLine();
257+
}
258+
259+
if (cert)
260+
{
261+
Console.WriteLine("RootCertificate: ");
262+
try
263+
{
264+
using X509Certificate2 rootCert = new(ICertificateManager.DefaultPfxFilePath, (string?)null, X509KeyStorageFlags.Exportable);
265+
Console.WriteLine("Subject:");
266+
Console.WriteLine(rootCert.Subject);
267+
Console.WriteLine("SerialNumber:");
268+
Console.WriteLine(rootCert.SerialNumber);
269+
Console.WriteLine("PeriodValidity:");
270+
Console.Write(rootCert.GetEffectiveDateString());
271+
Console.Write(" ~ ");
272+
Console.Write(rootCert.GetExpirationDateString());
273+
Console.WriteLine();
274+
Console.WriteLine("SHA256:");
275+
Console.WriteLine(rootCert.GetCertHashStringCompat(HashAlgorithmName.SHA256));
276+
Console.WriteLine("SHA1:");
277+
Console.WriteLine(rootCert.GetCertHashStringCompat(HashAlgorithmName.SHA1));
278+
}
279+
catch (Exception e)
280+
{
281+
Console.WriteLine(e.ToString());
282+
}
283+
Console.WriteLine();
284+
}
285+
286+
Console.WriteLine("Press any key to exit");
287+
Console.ReadKey();
288+
289+
if (OperatingSystem.IsWindows()) FreeConsole();
290+
});
291+
rootCommand.AddCommand(show);
292+
293+
// TODO
294+
//var proxy = new Command("proxy", "仅启用代理服务,无 GUI 窗口");
295+
230296
var r = rootCommand.InvokeAsync(args).GetAwaiter().GetResult();
231297
return r;
232298
}
@@ -261,4 +327,16 @@ public void Dispose()
261327
Dispose(disposing: true);
262328
GC.SuppressFinalize(this);
263329
}
330+
331+
[SupportedOSPlatform("Windows")]
332+
[DllImport("kernel32.dll", SetLastError = true)]
333+
static extern bool AttachConsole(int dwProcessId = -1);
334+
335+
[SupportedOSPlatform("Windows")]
336+
[DllImport("kernel32.dll", SetLastError = true)]
337+
static extern bool FreeConsole();
338+
339+
[SupportedOSPlatform("Windows")]
340+
[DllImport("kernel32.dll", SetLastError = true)]
341+
static extern bool AllocConsole();
264342
}

0 commit comments

Comments
 (0)