版本号V1*.V2*.V3*.V4* 第四位从svn versioon同步
2016-02-23 09:53
585 查看
实现方式:通过使用SubWCRev.exe获取svn的最新版本号,在项目中添加预编译事件,然后修改模板文件中版本号的参数值,最后覆盖项目中Properties/AssemblyInfo.cs文件实现。
1、 为了方便把svn的工具放到项目的同级目录下,例如:D:Code\Lib\SubWCRev.exe---当然也可以通过批处理脚本从注册表中查找svn的安装目录,然后使用该工具
2、 要做版本控制的项目中增加模板文件。例如Test项目,在路径:D:Code\Test\Properties下新建AssemblyInfo.template.cs文件或者复制一份AssemblyInfo.cs,添加以下代码
[assembly:
AssemblyVersion("1.0.0.$WCREV$")]
[assembly:
AssemblyFileVersion("1.0.0.$WCREV$")]
3、设置AssemblyInfo.cs的编译属性为none
4、 项目中添加编译前事件,脚本:$(SolutionDir)Lib\SubWCRev.exe $(ProjectDir) $(ProjectDir)Properties\AssemblyInfo.template.cs$(ProjectDir)Properties\AssemblyInfo.cs –f
$(ProjectDir) 表示项目的路径,即获取的是该项目的最新svn版本号
若为 $(SolutionDir) 表示解决方案(下面包含N个子项目)的路径,即获取的是整个解决方案的最新svn版本号
由于编译后会修改Assemblyinfo.cs文件,所以我们也可以在编译后事件中添加还原该文件的命令--自行百度。
5、 重新编译项目即可看到新产生的dll文件中是带有该项目最新的版本信息
1、 为了方便把svn的工具放到项目的同级目录下,例如:D:Code\Lib\SubWCRev.exe---当然也可以通过批处理脚本从注册表中查找svn的安装目录,然后使用该工具
2、 要做版本控制的项目中增加模板文件。例如Test项目,在路径:D:Code\Test\Properties下新建AssemblyInfo.template.cs文件或者复制一份AssemblyInfo.cs,添加以下代码
[assembly:
AssemblyVersion("1.0.0.$WCREV$")]
[assembly:
AssemblyFileVersion("1.0.0.$WCREV$")]
3、设置AssemblyInfo.cs的编译属性为none
4、 项目中添加编译前事件,脚本:$(SolutionDir)Lib\SubWCRev.exe $(ProjectDir) $(ProjectDir)Properties\AssemblyInfo.template.cs$(ProjectDir)Properties\AssemblyInfo.cs –f
$(ProjectDir) 表示项目的路径,即获取的是该项目的最新svn版本号
若为 $(SolutionDir) 表示解决方案(下面包含N个子项目)的路径,即获取的是整个解决方案的最新svn版本号
由于编译后会修改Assemblyinfo.cs文件,所以我们也可以在编译后事件中添加还原该文件的命令--自行百度。
5、 重新编译项目即可看到新产生的dll文件中是带有该项目最新的版本信息
相关文章推荐
- 深度学习edusoho之前端插件
- 2016.02.23,英语,《Vocabulary Builder》Unit 01
- CocoaPods安装使用及配置私有库
- MIME协议
- CodeForces 629C Famil Door and Brackets
- easyUI-tree
- bat脚本批量输出文件夹名
- idea Context: local file . file is included in 3 contexts
- Android--数据库数据显示至屏幕
- (五)带属性值的ng-app指令,实现自己定义模块的自己主动载入
- charles使用方法
- 解决URL string里包含汉字转换NSURL的问题
- 文章标题
- Swift-字典
- jpython LookupError: unknown encoding 'ms936' 问题解决
- OC中description、 SEL、类本质、self和super用法
- builder设计模式
- DBA_UNDO_EXTENTS
- UICollectionView详解和UITableView的区别
- 移除网页滚动条