C# AssemblyFileVersion usage within a program

后端 未结 6 687
不知归路
不知归路 2020-12-08 14:06

I\'m working on a program, and I\'m trying to display the assembly FILE version

    public static string Version
    {
        get
        {
               


        
相关标签:
6条回答
  • 2020-12-08 14:36
        var fileVersion = GetCustomAttributeValue<AssemblyFileVersionAttribute>(assembly, "Version");
    
        private static string GetCustomAttributeValue<T>(Assembly assembly, string propertyName)
            where T : Attribute
        {
            if (assembly == null || string.IsNullOrEmpty(propertyName)) return string.Empty;
    
            object[] attributes = assembly.GetCustomAttributes(typeof(T), false);            
            if (attributes.Length == 0) return string.Empty;
    
            var attribute = attributes[0] as T;
            if (attribute == null) return string.Empty;
    
            var propertyInfo = attribute.GetType().GetProperty(propertyName);
            if (propertyInfo == null) return string.Empty;
    
            var value = propertyInfo.GetValue(attribute, null);
            return value.ToString();
        }
    
    0 讨论(0)
  • 2020-12-08 14:36

    To get the version of the currently executing assembly you can use:

    using System.Reflection;
    Version version = Assembly.GetExecutingAssembly().GetName().Version;
    

    The Assembly class can also load files and access all the assemblies loaded in a process.

    0 讨论(0)
  • 2020-12-08 14:36

    I guess you will have to use FileVersionInfo class.

    System.Diagnostics.FileVersionInfo.GetVersionInfo(FullpathToAssembly)

    0 讨论(0)
  • 2020-12-08 14:37
     protected void Application_Start(object sender, EventArgs e)
     {
         _log.InfoFormat("*************{0} **** Version: {1}************  ", Assembly.GetExecutingAssembly().GetName().Name, Assembly.GetExecutingAssembly().GetName().Version);
      }
    

    Output

    INFO Global - *************CustomerFile **** Version: 1.0.17.2510************

    0 讨论(0)
  • 2020-12-08 14:42
    using System.Reflection;
    using System.IO;
    
    FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
    
    Console.WriteLine("AssemblyVersion : {0}", Assembly.GetExecutingAssembly().GetName().Version.ToString());
    
    Console.WriteLine ("AssemblyFileVersion : {0}" , fv.FileVersion.ToString ());
    
    0 讨论(0)
  • 2020-12-08 14:43

    Use ProductMajorPart/ProductMinorPart instead of FileMajorPart/FileMinorPart :

        public static string Version
        {
            get
            {
                Assembly asm = Assembly.GetExecutingAssembly();
                FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location);
                return String.Format("{0}.{1}", fvi.ProductMajorPart, fvi.ProductMinorPart);
            }
        }
    
    0 讨论(0)
提交回复
热议问题