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. 剑指offer系列33-----把二叉树打印成多行

    [题目]从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. 方法一:直接打印 package com.exe7.offer; import java.util.LinkedList; i ...

  2. SQLite加密的方法(c#)

    http://blog.csdn.net/xjbx/article/details/2712236 设置下密码就可以了 http://bbs.csdn.net/topics/380018685 编译为 ...

  3. MSSQL update 多表关联更新

    update tMeter set 字段= t.源自段 from ( select * from 源表信息 ) t where 关联条件 实际demo: UPDATE dbo.WX_TWODIMENC ...

  4. ubuntu ipv6网络电视(avplay)

    首先在ubuntu下安装好ipv6 (话说是已经装好了的,不过最好检查以下) 网上有很多资源,我不写了. 测试一下 :ping ipv6.scau.edu.cn 另外,关于ipv6 网络播放器很多人推 ...

  5. hadoop mapred-queue-acls 配置(转)

    hadoop作业提交时可以指定相应的队列,例如:-Dmapred.job.queue.name=queue2通过对mapred-queue-acls.xml和mapred-site.xml配置可以对不 ...

  6. SDS查看部署在集成TOMCAT服务器中的项目目录结构

  7. mvc无法找到资源

    昨天装了vs2015,但是第二步没有完成.今天急急忙忙的用13打开一个mvc的项目,但是添加的控制器怎么都不能访问. 无法找到资源. 说明: HTTP 404.您正在查找的资源(或者它的一个依赖项)可 ...

  8. 解析wamp的php.ini设置不生效的原因

    你是否有过这样的经历,当你打开wamp的php.ini,并进行参数修改之后.再回到命令去运行你的php脚本,却发现你的设置居然不生效? 如果有这样的情况,那你得先了解php的两种运行运行环境,一个在命 ...

  9. Yii 发送电子邮件

    yii 收发邮件 ------------------------------------------------------------------------------------------- ...

  10. MongoDB基本命令的使用

    成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ...