从外部资源管理 VS_VERSION_INFO FILEVERSION

时间:2021-05-20 10:17:07

标签: c++ visual-studio-2019 fileversioninfo

我使用的是 VS2019。我的一个解决方案我有几个 C++ 项目共享一个公共静态库。为了管理版本信息,我使用版本资源。 我对可执行文件所做的唯一修改是更改库的代码。所以我希望 exec 的版本由我的 lib 版本决定。

我在考虑是否可以根据某个版本的 lib 或外部资源动态更改我的可执行文件的版本。例如作为预编译事件?

我只想控制 FILEVERSION 属性。

1 个答案:

答案 0 :(得分:0)

一种解决方案是将库的版本分解到其头文件之一中,并将其包含在内。

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
相关问题