Visual studio 2008 使用陆龟版本化版本号vn

Visual studio 2008 使用陆龟版本化版本号vn,visual-studio-2008,svn,build-process,tortoisesvn,Visual Studio 2008,Svn,Build Process,Tortoisesvn,多个副本: 我正在使用OrtoiseSVN,SVN服务作为windows服务器上的服务运行 我希望在项目提交时或之后更新项目中的版本/内部版本号。因此,项目的正确版本/构建将反映在多个地方,如日志文件、资源表、帮助>关于等 谢谢…在制作EXE、安装文件等之前,您可以在构建脚本和其他地方执行此操作- 我将其添加到我的资源/版本信息中的做法是为我的rc文件创建一个模板文件,使用宏替换,然后在我的EXE项目的预构建步骤中添加对SubWCRev的调用 看 这是一个你可以使用的工具 $WCREV$是被当

多个副本:


我正在使用OrtoiseSVN,SVN服务作为windows服务器上的服务运行

我希望在项目提交时或之后更新项目中的版本/内部版本号。因此,项目的正确版本/构建将反映在多个地方,如日志文件、资源表、帮助>关于等


谢谢…

在制作EXE、安装文件等之前,您可以在构建脚本和其他地方执行此操作-

我将其添加到我的资源/版本信息中的做法是为我的rc文件创建一个模板文件,使用宏替换,然后在我的EXE项目的预构建步骤中添加对SubWCRev的调用

这是一个你可以使用的工具

$WCREV$是被当前svn版本替换的宏


每个模板文件都在SVN存储库中,但编译/解释的实际文件是从这些文件生成的。因此,在生成每个生成的输出(exe、安装程序、发行说明等)之前,您可以运行subwcrev工具并替换宏。

在生成exe、安装文件等之前,您可以在构建脚本和其他位置执行此操作-

我将其添加到我的资源/版本信息中的做法是为我的rc文件创建一个模板文件,使用宏替换,然后在我的EXE项目的预构建步骤中添加对SubWCRev的调用

这是一个你可以使用的工具

$WCREV$是被当前svn版本替换的宏


每个模板文件都在SVN存储库中,但编译/解释的实际文件是从这些文件生成的。因此,在生成每个生成的输出(exe、安装程序、发行说明等)之前,您需要运行subwcrev工具并替换宏。

将某些内容集成到构建过程中,该过程会将当前SVN版本写入源文件(例如revision.h,其中仅包含“const int revision=xxx;”)它不受版本控制(svn:ignore),并将其包含在构建中

下面是一个非常简单的片段来了解这个想法:

echo "const int revision = `svn info | grep Revision | cut -d":" -f 2`;" > revision.h

将某些内容集成到构建过程中,将当前SVN版本写入不受版本控制(SVN:忽略)的源文件(例如,revision.h,其中仅包含“const int revision=xxx;”),并将其包含在构建中

下面是一个非常简单的片段来了解这个想法:

echo "const int revision = `svn info | grep Revision | cut -d":" -f 2`;" > revision.h

您可以使用修订标签

选择一个文件,该文件将包含一些带有修订号的变量/常量。将svn:keywords svn属性和修订值添加到此文件(RMB on file,TortoiseSVN->Properties->New,“svn:keywords”作为名称,“Revision”作为值)。现在,在这个文件中,每个出现的“$Revision$”标记都将被替换为“$Revision:7$”。 不幸的是,这将是这个文件的唯一版本,所以每次构建数量增加时都必须“触摸”它


您可以在

中找到更多以这种方式工作的关键字。您可以使用修订标签

选择一个文件,该文件将包含一些带有修订号的变量/常量。将svn:keywords svn属性和修订值添加到此文件(RMB on file,TortoiseSVN->Properties->New,“svn:keywords”作为名称,“Revision”作为值)。现在,在这个文件中,每个出现的“$Revision$”标记都将被替换为“$Revision:7$”。 不幸的是,这将是这个文件的唯一版本,所以每次构建数量增加时都必须“触摸”它


您可以在

中找到更多无法从资源文件或安装脚本访问的关键字。subwcrev是你想要的。我不会说subwcrev不是正确的选择——它可能是针对OP的问题。但我的建议确实可以从资源文件或安装脚本中访问。您还可以使用“sed”替换占位符,就像subwcrev那样。另外,它将是跨平台(Cygwin)的,并可用于未安装图形SVN客户端的CI构建从属服务器。这将无法从资源文件或安装脚本访问。subwcrev是你想要的。我不会说subwcrev不是正确的选择——它可能是针对OP的问题。但我的建议确实可以从资源文件或安装脚本中访问。您还可以使用“sed”替换占位符,就像subwcrev那样。此外,它将是跨平台的(Cygwin),并可用于未安装图形SVN客户端的CI构建从属。