using System.Diagnostics; using System.Reflection; namespace Sonex.Library.WorkersCore; public static partial class Worker { private static string ResolveAppVersion() { Assembly assembly = Assembly.GetEntryAssembly() ?? Assembly.GetExecutingAssembly(); string? informationalVersion = assembly .GetCustomAttribute() ?.InformationalVersion; if (!string.IsNullOrWhiteSpace(informationalVersion)) return informationalVersion.Trim(); string? fileVersion = assembly .GetCustomAttribute() ?.Version; if (!string.IsNullOrWhiteSpace(fileVersion)) return fileVersion.Trim(); Version? assemblyVersion = assembly.GetName().Version; if (assemblyVersion is not null) return assemblyVersion.ToString(); string? processPath = Environment.ProcessPath; if (!string.IsNullOrWhiteSpace(processPath)) { string? productVersion = FileVersionInfo.GetVersionInfo(processPath).ProductVersion; if (!string.IsNullOrWhiteSpace(productVersion)) return productVersion.Trim(); } return string.Empty; } }