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)Properties\AssemblyInfo.template.cs $(ProjectDir)Properties\AssemblyInfo.cs
说明:通过Solution根目录下的subwcrev.exe 程序 将AssemblyInfo.template.cs 的内容替换到AssemblyInfo.cs
2.在后期生成事件命令行 添加如下代码:
$(SolutionDir)\subwcrev.exe $(SolutionDir) $(ProjectDir)Properties\AssemblyInfo.template2.cs $(ProjectDir)Properties\AssemblyInfo.cs
说明:通过Solution根目录下的subwcrev.exe 程序 将AssemblyInfo.template2.cs 的内容替换到AssemblyInfo.cs

第五步:生成项目
VS 生成 dll、exe 版本号与SVN版本号一致的更多相关文章
- C#:通过Visual Studio项目预生成命令获取SVN版本号
之前有一个winfrom项目,想要通过获取SVN版本号作为程序的内部编译版本号.网上也有各种方法,但没有一篇行得通的方法.于是我经过一系列研究,得出了一些经验,特总结成一篇博客. 方法一:通过SVN命 ...
- 工具——代码中自动生成SVN版本号
本节和大家讨论一下程序集版本最后一位使用SVN版本号的自动生成方法,这里就向大家简单介绍一下.在进行自动部署的时候,经常需要用脚本获取程序的最新版本号.现在我们定义每个程序集的版本信息的最末段表示SV ...
- spring boot 发布自动生成svn版本号
通过Jenkins构建发布spring boot项目时,常常有需求,需要把Svn的版本号更新到项目的版本上,通过有两种解决方案: 1. 通过shell命令对配置文件中的指定字符进行替换, 如: 配置文 ...
- 在VS项目中通过GIT生成版本号作为编译版本号
上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...
- 在VS项目中使用SVN版本号作为编译版本号
在实际项目中(特别是作为产品的项目),版本号是必不可少的一部分.版本号的规则也有许多种,在此不讨论具体的编码规范.对于迭代的产品,版本繁多,特别是有多个实施项目所使用产品的版本不同(基于定制需求)时, ...
- 开发日记:在VS项目中使用SVN版本号作为编译版本号
在实际项目中(特别是作为产品的项目),版本号是必不可少的一部分.版本号的规则也有许多种,在此不讨论具体的编码规范.对于迭代的产品,版本繁多,特别是有多个实施项目所使用产品的版本不同(基于定制需求)时, ...
- 在C++程序中自动加入svn版本号
原创文章,欢迎阅读,如果您想转载,请在第一行醒目注明原作者和原始链接. 为了方便追查和确认软件bug等问题,给软件或者库赋予版本号是个好办法. 最简单的版本号管理是记录编译时间: cout<&l ...
- SVN版本号打包脚本工具
做网页游戏开发的时候,经常会触及到对文件版本号的管理.最近由于做新项目的原因,把原来手写版本号的方法改进了一下,借由svn的版本号生成及用java写了个xml解析输出文件,把手动的东西都变成全自动. ...
- 自己主动化的在程序中显示SVN版本号
有时候会有这种情况,策划拿着应用过来提一个bug,但我们却不好确定策划的手机上装的应用相应的是那个代码版本号. 为了解决问题.我们希望能在应用上显示出当前应用所相应的代码版本号,即svn版本号. 构想 ...
随机推荐
- JDK1.7之Fork/join
Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架.Fork/Join框架要完成两件事情: 1.任务分 ...
- XML基本知识点——思维导图
如图 思维导图图片链接 http://www.edrawsoft.cn/viewer/public/s/5dcd3224563939 有道云笔记图片链接 http://note.youdao.com/ ...
- Pandas IO工具
Pandas I/O API是一套像pd.read_csv()一样返回Pandas对象的顶级读取器函数. 读取文本文件(或平面文件)的两个主要功能是read_csv()和read_table().它们 ...
- 自己用java实现飞鸽传书 2 - 实现文件传输
第二步:实现文件传递. 上一步只是从服务端传递了一个字符串到客户端,这次需要对代码进行调整,实现从服务端获取文件,在客户端将文件存入目标地址. 调整后的代码: 服务端: import java.io. ...
- ES使用中遇到的多种坑,以及解决方案
1.查询不到导致404报错 在使用get或者search进行查询获取文档的时候,如果没有结果会抛出404的异常. 我们当然不希望抛出异常,这时候就要使用ignore这个参数来忽略报错,ignore可以 ...
- 简易的解决方式linker command failed with exit code 1 (use -v to see invocation)
linker command failed with exit code 1 (use -v to see invocation) 遇到这个问题先不要慌,不用纠结是不是自己改动了什么代码导致的. 长话 ...
- 【Python那些事儿之十】range()和xrange()
by Harrison Feng in Python 无论是range()还是xrange()都是Python里的内置函数.这个两个内置函数最常用在for循环中.例如: >>> fo ...
- Android报错Type Error executing aapt: Return code -1 - HTTP 500
我的做法是(乱蒙对的) 把menu.xml干掉!,对的你没看错! 当然其他人方案:如下 1.http://stackoverflow.com/questions/10699439/aapt-filin ...
- CMD控制台下的JAVAC就是“不是内部或外部命令
[Path] 添加 %JAVA_HOME%\bin [JAVA_HOME] D:\Program Files\Java\jdk1.7.0_02 [CLASSPATH] .;%JAVA_HOME%\li ...
- 条款5.了解c++默默编写并且调用了哪些函数。
如果想在一个内含reference成员的class内支持赋值操作,必须自己定义copy assignment操作符.而且面对“内含有const成员的”class,编译器的反应也是相同的,由于更改con ...