使用Visual Studio 2008和SVN在C++中进行自动转换

AZh*_*Zhu 4 c++ svn version visual-studio-2008 visual-c++

我正在使用MS Visual Studio 2008在C++中进行一些开发工作,目前我们有一个版本函数,它返回一个代表版本号的硬编码字符串.我想找出一种方法,这样它可以从1开始,而不是硬编码的数字,每次我进行调试或发布版本时都会增加1(或者甚至更好,跟踪调试版本和发布版本号).或者,如果无法做到这一点,请使用当前日期/时间作为版本号.

请注意,因为将有几个人在使用该项目并使用SVN,所以代码必须与计算机无关(这意味着如果我目前使用的是版本100,我的同事的最后版本是90版,那么下一次(之后)我检查代码,我的同事拿出代码),他下一次编译的版本号应该是101而不是91.)

能否请你帮忙?

han*_*aad 6

如果您使用的是TortoiseSVN,则可以在预构建事件中使用subwcrev.exe将当前修订号写入源文件.

因此,签入文件version.template.hpp并添加类似的内容

  const string version = "13.12.0.$WCREV$";
Run Code Online (Sandbox Code Playgroud)

添加项目预构建事件

subwcrev.exe "$(SolutionDir)." "$(ProjectDir)version.template.hpp" 
             "$(ProjectDir)version.hpp"
Run Code Online (Sandbox Code Playgroud)

并包括生成的文件#include "version.hpp".