visual-studio - 在 Visual Studio C++ (Win32) 项目中同步版本资源

标签 visual-studio version

我有一个包含大约 8 个独立项目的解决方案,每次我对整个解决方案进行发布构建时,我都需要确保每个项目的二进制输出的版本字符串相同。有没有一种简单的方法来同步项目资源文件的 VS_VERSION_INFO 部分?

最佳答案

我不知道这是您想要的方式,但是 .rc文件允许包含,您可以使用 #define版本块中的值

在头文件中定义版本号


#define VER_MAJOR 8
#define VER_MINOR 00
#define VER_BUILD_HI    00
#define VER_BUILD_LO 021
#define VER_FLAGS   VS_FF_PRERELEASE


// The Binary form of the version numbers
#define VER_FILE    VER_MAJOR, VER_MINOR, VER_BUILD_HI, VER_BUILD_LO
#define VER_PRODUCT VER_MAJOR, VER_MINOR, 0, 0

#define VER_STR(arg) #arg

// The String form of the version numbers
#define VER_FILE_STRING VALUE "FileVersion", "8.0\0"
#define VER_PRODUCT_STRING VALUE "ProductVersion", "8.0\0"

VS_VERSION_INFO 中使用它们堵塞

#include "bversion.h" //#define values in here

VS_VERSION_INFO VERSIONINFO
 FILEVERSION VER_FILE
 PRODUCTVERSION VER_PRODUCT
 FILEFLAGSMASK 0x2fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "Comments", "\0"
            VALUE "CompanyName", "XXX\0"
            VALUE "FileDescription", "YYY\0"
            VER_FILE_STRING
            VALUE "InternalName", "ZZZ\0"
            VALUE "LegalCopyright", "© 2009 PDQ.\0"
            VALUE "LegalTrademarks", "AAA\0"
            VALUE "OriginalFilename", "BBB.EXE\0"
            VALUE "PrivateBuild", "\0"
            VALUE "ProductName", "CCC\0"
            VER_PRODUCT_STRING
            VALUE "SpecialBuild", "\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

在所有项目中引用一个头文件并在每次构建之前更改它。

关于visual-studio - 在 Visual Studio C++ (Win32) 项目中同步版本资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894329/

相关文章:

c# - C# 中不允许使用密码学随机生成器种子吗?

c# - 如何设计一个类属性是否发生变化?

delphi - 在构建 Delphi 应用程序时生成增量版本

ios - 为什么我的应用程序在我调用 objectForInfoDictionaryKey : CFBundleShortVersionString 时崩溃

android - 最新 AOSP 中最新版本的 ADB 是什么?

ios - 检查我的应用程序在 AppStore 上是否有新版本

visual-studio - 将 VSIX 包标记为需要重新启动

c - 为什么 64 位 Visual Studio C 中的 CreateWindow 在创建时会自行销毁?

c++指针比较器未编译

c# - 合并到单个程序集时获取库版本