fix api ui, add versions

This commit is contained in:
2025-11-01 15:40:55 +08:00
parent af6bc86a0c
commit c73aa1d2a8
12 changed files with 411 additions and 71 deletions
+48
View File
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
@@ -30,6 +31,53 @@ public static class SimApiUtil
// DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};
public static string SimApiVersion
{
get
{
// 这里使用当前类(属于 NuGet 包)的程序集
var assembly = typeof(SimApiUtil).Assembly;
// 优先获取 AssemblyInformationalVersion(通常对应 NuGet 包版本,可能包含预发布标签)
var informationalVersion =
assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
if (!string.IsNullOrEmpty(informationalVersion))
{
return informationalVersion;
}
// 若不存在,则获取 AssemblyVersion(编译时版本)
var version = assembly.GetName().Version?.ToString();
return version ?? "Unknown";
}
}
public static string AppVersion
{
get
{
// 获取外层应用的入口程序集(通常是启动项目的程序集)
var entryAssembly = Assembly.GetEntryAssembly();
if (entryAssembly == null)
{
// 特殊场景(如单元测试、某些宿主环境)下,入口程序集可能为 null,可尝试获取调用栈中的上层程序集
entryAssembly = Assembly.GetCallingAssembly(); // 或 Assembly.GetExecutingAssembly() 视场景调整
}
// 优先获取应用的 AssemblyInformationalVersion
var informationalVersion = entryAssembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
?.InformationalVersion;
if (!string.IsNullOrEmpty(informationalVersion))
{
return informationalVersion;
}
// 若不存在,则获取 AssemblyVersion
var version = entryAssembly.GetName().Version?.ToString();
return version ?? "Unknown";
}
}
/// <summary>
/// 当前秒级时间戳
/// </summary>