AssemblyInfo

.NET Project的Properties文件夹下会自动生成一个AssemblyInfo.cs的文件,该文件包含的信息和项目->右键->属性->Application->Assembly Information完全一样。其作用是为程序集定义不同的属性。所有的属性都是基于.NET Framework中的System.Attribute。其语法如下:

[assembly:<attribute>(<setting>)]

AssemblyVersionAttribute

文件版本号的设置,其中Attribute可以省略 :

[assembly:AssemblyVersion("1.0")]
属性 描述
AssemblyTitle 程序集标题,默认为DLL库名
AssemblyDescription 关于程序集的简短描述
AssemblyCompany 程序集所属公司名称
AssemblyProduct 基于此程序集的产品名称
AssemblyCopyright 程序集所属版权
AssemblyTrademark 合法商标
AssemblyVersion 程序集的版本
AssemblyCulture 程序集支持的culture
AssemblyConfiguration 指定程序的生成配置,如发布或调试配置
ComVisible 控制程序集中所有类型对COM的可访问性

这些属性基本都允许用一个字符串来定义属性的值,AssemblyVersion例外,必须使用特定格式的字符串:Major.Minor.Build.Revision

Major和Minor分别为主、副版本号,版本号的的更改通常说明和先前的版本有不兼容的改动。例如,2.1版本和基于同样库的2.2版本有不兼容的地方。

构建号(Build)是一个程序集的相同副版本的不同编译设置。它偶尔也会出现不兼容的情况,但通常,如2.1.17和2.1.42版本的运行情况是一样的。

修订号(Revision)是用来固话bug或者其他偶发的更新,它通常不会破坏兼容性。

 

在程序中获取这些信息

