Version в MVS 2008
От: k55 Ниоткуда  
Дата: 13.08.10 09:06
Оценка:
День добрый.
Проблема:
Есть проект на C++.
В нем набор модулей.
Каждый модуль имеет rc файлы.
В каждом rc есть стандартный блок Version в котором описывается версия сборки.

Сейчас реализовано вот так:
#include "ProjectVersion.h"

VS_VERSION_INFO VERSIONINFO
 FILEVERSION VERSION_NUMBER
 PRODUCTVERSION VERSION_NUMBER
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904B0"
        BEGIN
            VALUE "FileDescription", "MyDLLName DLL"
            VALUE "FileVersion", VERSION_STRING  "\0"
            VALUE "InternalName", "MyDLLName"
            VALUE "LegalCopyright", "Copyright (C) 2007"
            VALUE "OriginalFilename", "MyDll.DLL"
            VALUE "ProductName", "SumpLangRu Dynamic Link Library"
            VALUE "ProductVersion", VERSION_STRING  "\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END


В ProjectVersion.h объявлены VERSION_STRING и VERSION_NUMBER.
После успешной ночной сборки циферки в этих дефайнах меняются.
В общем все работает.

Пробле в следующем. При изменении rc студия убивает строку #include "ProjectVersion.h"
и вместо VERSION_NUMBER ставит 0.0.0.0 ,
а вместо VERSION_STRING "\0" ставит "0.0.0.0"

Подскажите как правильно прописать в студии номер версии сборки? Что бы студия не затирала версии нулями. Спасибо


13.08.10 17:11: Перенесено из 'C/C++. Прикладные вопросы'
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.