private string GetVersion(System.Reflection.Assembly assembly) { switch (Type) { case AssemblyVersionType.File: return(assembly?.GetCustomAttribute <System.Reflection.AssemblyFileVersionAttribute>()?.Version); case AssemblyVersionType.Informational: return(assembly?.GetCustomAttribute <System.Reflection.AssemblyInformationalVersionAttribute>()?.InformationalVersion); default: return(assembly?.GetName().Version?.ToString()); } }
public static String AssemblyFileVersionInfo(this System.Reflection.Assembly assembly) { String InfoStr; #if UseWindowsDesktop FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location); String AsemVersion = fileVersionInfo.FileVersion; if (fileVersionInfo.FileBuildPart != 0) { String buildNoString = DateTimeBuildNo.ToBuildDateString(fileVersionInfo.FileBuildPart, fileVersionInfo.FilePrivatePart); InfoStr = String.Format("{0} {1}", AsemVersion, buildNoString); } else { InfoStr = AsemVersion; } #else // AssemblyVersionAttribute ava = assembly.GetCustomAttribute<AssemblyVersionAttribute>(); AssemblyFileVersionAttribute afva = assembly.GetCustomAttribute <AssemblyFileVersionAttribute>(); if (afva != null) { String AsemVersion = afva.Version; String[] parts = AsemVersion.Split('.'); if (parts.Length >= 2) { Int32 FileBuildPart = 0; Int32 FilePrivatePart = 0; Int32.TryParse(parts[2], out FileBuildPart); if (parts.Length >= 3) { Int32.TryParse(parts[3], out FilePrivatePart); } String buildNoString = DateTimeBuildNo.ToBuildDateString(FileBuildPart, FilePrivatePart); InfoStr = String.Format("{0} {1}", AsemVersion, buildNoString); } else { InfoStr = afva.Version; } } else { InfoStr = "null"; } #endif // UseWindowsDesktop return(InfoStr); }
public static String AssemblyFileVersionInfo(this System.Reflection.Assembly assembly) { String InfoStr; #if !NETCORE && !NETSTANDARD1_0 // For Windows Desktop System.Diagnostics.FileVersionInfo fileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location); String AsemVersion = fileVersionInfo.FileVersion; InfoStr = VersionInfoStr(AsemVersion, fileVersionInfo.FileBuildPart, fileVersionInfo.FilePrivatePart); #else // For NETCORE, NETSTANDARD1_0 // AssemblyVersionAttribute ava = assembly.GetCustomAttribute<AssemblyVersionAttribute>(); AssemblyFileVersionAttribute afva = assembly.GetCustomAttribute <AssemblyFileVersionAttribute>(); if (afva != null) { String AsemVersion = afva.Version; String[] parts = AsemVersion.Split('.'); Int32 FileBuildPart = 0; Int32 FilePrivatePart = 0; if (parts.Length > 2) { Int32.TryParse(parts[2], out FileBuildPart); } if (parts.Length > 3) { Int32.TryParse(parts[3], out FilePrivatePart); } InfoStr = VersionInfoStr(AsemVersion, FileBuildPart, FilePrivatePart); } else { InfoStr = "null"; } #endif // UseWindowsDesktop return(InfoStr); }