visual-studio - 通过脚本或命令行编辑 .rc 资源文件?
问题描述
尝试使用 Jenkins 在 C++ Windows 应用程序构建中自动化我们的一些流程。我们想要做的是自动更新资源文件(.rc)中的版本信息。目前有一个脚本提示用户他们想要发布哪个版本,并为自动构建做好一切准备,即创建分支等。
我们希望更新 .rc 文件的过程的一部分。是否有可以从命令行运行的以编程方式编辑 .rc 文件的工具?
解决方案
首先,您应该将下面的代码放在一个.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满意。
推荐阅读
- swift - 结合 Publishers.Merge 但与 Publishers.combineLatest 行为
- r - 对 .mat 文件中的数据使用 mclust
- android - 如何使用 MVVM 观察 Emited LiveData
- excel - Excel VBA 仅打印一行
- javascript - 在 reactjs 中过滤 api 响应
- oracle - Oracle 唯一约束或索引
- angular8 - 延迟加载路线上的角度,动态参数不起作用
- laravel - 如何从 OctoberCMS 中的代码访问标记树枝变量
- python - 在数据混合的csv中分离两列的正确方法是什么?
- python - Pandas.DataFrame:查找给定列中值最接近(但低于)指定值的行的索引