在Visual Studio 2008中将构建号/构建ID嵌入项目中

3
有时我的测试人员会不明原因地拿到旧版本的项目进行测试,然后报告一些已修复的漏洞,这让我很困惑。
我该如何将版本号嵌入到项目中呢?可以采用当前构建时间,或者从1开始每次构建递增的方式。然后在游戏界面上打印版本号,这样就不会出现测试人员使用哪个软件版本的歧义了。
我已经在谷歌和IRC上询问过相关问题,但是所有的答案似乎只针对C#。
有什么好的建议吗?在Unix上,我会修改Makefile,并添加一行命令来将所需值插入源代码。
目前,我最好的想法是弄清楚VS构建过程的工作原理,然后编写一个Python脚本,在编辑源代码之前先运行它来更新构建号码。
2个回答

3

好的,这里是我的快速、简略和不太美观的解决方案。

我有一个buildid.txt文件,这是一个只有构建ID整数值的文本文件。

我有一个increment-buildid.bat文件。

@echo off
for /f %%a in (buildid.txt) do (
  echo %%a
  set /a num=%%a
)
echo %num%
set /a num += 1
echo %num% > buildid.txt
echo int buildid = %num%; > buildid.c

要搞定Visual Studio的构建过程,右键单击解决方案资源管理器中的解决方案,->属性 ->生成事件 ->预生成事件。现在我知道如何做了,可以在后期构建事件中放入我的zip + scp脚本进行即时上传!(不确定是否会阻塞,需要测试一下)编辑:上传确实是阻塞的。也就是说,在上传完成之前,调试不会开始。我只需使用scp上传另一个批处理文件即可。双击它,然后它就被发送到远程服务器。

2
为了解决同样的问题,我写了一个小工具,它生成一个包含日期/时间戳的头文件,并在预构建步骤中运行。主项目包括生成的头文件,然后您可以在登录横幅或类似位置包含该标记。
在我的项目中,我还生成了一个版本资源,然后将其移动到一个.rc2文件(手动编写的资源)中,并修改它以包含生成的头文件并适当更新版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接