原代码处(http://blog.sina.com.cn/s/blog_61c4c1f60100eira.html)

public class GetAssembly<T> {
private Type myType; public GetAssembly(Type myType)
{
this.myType = typeof(T);
} public string AssemblyName
{
get { return myType.Assembly.GetName().Name.ToString(); }
} public string AssemblyFullName
{
get { return myType.Assembly.GetName().FullName.ToString(); }
} public String CodeBase {
get {
return myType.Assembly.CodeBase;
}
} public String Version {
get {
return myType.Assembly.GetName().Version.ToString();
}
} public String Copyright {
get {
Type att = typeof(AssemblyCopyrightAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyCopyrightAttribute copyattr = (AssemblyCopyrightAttribute)r[0];
return copyattr.Copyright;
}
} public String Company {
get {
Type att = typeof(AssemblyCompanyAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyCompanyAttribute compattr = (AssemblyCompanyAttribute)r[0];
return compattr.Company;
}
} public String Configration {
get {
Type att = typeof(AssemblyConfigurationAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyConfigurationAttribute configattr = (AssemblyConfigurationAttribute)r[0];
return configattr.Configuration;
}
} public string TradeMark {
get {
Type att = typeof(AssemblyTrademarkAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyTrademarkAttribute aa = (AssemblyTrademarkAttribute)r[0];
return aa.Trademark;
}
} public string Culture {
get {
Type att = typeof(AssemblyCultureAttribute);
object[] a = myType.Assembly.GetCustomAttributes(att, false);
if (a.Length > 0) {
AssemblyCultureAttribute aa = (AssemblyCultureAttribute)a[0];
return aa.Culture;
} else {
return "No value";
}
}
} public String Description {
get {
Type att = typeof(AssemblyDescriptionAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyDescriptionAttribute descattr = (AssemblyDescriptionAttribute)r[0];
return descattr.Description;
}
} public String Product {
get {
Type att = typeof(AssemblyProductAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyProductAttribute prodattr = (AssemblyProductAttribute)r[0];
return prodattr.Product;
}
} public String Title {
get {
Type att = typeof(AssemblyTitleAttribute);
object[] r = myType.Assembly.GetCustomAttributes(att, false);
AssemblyTitleAttribute titleattr = (AssemblyTitleAttribute)r[0];
return titleattr.Title;
}
}
}

C#(Visual Studio) AssemblyInfo的更多相关文章

  1. C#——Visual Studio项目中的AssemblyInfo.cs文件包含的配置信息

    Visual Studio程序集项目中的AssemblyInfo.cs文件中的内容 using System.Reflection; using System.Runtime.CompilerServ ...

  2. Microsoft Visual Studio 2017 for Mac Preview 下载+安装+案例Demo

    目录: 0. 前言 1. 在线安装器 2. 安装VS 3. HelloWorld 4. ASP.NET MVC 5. 软件下载 6. 结尾 0. 前言: 工作原因,上下班背着我的雷神,一个月瘦了10斤 ...

  3. 创建Visual studio项目模板 vstemplate关键点纪要

    from:http://www.cnblogs.com/stickman/p/3454719.html 经过多次的实验,终于完美生成一个.VSIX的项目模板安装包,其中遇到不少问题与挫折,久经goog ...

  4. Visual Studio技巧之打造拥有自己标识的代码模板

    可能经过很多博客的介绍,大家都知道代码段的使用,使用代码段可以很方便地生成一些常用的代码格式,确实对我们开发很方便.在团队开发中或者在某些情况下我们经常可能还会希望使用Visual Studio生成的 ...

  5. [转]Visual Studio技巧之打造拥有自己标识的代码模板

    可能经过很多博客的介绍,大家都知道代码段的使用,使用代码段可以很方便地生成一些常用的代码格式,确实对我们开发很方便.在团队开发中或者在某些情况下我们经常可能还会希望使用Visual Studio生成的 ...

  6. .NET Core 在Visual Studio 2015 下的使用-MSDN

    .NET Core RC2 现已推出,这是真正的"候选发布"而非 RC1 Beta 冒充的候选发布(如果是那样,请考虑发布后出现的所有更改).当前,围绕 .NET Core 的开发 ...

  7. 恼人的Visual Studio 2010崩溃重启问题

    上周时Visual Studio 2010突然出现崩溃现象.在源文件修改只要一编译,马上就崩溃,而且还不弹出任何异常窗口,严重影响软件开发工作. google了无数解决方案 试了下面这些方法: 1)h ...

  8. Visual Studio项目模板与向导开发

    在[Xamarin+Prism开发详解系列]里面经常使用到[Prism unity app]的模板创建Prism.Forms项目: 备注:由于Unity社区已经不怎么活跃,下一个版本将会有Autofa ...

  9. Visual Studio 自定义项目模板

    经常我们需要新建一个项目,然后新建我们的View文件夹,ViewModel文件夹,Model文件夹,还有把我们的ViewModelBase放入我们的VIewModel,如果还用框架,还需要加上好多. ...

随机推荐

  1. 【Log4j】 log4j.properties 使用

    一.参数意义说明 输出级别的种类 ERROR.WARN.INFO.DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如 ...

  2. SDC文件模版

    # 1. Define clock create_clock -name "clk_in" -period 20ns [get_ports {clk_in}] # 2. tco c ...

  3. FastReport使用二——二维码

    以下内容在FastReport Designer 中测试通过,如下图所示: 在使用FastReport Designer创建一维吗也就是一般普通的条码时,设置其Barcode属性为Code128 (建 ...

  4. ASP.NET ViewState详解

    ASP.NET ViewState详解[转载] 作者:Infinities Loop 概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对ViewState的一些错误认识.为 ...

  5. Maven使用-- 编写POM

        就像Make的Makefile.Ant的build.xml一样,Maven项目的核心是pom.xml. POM(Project Object Model,项目对象模型)定义了项目的基本信息,用 ...

  6. 网页爬虫--scrapy入门

    本篇从实际出发,展示如何用网页爬虫.并介绍一个流行的爬虫框架~ 1. 网页爬虫的过程 所谓网页爬虫,就是模拟浏览器的行为访问网站,从而获得网页信息的程序.正因为是程序,所以获得网页的速度可以轻易超过单 ...

  7. DBA_Oracle冷备份案例脚本本法(案例)

    2014-08-10 Created By BaoXinjian

  8. Form_通过Trace分析Concurrent和Form性能和异常详解(案例)

    2014-06-21 Created By BaoXinjian

  9. matlab R2016b 设置界面为英文

    对于matlab的使用,最好还是使用英文好.这样既能让你熟悉直接的英文解释,也能学习一下英语. 对于中文版的matlab,默认的Matlab安装是中文,所以这里存在安装matlab后设置语言的需要. ...

  10. centos6配置远程桌面,使用xmanager访问

    现在linux的图形界面越来越丰富,使用图形界面操作也逐渐成为使用者的一种习惯.在我们安装文件的过程中,经常会应用得到. 比如远程安装oracle,或者有多台主机.避免在不同主机间切换显示器. 1.检 ...