简而言之,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();
      
        }

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

posted on 2017-06-23 14:18  王庆东mas  阅读(7083)  评论(0编辑  收藏  举报