zoukankan      html  css  js  c++  java
  • C# 获取程序集信息

    在C#的程序中都会有AssemblyInfo.cs文件,该文件中包含着程序的一些信息

    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    
    // 有关程序集的常规信息通过以下
    // 特性集控制。更改这些特性值可修改
    // 与程序集关联的信息。
    [assembly: AssemblyTitle("ConsoleApplication1")]
    [assembly: AssemblyDescription("测试")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("Microsoft")]
    [assembly: AssemblyProduct("ConsoleApplication1")]
    [assembly: AssemblyCopyright("Copyright © Microsoft 2019")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    
    // 将 ComVisible 设置为 false 使此程序集中的类型
    // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
    // 则将该类型上的 ComVisible 特性设置为 true。
    [assembly: ComVisible(false)]
    
    // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
    [assembly: Guid("8b945092-ddb6-4163-943b-1b36e99475d3")]
    
    // 程序集的版本信息由下面四个值组成:
    //
    //      主版本
    //      次版本 
    //      内部版本号
    //      修订号
    //
    // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
    // 方法是按如下所示使用“*”:
    // [assembly: AssemblyVersion("1.0.*")]
    [assembly: AssemblyVersion("1.2.5.0")]
    [assembly: AssemblyFileVersion("1.0.5.0")]
    View Code

    如何获取程序集中的一些信息呢

    public class AssemblyInfos
        {
            /// <summary>
            /// 获取程序集标题
            /// </summary>
            /// <returns></returns>
            public string GetAssemblyTitle()
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
                if (attributes.Length > 0)
                { 
                    AssemblyTitleAttribute title = (AssemblyTitleAttribute)attributes[0];
                    if (!string.IsNullOrEmpty(title.Title))
                        return title.Title;
                }
                return Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
            }
    
            /// <summary>
            /// 获取程序集版本
            /// </summary>
            /// <returns></returns>
            public string GetAssemblyVersion()
            {
                return Assembly.GetExecutingAssembly().GetName().Version.ToString();
            }
    
            /// <summary>
            /// 获取程序集描述说明
            /// </summary>
            /// <returns></returns>
            public string GetAssemblyDescription()
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyDescriptionAttribute)attributes[0]).Description;
            }
    
           
    
        }
    View Code

    还有许多的自定义消息,都和获取程序集描述说明类似

     获取AssemblyFileVersion可以直接通过Application.ProductVersion获取版本

    还可以通过Application.ProductName获取AssemblyProduct信息

    参考:https://blog.csdn.net/zhaoyuqings/article/details/77480727

  • 相关阅读:
    redis实现与分析
    NULL, '',0 '0'的区别
    Linux strace命令
    strcpy和memcpy的区别
    图书推荐
    php与mysql通讯那点事
    linux命令汇总
    linux系统信息查询及相关概念
    LNMP zabbix安装
    lftp查看文件时间与登录服务查看文件时间相差8小时
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11925940.html
Copyright © 2011-2022 走看看