问题描述
我使用的是 VS2019。我的一个解决方案我有几个 C++ 项目共享一个公共静态库。为了管理版本信息,我使用版本资源。 我对可执行文件所做的唯一修改是更改库的代码。所以我希望 exec 的版本由我的 lib 版本决定。
我在考虑是否可以根据某个版本的 lib 或外部资源动态更改我的可执行文件的版本。例如作为预编译事件?
解决方法
一种解决方案是将库的版本分解到其头文件之一中,并将其包含在内。
include/MyLib/Version.rh
:
#pragma once
#define MYLIB_VERSION_STR() "1.0.0"
#define MYLIB_VERSION_COMMA() 1,0
然后您可以将其 #include
放入库的 RC 文件以及您的项目中,并在 VERSION
资源中使用它:
#include <MyLib/Version.rh>
VS_VERSION_INFO VERSIONINFO
FILEVERSION MYLIB_VERSION_COMMA()
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "FileVersion",MYLIB_VERSION_STR()
END
END
END