2009-05-21 85 views

回答

7

我不知道這是你想要去的方式,但.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 

引用所有項目中的一個頭文件,並在每次構建之前更改它。

1

我們使用FinalBuilder編譯我們的版本,並讓它通過文件(作爲文本文件)並使用正確的版本信息進行更新。

1

最簡單的實現方法是使用預構建步驟,爲所有資源文件調用某種腳本(sed/awk,PowerShell等),並在合適的位置放入正確的值。如果你使用SVN,那麼TortoiseSVN發行版中的SubWCRev也可以用於這部分,並且可以自動使用版本庫中的版本號作爲版本字符串。

相關問題