在Windows应用程序中编译时embeddedSVN修订版本号

我希望我的.exe能够访问我的svn版本的资源string。 我可以手工input,但我更喜欢在编译时自动embedded。 Visual Studio 2008中是否有这样的function?

我想要一个类似的可用性,发现$ Rev $是不够的,因为如果该文件的修订版本被更改,它只会更新为一个文件(这意味着它将不得不被编辑和承诺的时间,而不是我想做的事情)。 ,我想要一些基于版本库修订号的东西。

对于我现在正在处理的项目,我编写了一个Perl脚本,该脚本从我的工作副本的最顶级目录运行svnversion -n ,并将最新版本信息输出到.h文件(实际上我将它与一个已保存的在我的工作副本中的非版本化文件中进行反转,这样我就不会在每次编译时覆盖当前的修订版本信息,但是是否选择这样做取决于您。)这个.h文件(或者一些必要的文件,取决于你的方法)在我的应用程序代码和资源文件中被引用,以获得我想要的信息。

此脚本作为预构建步骤运行,以便在构建开始之前将所有内容都更新,并使用构建工具自动重建相应的文件。

如何使用SubWCRev与TortoiseSVN一起提供的命令行工具。 你创建一个带有标记的模板文件,像$ WCREV $ $ WCDATE $等。然后有一个预生成的步骤,在你的模板文件上运行SubWCRev来创建送到编译器的实际源文件。

如果能解决问题,你可以得到SVN嵌入它 。 请参阅该页面上的$ Rev $关键字。

看看这里的 svn关键字替换。 在这里还有另一个SO问题,我通过谷歌找到!

antik的解决方案是我们使用的。 小心使用环境变量,.h文件确保你可以有一个依赖,这将导致任何需要它的文件在svn rev编号改变时被重新编译。