1412ce2695
feat:优化交互逻辑,优化发布流程
61 lines
1.4 KiB
C#
61 lines
1.4 KiB
C#
using Microsoft.Maui.ApplicationModel;
|
|
using System;
|
|
using System.Reflection;
|
|
|
|
namespace TodoList.Maui.Services;
|
|
|
|
public static class AppMetadata
|
|
{
|
|
private const string AppNameText = "\u5F85\u529E\u4E8B\u9879";
|
|
|
|
public static string AppName => AppNameText;
|
|
|
|
public static string? GetDisplayVersion()
|
|
{
|
|
// 优先使用Assembly版本
|
|
var asmVersion = Assembly.GetExecutingAssembly().GetName().Version;
|
|
if (asmVersion != null)
|
|
{
|
|
// 只返回主版本.次版本.修订版本 (如: 1.0.4)
|
|
return $"{asmVersion.Major}.{asmVersion.Minor}.{asmVersion.Build}";
|
|
}
|
|
|
|
// 回退到AppInfo
|
|
var versionString = AppInfo.Current.VersionString?.Trim();
|
|
if (string.IsNullOrWhiteSpace(versionString))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
if (!Version.TryParse(versionString, out var parsed))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return $"{parsed.Major}.{parsed.Minor}.{parsed.Build}";
|
|
}
|
|
|
|
public static string GetDisplayTitle()
|
|
{
|
|
var version = GetDisplayVersion();
|
|
return string.IsNullOrWhiteSpace(version) ? AppName : $"{AppName} v{version}";
|
|
}
|
|
|
|
public static string GetTitleBarVersionText()
|
|
{
|
|
var version = GetDisplayVersion();
|
|
return string.IsNullOrWhiteSpace(version) ? AppNameText : $"{AppNameText} v{version}";
|
|
}
|
|
|
|
public static string GetWindowTitle()
|
|
{
|
|
return GetTitleBarVersionText();
|
|
}
|
|
|
|
public static string GetTrayTooltipText()
|
|
{
|
|
var text = GetDisplayTitle();
|
|
return text.Length > 63 ? text[..63] : text;
|
|
}
|
|
}
|