2009-05-21 7 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가이 조각에도 사용될 수 있으며 저장소의 버전 번호를 버전 문자열로 자동 사용할 수 있습니다.

관련 문제