VC自动生成软件版本号

flyfish

目的:

软件的版本有主版本号.子版本号.修正版本号.编译版本号

其中编译版本号与SVN服务器的版本号(Revision)自动同步。

环境

需要在本机安装TortoiseSVN

第一步

在项目的.rc文件中搜索VS_VERSION_INFO VERSIONINFO

按照下面例子更改

#ifdef _AUTO_INCREMENT_VERSION
         FILEVERSION2,0,4,$WCREV$
         PRODUCTVERSION2,0,4,$WCREV$
#else
         FILEVERSION2,0,4,1
         PRODUCTVERSION2,0,4,1
#endif

#ifdef _AUTO_INCREMENT_VERSION
         VALUE"FileVersion", "2.0.4.$WCREV$"
         VALUE"ProductVersion", "2, 0, 4, $WCREV$"
#else
         VALUE"FileVersion", "2.0.4.1"
         VALUE"ProductVersion", "2, 0, 4, 1"
#endif

如果不写条件编译命令 #ifdef,#else,#endif 直接更改2,0,4,$WCREV$。VC的资源视图无法解析 $WCREV$。

undefined keyword or key name: $WCREV$

第二步

VC环境设置 项目属性-》生成事件-》预先生成事件 命令行

拷贝如下两行

C:\ProgramFiles\TortoiseSVN\bin\subwcrev.exe $(SolutionDir)$(ProjectDir)$(ProjectName).rc $(ProjectDir)$(ProjectName).rc_
rc.exe /fo$(ProjectDir)$(IntDir)$(ProjectName).res /d _AUTO_INCREMENT_VERSION /d _AFXDLL$(ProjectName).rc_

C:\ProgramFiles\TortoiseSVN\bin\subwcrev.exe 更改你自己的TortoiseSVN安装路径

工具1:SubWCRev.exe

SubWCRev.exe是TortoiseSVN自带的工具,通过TortoiseSVN\bin目录下的SubWCRev.exe命令行工具

读取服务器的Revision修正版本号

在模版中执行关键字替换,达到修改同步本地版本号的目的。

命令行参数

SubWCRev WorkingCopyPath [SrcVersionFileDstVersionFile] [-nmdfe]

工具2:rc.exe

rc.exe是VC自带的资源编译器ResourceCompiler 。

命令行参数

RC [options] script-file

options是编译选项,script-file是编译的脚本文件

fo 创建res文件名称

d 为预处理器(preprocessor)定义符号

_AFXDLL 表示在共享DLL中使用MFC

宏说明

$(SolutionDir)  解决方案的目录(定义为驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectDir)    项目的目录(定义为驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectName)        项目的基本名称。

$(IntDir)   为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。

参考链接

Using RC (The RC Command Line)

生成命令和属性的宏

The SubWCRev Command Line

时间: 2024-10-17 07:07:31

VC自动生成软件版本号的相关文章

网站推荐的代码自动生成软件实际使用感触

今天测试下我下载的三个代码自动生成软件: Thelei Code Generator 1.1 Autojava myGeneration 实践结果: Thelei Code Generator 1.1 这个软件相当垃圾,生成的项目我为了图简单放在了桌面上,也幸亏是放在了桌面上,桌面上就是写软件快捷方式,没有什么重要且大的文件,如果是放在了磁盘是,此次操作后果不堪设想.原因是我点击生成之前,有个选项英文提示是生成之前先删除目标文件,ok,我存放在了桌面上,结果什么都没有生成,竟然把我桌面上的文件全

CSS雪碧图自动生成软件

http://www.99css.com/1524/ 包含详细的下载地址.下载步骤以及使用教程 亮点:自动合成雪碧图+自动生成雪碧图background-position代码

C#程序自动更新软件版本号

最近因为服务器程序管理多,所以在查看服务器程序的时候,只能通过EXE的编译时间来判断服务器程序版本时间,费神伤身啊 现在想了一个方式,在目录下新增一个version文件,里面写上年月日,并且只是在程序调试编译时才会更新version文件,以达到记录程序版本号的目的 1 if (Debugger.IsAttached)//判断是否调试编译,是的话则将当前年月日写入文件 2 { 3 using (FileStream file = new FileStream(Application.Startup

工具——基于SVN的代码中自动生成版本号

SVN一般都是团队合作做一个项目所需用到的,为了是版本的统一, 我现在用的版本是 AnkhSvn-2.1.7141.181.msiSVN取出[SVN checkout]:从档案库中取出工作复本. 汇出[Export]:从档案库中汇出干净的工作复本,不含svn管理用数据夹. 汇入[Import]:汇入目录至档案库. SVN Commit[SVN送交]:将你所做的修改送交至档案库. SVN Update[SVN更新]:更新工作复本至目前档案库的最新版本. Update to reversion[更新

.net自动生成版本号

在 AssemblyInfo.cs 文件中 修改 一下属性 [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] 将这部分代码 替换为 [assembly: AssemblyVersion("1.0.*")] 这样子 编译 查看文件的属性 会 发现 文件版本 和 产品版本 就变成一个 随机数了 在程序集中获取当前 程序集的版本 Assem

最好的 Xcode 自动生成版本号技术

在 bloglovin ,我们使用自动生成版本号来设置Xcode,使当前的版本号为在Git活跃的分支上 的提交数.它一直正常工作着,但我们的技术也不是一帆风顺的. 糟糕的老方法 我们使用的技术是来自一个叫 “Cocoa is my Girlfriend”1 的网友发表的一篇文章,真是个不可 原谅的名字.它工作原理如下: 1. 运行一个脚本拿到Git提交数并把它输出到一个 “infoplistwhatever.h” 文件中.这个文件名称 是什么并不重要. 2. 在Xcode中选择 Target 中

机械erp管理软件-采购缺料自动生成

信华8.01行业专业版适合中小型五金机械生产性企业,特别是产品子物料众多.产品工作流程复杂.工艺要求高的产品.因为信华8.01行业专业版在以前版本的基础上特别增加了"产品工艺单"的管理功能,"产品工艺单"上可录入产品详细的编号.图号.仓位.工序.子物料bom.图片.工程管理文档(包括CAD图纸.表格等数据都可以打包保存).这样专业的工艺管理,可以解决工厂产品工艺缺失的,更新不及时,资料不统一的漏洞.针对中小型五金机械生产性企业对生产流程的关注,软件重点设计了生产进度

Jenkins持续部署-自动生成版本号

目录 Jenkins持续部署-自动生成版本号 目录 前言 目的 详细流程 获取SVN Reversion 获取需求号 设置编译前读取版本号 总结 参考文献 Jenkins持续部署-自动生成版本号 目录 Jenkins持续集成学习-Windows环境进行.Net开发1 Jenkins持续集成学习-Windows环境进行.Net开发2 Jenkins持续集成学习-Windows环境进行.Net开发3 Jenkins持续集成学习-Windows环境进行.Net开发4 Jenkins持续集成学习-搭建j

输入关键词自动生成文章软件!提供技术开发原理

朋友们大家好!今天又要来给大家上一课吧,关于输入关键词自动生成文章的软件大家觉得网上有没有?答案:肯定是没有!那么我们今天就给大家带来这么一款软件,我们只需要输入你的关键词就能自动生成原创文章,这个工具是我用易语言开发的,我们先给大家演示一下吧! 大家看到了确实是可以生成的,代码其实非常上,我们给大家看下代码吧!主要就是对接了第三方的API实现的.总共算下来代码还不到10行,居然可以实现这种效果,其实并不是我的软件开发的厉害,而是对接了第三方平台提供的API接口,那么这个接口地址我们不方便提供哈