VS 生成 dll、exe 版本号与SVN版本号一致

1.VS 可自动生成版本号

注释掉以下两行代码

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

使用以下代码即可自动生成版本号

[assembly: AssemblyVersion("1.0.*")] //内部修订版本号(第三个字段)的位置出现的是2000年1月1日到编译日期的天数,内部修订号(第四个字段)是当天从0点到当前时间的刻度数。

但是这样生成出来的版本号毫无意义

2.读取SVN提交的版本号作为dll版本号最后一位 如:1.0.0.SVN版本号

步骤:

第一步:将AssemblyInfo.cs文件复制两份分别取名为AssemblyInfo.template.cs、AssemblyInfo.template2.cs

第二步:AssemblyInfo.template2.cs文件内容不做任何修改,将AssemblyInfo.template.cs文件做如下修改

[assembly: AssemblyVersion("1.0.0.0")]  //主版本号.次版本号.内部版本号.修订号
[assembly: AssemblyFileVersion("1.0.0.0")]

改为:

[assembly: AssemblyVersion("1.0.0.$WCREV$")]  //$WCREV$ 获取SVN工作副本中最高的版本号
[assembly: AssemblyFileVersion("1.0.0.$WCREV$")]  // $WCREV$  获取SVN工作副本中最高的版本号

SubWCRev 程序关键字替换说明:http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev-keywords.html

第三步:到SVN安装目录找到SubWCRev.exe放到Solution根目录下

第四步:在XX项目->属性->生成事件 做如下操作

  1.在预先生成事件命令行 添加如下代码:

    $(SolutionDir)subwcrev.exe $(SolutionDir) $(ProjectDir)PropertiesAssemblyInfo.template.cs  $(ProjectDir)PropertiesAssemblyInfo.cs

    说明:通过Solution根目录下的subwcrev.exe 程序 将AssemblyInfo.template.cs 的内容替换到AssemblyInfo.cs

  2.在后期生成事件命令行 添加如下代码:

    $(SolutionDir)subwcrev.exe $(SolutionDir) $(ProjectDir)PropertiesAssemblyInfo.template2.cs  $(ProjectDir)PropertiesAssemblyInfo.cs

    说明:通过Solution根目录下的subwcrev.exe 程序 将AssemblyInfo.template2.cs 的内容替换到AssemblyInfo.cs

第五步:生成项目

原文地址:https://www.cnblogs.com/yf2011/p/4463059.html