Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }