首页 > 解决方案 > 通过脚本或命令行编辑 .rc 资源文件?

问题描述

尝试使用 Jenkins 在 C++ Windows 应用程序构建中自动化我们的一些流程。我们想要做的是自动更新资源文件(.rc)中的版本信息。目前有一个脚本提示用户他们想要发布哪个版本,并为自动构建做好一切准备,即创建分支等。

我们希望更新 .rc 文件的过程的一部分。是否有可以从命令行运行的以编程方式编辑 .rc 文件的工具?

标签: visual-studiojenkinsresource-files

解决方案


首先,您应该将下面的代码放在一个.rc2既不被 Visual Studio 解释也不修改的文件中,并将该文件包含在您的.rc文件中。

为了产生版本字符串,您需要两个帮助函数将字符串化的数字连接成一个字符串。

F1可以通过F4包含头文件来定义变量。理想情况下,您会根据用户输入创建一个仅定义这四个变量的标题。这使您的代码库的其余部分保持不变。该方法与产品版本相同。

#define F1 1  // Defined by an included header
#define F2 2
#define F3 3
#define F4 4

// MyAppVersionInfo.rc2
#define STRTMP(V1, V2, V3, V4) #V1 "." #V2 "." #V3 "." #V4
#define STR(V1, V2, V3, V4) STRTMP(V1, V2, V3, V4)
#define FVC F1,F2,F3,F4
#define FVS STR(F1,F2,F3,F4)

VS_VERSION_INFO VERSIONINFO
  FILEVERSION    FVC
  ...
    VALUE "FileVersion", FVS

请注意,我在此示例中选择了非常短的标识符以使stackoverflow.com满意。


推荐阅读