標籤:
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