Народ,
Я использую VS2010 и пытаюсь синхронизировать версию сборки моего проекта с моим хранилищем Subversion, используя SubWCRev.Это все работает правильно, но я не могу полностью разобраться в одном.Мой файл шаблона состоит из этого:
#define MAJOR_VERSION 2
#define MINOR_VERSION 2
#define MICRO_VERSION 0
#define BUILD_VERSION $WCMODS?$WCREV$+1:$WCREV$$
#define QUOTE_(x) #x
#define QUOTE(x) QUOTE_(x)
#define BUILD_VERSION_STRING QUOTE(MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION.BUILD_VERSION)
Тогда в моем приложении .RC-файл у меня есть:
FILEVERSION MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_VERSION
PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_VERSION
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080004e4"
BEGIN
VALUE "FileVersion", BUILD_VERSION_STRING
VALUE "ProductVersion", BUILD_VERSION_STRING
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x800, 1252
END
END
Как вы, вероятно, можете решить, я пытаюсь собрать сборкуверсия на 1, если есть модифицированный код, чтобы версия сборки в EXE соответствовала номеру ревизии Subversion, когда я делаю релиз и проверяю код. Проблема в том, что BUILD_VERSION расширяется до x + 1 или x + 0, который затем появляетсяв BUILD_VERSION_STRING как "2.2.0.227 + 1", что не совсем то, что я хотел.
Кто-нибудь с немного большим опытом с этим знает способ достижения моей цели?Заранее спасибо