AssemblyVersion,AssemblyFileVersion解释以及获取

Posted 未将对象引用设置到对象的实例

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AssemblyVersion,AssemblyFileVersion解释以及获取相关的知识,希望对你有一定的参考价值。

简而言之,AssemblyVersion:

是程序集的版本,.NET的CLR用,用于标识出该dll的版本信息,用于定义强名称的版本号;
AssemblyFileVersion:
为编译器生成的文件加入版本号,只是一个文件号标识,没有具体的作用,也就是在资源管理器里查看属性时看到的版本;
AssemblyInformationalVersion:
在引用程序集时,这个属性不用于版本检查,它仅用于版本信息。该属性非常适合于指定使用多个程序集的应用程序的版本。
打开可执行程序的属性,这个值就显示为Product Version 
Guid:这个实际上是COM里提出的概念,只是一个唯一的ID,.NET为了维护和COM的交互性,所以还存在这个概念。
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.2")]
将第二句注释掉,并将前一句1.0.0.1改为1.0.*后,其后两位版本号会自动递增,然而就概念而言这样做不一定合适。
 
 
代码获取项目版本属性方式:
public string AssemblyFileVersion()
        {
            object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
            if (attributes.Length == 0)
            {
                return "";
            }
            else
            {
                return ((AssemblyFileVersionAttribute)attributes[0]).Version;
            } 
        }
方法二
   //得到指定程序集版本
        private string GetAssemblyVersion(string name)
        {
            byte[] filedata = File.ReadAllBytes(name + ".exe");
            return Assembly.Load(filedata).GetName().Version.ToString();
      
        }

当然,也可以通过项目的可视化属性配置页面进行 修改版本等信息。

以上是关于AssemblyVersion,AssemblyFileVersion解释以及获取的主要内容,如果未能解决你的问题,请参考以下文章

AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别?

使assemblyversion类似于发布版本

如何在二进制文件中将 AssemblyVersion 标记为 FileVersion

AssemblyVersion,AssemblyFileVersion解释以及获取

使用 AssemblyVersion 标记程序集 App_licenses.dll(FxCop CA1016 规则)

C#版本号管理