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}";
}
}
}