4

У меня есть проект Visual Studio 2008, который создает файл под названием «Game-Release.exe».Как увеличить номер сборки Visual Studio с помощью C++?

Это была настроена под Свойства проекта ->C/C++ ->Linker ->Общее:

$(OutDir)\$(ProjectName)-Release.exe 

Я хотел бы воспользоваться этой немного дальше, есть увеличивающееся поэтому я бы получил что-то, что говорит:

Game-Release-Build-1002.exe 

Число на конце должно быть добавочное целое число. Я буду хранить сборку exe на подрывной деятельности, поэтому я думаю, что нашел бы ее полезной (хотя и не необходимой).

Возможно, в Visual Studio есть встроенный макрос, который может справиться с этим. Вполне возможно, я думал, что могу иметь текстовый файл с номером сборки в нем и читать компилятор, использовать и увеличивать число в файле каждый раз, когда проект будет построен. Моя цель, однако, сделать процесс максимально автоматическим. Каков наилучший способ сделать это?

Если вы дадите свое мнение, пожалуйста, предоставьте код, который мы все можем предоставить. Thnx.

ответ

3

Надстройка, похоже, будет выполнять эту работу.

Обновление: В вашем вопросе конкретно упоминается использование Visual Studio для увеличения версии, но в этом нет ничего автоматизированного. Рассматривали ли вы использование Nant и CI-сервера? Таким образом, легко ввести номер версии SVN в эквивалент AssemblyInfo.cs для C++. Автоматически на сервере сборки.

0

Я не уверен, что у VS2008 есть эта функция, но я думаю, что вы можете сделать это с помощью события post-linker, которое запускает небольшой скрипт, который сделает задачу для вас.

0

Я использую сценарий предварительной сборки (написанный на JavaScript и выполненный с использованием движка cscript.exe), который определяет выпуск майора/младшего, получает номер версии SVN и генерирует магический номер сборки на основе текущей даты. Затем скрипт создает файл version.h, который используется основным приложением (и основным файлом ресурсов приложений для создания ресурса VERSION).

+2

Звучит здорово. Позаботьтесь об этом? –

1

Если вы используете SVN до версии вашего проекта вы можете следовать инструкциям в this link она прекрасно работает для меня, потому что я могу отслеживать ошибки в релиз приложения, используя его информацию о версии и сравнение исходного кода.

Вся информация ниже не входит в ссылке:

  • настроить ваш гс файл как этот версии.гс

    #include "resource.h" 
    #include "version.h" //<-----------Don't forget the include 
    ///////////////////////////////////////////////////////////////////////////// 
    // 
    // Version.rc 
    // 
    VS_VERSION_INFO VERSIONINFO 
    FILEVERSION VER_FILE_VERSION 
    PRODUCTVERSION VER_PRODUCT_VERSION 
    FILEFLAGSMASK 0x17L 
    #ifdef _DEBUG 
    FILEFLAGS 0x1L 
    #else 
    FILEFLAGS 0x0L 
    #endif 
    FILEOS 0x4L 
    FILETYPE 0x1L 
    FILESUBTYPE 0x0L 
    BEGIN 
        BLOCK "StringFileInfo" 
        BEGIN 
         BLOCK "040704b0" 
         BEGIN 
          VALUE "CompanyName", "Your Company Name" 
          VALUE "FileDescription", "Your Application Description" 
          VALUE "FileVersion", VER_FILE_VERSION_STR "\0" 
          VALUE "InternalName", "Internal Name" 
          VALUE "LegalCopyright", "CopyRight stuff - Copyright (C) 2015" 
          VALUE "OriginalFilename", "yourapp.exe" 
          VALUE "ProductName", "Your Application" 
          VALUE "ProductVersion", VER_PRODUCT_VERSION_STR "\0" 
         END 
        END 
        BLOCK "VarFileInfo" 
        BEGIN 
         VALUE "Translation", 0x407, 1200 
        END 
    END 
    
  • Следующая добавить version.h файл в свой проект, который определяет все, настройки, как это:

    #include "svn_version.h" 
    
    #define STRINGIZE2(s) #s 
    #define STRINGIZE(s) STRINGIZE2(s) 
    
    #define VERSION_MAJOR    1 
    #define VERSION_MINOR    0 
    #define VERSION_REVISION   SVN_REVISION 
    #define VERSION_BUILD    0 
    
    #if SVN_LOCAL_MODIFICATIONS 
        #define VERSION_MODIFIER "M" 
    #else 
        #define VERSION_MODIFIER 
    #endif 
    
    #define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD 
    #define VER_FILE_VERSION_STR  STRINGIZE(VERSION_MAJOR)  \ 
    "." STRINGIZE(VERSION_MINOR) \ 
    "." STRINGIZE(VERSION_REVISION) \ 
    "." STRINGIZE(VERSION_BUILD) \ 
    
    #define VER_PRODUCT_VERSION   VER_FILE_VERSION 
    #define VER_PRODUCT_VERSION_STR  VER_FILE_VERSION_STR 
    

после этого вы можете следовать link выше.

Смежные вопросы