一般C#程序会自动生成AssemblyInfo.cs文件,文件中包含着与此程序相关的程序集信息

,那么在程序中应该如何读取这些信息呢?

// 有关程序集的常规信息通过下列属性集

// 控制。更改这些属性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("XXXXX")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PlateRecognition")]
[assembly: AssemblyCopyright("Copyright ©  2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]

// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("b165cd1b-d9b5-4e69-9ca5-accdff888dc")]

// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本 
//      内部版本号
//      修订号
//
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]

[assembly: AssemblyFileVersion("1.0.0.0")]

如何读取呢?

最简便的方法,为程序加一个AboutBox窗口,右键-》新建项目-》“关于”框,

这个AboutBox.cs中有自动生成代码,很容易就读取到AssemblyInfo中的信息。

下面贴一下AboutBox.cs自动生成的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;namespace XXX
{partial class AboutBox : Form{public AboutBox(){InitializeComponent();this.Text = String.Format("关于 {0} {0}", AssemblyTitle);this.labelProductName.Text = AssemblyProduct;this.labelVersion.Text = String.Format("版本 {0} {0}", AssemblyVersion);this.labelCopyright.Text = AssemblyCopyright;this.labelCompanyName.Text = AssemblyCompany;this.textBoxDescription.Text = AssemblyDescription;}#region 程序集属性访问器public string AssemblyTitle{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);if (attributes.Length > 0){AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];if (titleAttribute.Title != ""){return titleAttribute.Title;}}return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);}}public string AssemblyVersion{get{return Assembly.GetExecutingAssembly().GetName().Version.ToString();}}public string AssemblyDescription{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);if (attributes.Length == 0){return "";}return ((AssemblyDescriptionAttribute)attributes[0]).Description;}}public string AssemblyProduct{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);if (attributes.Length == 0){return "";}return ((AssemblyProductAttribute)attributes[0]).Product;}}public string AssemblyCopyright{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);if (attributes.Length == 0){return "";}return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;}}public string AssemblyCompany{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);if (attributes.Length == 0){return "";}return ((AssemblyCompanyAttribute)attributes[0]).Company;}}#endregion}
}

【C#】获取程序中Properties下的AssemblyInfo.cs下的信息相关推荐

  1. .net core 获取程序中文件路径

    一.绝对路径 1.获取应用程序运行当前目录Directory.GetCurrentDirectory(). System.IO命名空间中存在Directory类,提供了获取应用程序运行当前目录的静态方 ...

  2. 【ABAP】获取程序中的Include

    某公司自定义开发的程序都有使用次数和使用者信息的记录,这就要求每次新开发的程序均要包含指定Include程序,下面的代码就可以根据输入的程序名称校验是否遗漏Include程序. *&----- ...

  3. VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中

    $在开发项目时,需要知道当前发布的到底是哪个版本,比较好的方式就是获取SVN的版本来作为项目的版本.项目版本一般由主版本.次版本.内部版本.修改版本四个部分组成,我们获取的SVN版本就作为修改版本即可 ...

  4. php进攻教程,如何对PHP程序中的常见漏洞进行攻击(下)_php基

    如何对PHP程序中的常见漏洞进行攻击(下)_php基 发布时间:2016-06-17 来源: 点击: 次 如何对PHP程序中的常见漏洞进行攻击(下) 翻译:analysist(分析家) 来源:http ...

  5. 【AssemblyInfo.cs】为程序设置版本和帮助信息

    ++++++++++++++++++++++++++++++++++++++++++++ +Title:[AssemblyInfo.cs]为程序设置版本和帮助信息 +Author:Hugu +Fini ...

  6. AssemblyInfo.cs文件:包含程序版本、信息、版权的属性文件(转转转)

    AssemblyInfo.cs文件:包含程序版本.信息.版权的属性文件 先介绍AssemblyInfo.cs文件中的程序集属性 内容: using System.Reflection; using S ...

  7. python代码执行过程记录_[原创]IDAPython+OdbgScript动态获取程序执行流程

    题记: 最近知道了有一种方法,可以获取到程序的执行流程,具体做法是先获取程序中每一个函数的地址,在这些地址上设置断点,然后让程序运行起来,hook调试器,断点中断时,不要停下来继续执行,并记录命中的断 ...

  8. 在Python网络爬虫程序中使用线程池

    在Python网络爬虫程序中使用线程池 一.为什么需要使用线程池 二.线程池的使用 2.1 线程池的类与方法 2.2 使用线程池的一般步骤 三.在爬虫程序中使用线程池的实例 一.为什么需要使用线程池 ...

  9. 【快速文档】open-data标签,在小程序中无需用户授权也可以使用用户昵称和头像

    介绍 按照现在的规定,在小程序中使用任何有关于用户的个人信息,都是需要授权的.但是,如果是通过open-data来使用用户的信息的话,则无需用户授权. 为什么open-data不需要授权呢,因为ope ...

最新文章

  1. 7.2集合类型操作符
  2. P3531-[POI2012]LIT-Letters【逆序对,树状数组】
  3. [html] HTML5的Geolocation不允许定位后如何于次让它弹起授权定位?
  4. python中‘configparser’的使用方法---ini文件读取方法
  5. 华为云各行业数据库服务整体解决方案、数据库迁移上云解决方案
  6. LINGO编程简介与实例
  7. java修改硬盘序列号怎么查_硬盘序列号的查看方法,如果多块硬盘如何查是哪块块的哪块要换掉?...
  8. PyQt5-UI界面控件布局实战-界面水平,竖直、网格混合布局(三)
  9. 如何使用python自动化查四六级成绩
  10. nginx 屏蔽某些ip,防止有些人刷接口攻击
  11. 平价蓝牙耳机里面性价比高推荐?隐形蓝牙耳机超小推荐
  12. vue 父传子 子传父实现方式
  13. 多商家入驻分销平台开发 多商家入驻分销源码下载
  14. axios下载压缩包的处理方式
  15. js判断浏览器是否运行或安装flash
  16. 穿过已知点画平滑曲线(3次贝塞尔曲线)
  17. linux设置NLS_LANG
  18. php正则取出后不保留左右,PHP 正则 如何匹配不出现某段字符串的写法!(保留备份)...
  19. Ztree树的复选框和获取选择的节点实例和代码
  20. 论文阅读 AutoGluon-Tabular

热门文章

  1. Android 直播 直播架构技术浅析
  2. 严肃科普:12306能扛得住明星并发出轨级的流量吗?
  3. 基于Qt实现的“合成大西瓜”小游戏
  4. matlab中用于离散系统求解的命令,实验七-离散系统分析的MATLAB实现
  5. 高速FPGA串并收发器SERDES实现ADS6445的AD转换
  6. 给那些怀旧的游戏骨灰粉丝们:自制一台树莓派街机
  7. HTTP为什么不安全?HTTP安全漏洞 Why is HTTP not secure? HTTP Security Gaps
  8. 【论文阅读|浅读】PGE:A Representation Learning Framework for Property Graphs
  9. SDK_17.1.0 nrf52832 串口透传(NUS)增加DFU功能OTA
  10. python:jinja2 模板 实例