• C SHARP 版本号管理【转】


    c# 版本号管理

    最近在找C#的版本号问题,对于程序集版本和文件版本的使用不理解,特记录如下 :

    关于发布版本号管理 

    标准版本号物理形式表示为用句点隔开的四段数字,如下面的代码示例所示。

    <major version>.<minor version>.<build number>.<revision> 


    实际使用中,我们一般只用到前面三段。即
    <major version>.<minor version>.<build number>


    而且会分外部版本号和内部版本号:
    <Version>
        <InternalVer>2.2.2</InternalVer>
        <ExternalVer>1.1.0</ExternalVer>
    </Version>


    程序显示的应该是外部版本号。
    程序编译前用当前的内部版本号更新 AssemblyVersion 属性的 build number 段,非程序文件(如资源等)在打包、备份、打标签时统一使用内部版本号。




    每个Assebmly包含三个Version 
    AssemblyFileVersion :存储在win32资源中, CLR不关心这个版本号, 
    AssemblyInformationnalVersion :存储在win32资源中, CLR不关心这个版本号,此版本号用来表示包含 
    Assembly的产品的版本 
    AssemblyVersion: 存储在AssemblyDef manifest metadata table中,CLR会使用这个版本号 


    工具的支持: 
    CSC.exe和AL.exe在每次build时可以自动增加AssemblyVersion, 但要慎用.改变一个Assembly的 
    AssemblyVersion会导致引用这个Assembly的其它Assembly无法工作. 


    在VS会为每一个.net Porject生成 AssemblyInfo.cs 可在其中设置相关的信息. 
    [assembly: AssemblyVersion(”1.0.0.0″)] 
    [assembly: AssemblyFileVersion(”1.0.1.0″)] 
    如果使用[assembly: AssemblyVersion(”1.0.*”)], 在每次程序修改后build或rebuild后, assembly的 
    AssemblyVersion的Build Number和 ReversionNumber和会自动增加.ReversionNumber每次都变, 
    Build Number随日期的变化而变化. 


    有没有什么工具可以显式地设置一个solution中所有的project的AssemblyVersion? 


    通过程序获得版本信息: 
    //== Get File Version 
    System.Diagnostics.FileVersionInfo.GetVersionInfo 


    //==Get Assembly Version 
    AssemblyName assName = Assembly.GetExecutingAssembly().GetName(); 
    string version = assName.Version.ToString(); 


    对于一个win32的exe或dll,在Explore中查看它的属性(Properties->Version)可以看到 
    File Version 
    Product Version


    一个.net Assembly在Explore中查看它的属性(Properties->Version)可以看到 
    Assebly Version (对应 AssemblyVersion) 
    File Version (对应 AssemblyFileVersion) 
    Product Version (对应 AssemblyInformationnalVersion, 如果不指定,则和AssemblyFileVersion对应)

  • 相关阅读:
    Debian 添加用户
    如何让安卓手机访问内网服务器?
    数据库权限
    CentOs
    批量导入sql文件。
    使用Navicat Premium连接mysql数据库
    git 合包
    linux 下文件打包
    git 分支管理
    gcc8.2安装
  • 原文地址:https://www.cnblogs.com/yinhe-Helloworld/p/11625593.html
Copyright © 2020-2023  润新知