我正在使用 VS2019。我有一个解决方案我有几个 c++ 项目共享一个公共静态库。为了管理版本信息,我使用版本资源。我对可执行文件所做的唯一修改是更改库的代码。所以我希望 exec 的版本由我的 lib 版本决定。
我在考虑是否可以根据 lib 版本(或者外部资源)动态更改可执行文件的版本。例如作为预编译事件?
我只想控制 FILEVERSION 属性。
我正在使用 VS2019。我有一个解决方案我有几个 c++ 项目共享一个公共静态库。为了管理版本信息,我使用版本资源。我对可执行文件所做的唯一修改是更改库的代码。所以我希望 exec 的版本由我的 lib 版本决定。
我在考虑是否可以根据 lib 版本(或者外部资源)动态更改可执行文件的版本。例如作为预编译事件?
我只想控制 FILEVERSION 属性。
一种解决方案是将库的版本分解到其标头之一中,并将其包含在内。
include/MyLib/Version.rh
:
#pragma once
#define MYLIB_VERSION_STR() "1.0.0"
#define MYLIB_VERSION_COMMA() 1, 0, 0, 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