using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CMM.Library.Method { public static class AssemblyData { /// /// 當下Assembly名稱 /// public static string AssemblyName => System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; public static string AppName => AppDomain.CurrentDomain.FriendlyName; /// /// 程式根目錄,無視工作目錄 /// public static string Path => AppDomain.CurrentDomain.BaseDirectory; /// /// 版本 /// public static string AssemblyVersion => GetAssemblyVersion(); public static string AppVersion => GetFileVersion(Process.GetCurrentProcess().MainModule.FileName); /// /// CCM 輸出 /// public static string smonitors => System.IO.Path.Combine(Path, "smonitors.tmp"); static string GetAssemblyVersion() { var fi = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.Replace(@"file:///", ""); return GetFileVersion(fi); } public static string GetFileVersion(string filePath) { var fvi = FileVersionInfo.GetVersionInfo(filePath); return $"{fvi.FileMajorPart}." + $"{fvi.FileMinorPart}." + $"{fvi.FileBuildPart}." + $"{fvi.FilePrivatePart}"; } } }