从外部资源管理 VS_VERSION_INFO FILEVERSION
Managing VS_VERSION_INFO FILEVERSION from external resource
我正在使用 VS2019。我有一个解决方案,我有几个共享公共静态库的 C++ 项目。为了管理版本信息,我使用版本资源。
我对可执行文件所做的唯一修改是更改库的代码。所以我希望 exec 的版本由我的 lib 的版本决定。
我在考虑是否可以根据 lib 的版本动态更改我的可执行文件的版本,呃外部资源。例如作为预编译事件?
我只想控制 FILEVERSION 属性。
一种解决方案是将库的版本提取到其中一个 headers 中,并将其包括在内。
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
我正在使用 VS2019。我有一个解决方案,我有几个共享公共静态库的 C++ 项目。为了管理版本信息,我使用版本资源。 我对可执行文件所做的唯一修改是更改库的代码。所以我希望 exec 的版本由我的 lib 的版本决定。
我在考虑是否可以根据 lib 的版本动态更改我的可执行文件的版本,呃外部资源。例如作为预编译事件?
我只想控制 FILEVERSION 属性。
一种解决方案是将库的版本提取到其中一个 headers 中,并将其包括在内。
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