Добрый день. Подскажите, может есть встроенная возможность в студии автоматом увеличивать версию в ресурсе VS_VERSION_INFO для обычного MFC'шного приложения... ну или может плагин какой для студии есть...
Помню для VS6.0 был такой...)
Здравствуйте, .alex, Вы писали:
A>Помню для VS6.0 был такой...)
Я несколько раз пытался использовать такие плагины, и все они в каких-то конфигурациях глючили. В итоге пришлось вынести определение номера билда в отдельный .h, и сгородить скрипт, который его увеличивает после билда или перед ним.
Здравствуйте, .alex, Вы писали:
A>Добрый день. Подскажите, может есть встроенная возможность в студии автоматом увеличивать версию в ресурсе VS_VERSION_INFO для обычного MFC'шного приложения... ну или может плагин какой для студии есть... A>Помню для VS6.0 был такой...)
Я через настройку проекта Pre-Build steps вызывал самописный то ли батник, то ли исполняемый файл самописный, который инкрементил версию build'а.
Здравствуйте, .alex, Вы писали:
A>Добрый день. Подскажите, может есть встроенная возможность в студии автоматом увеличивать версию в ресурсе VS_VERSION_INFO для обычного MFC'шного приложения... ну или может плагин какой для студии есть... A>Помню для VS6.0 был такой...)
Версия билда бессмысленна без CI/CD, IMHO. Т.е. без водзможности получить ровно этот билд и его исходники.
А в CI/CD это делается скриптом.
Здравствуйте, bnk, Вы писали:
bnk>Версия билда бессмысленна без CI/CD, IMHO. Т.е. без водзможности получить ровно этот билд и его исходники. bnk>А в CI/CD это делается скриптом.
Для гита, например, команда git describe --tags выдает последний тэг и коммит, которые можно использовать при сборке. Сразу понятно, что за версия использовалась и ее легко воспроизвести.
Это лучше чем простой автоинкремент.
Здравствуйте, BSOD, Вы писали:
BSO>Здравствуйте, bnk, Вы писали:
bnk>>Версия билда бессмысленна без CI/CD, IMHO. Т.е. без водзможности получить ровно этот билд и его исходники. bnk>>А в CI/CD это делается скриптом. BSO>Для гита, например, команда git describe --tags выдает последний тэг и коммит, которые можно использовать при сборке. Сразу понятно, что за версия использовалась и ее легко воспроизвести. BSO>Это лучше чем простой автоинкремент.
Хэш некрасиво в About выглядит, и для инсталлятора бесполезен, придется вводить вторую нумерацию все равно (т.е. чтобы сравнивать на больше-меньше)
Я делаю <major>.<minor>.<build>
minor и major прописываются вручную (как минимум раз в год)
build = <day of the year*100>+<builds this day>
Третья цифра чтобы была меньше 65,535 (ограничение MSI)
Четыре цифры не используется поскольку инсталлятор (MSI) четвертую игнорирует.
Правда такая схема не позволяет делать больше 100 билдов вдень. Но оно мне и не надо
Здравствуйте, bnk, Вы писали:
bnk>Хэш некрасиво в About выглядит,
Сокращенный хэш нормально выглядит.
bnk>и для инсталлятора бесполезен, придется вводить вторую нумерацию все равно (т.е. чтобы сравнивать на больше-меньше)
Выхлоп git describe --tags содержит номер коммита после последнего тэга.
А хэш можно откусить, там где он мешает. Я так и делаю.
Хотя в гите порядок коммитов — вещь условная — в этом может быть проблема...
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, .alex, Вы писали:
A>>Добрый день. Подскажите, может есть встроенная возможность в студии автоматом увеличивать версию в ресурсе VS_VERSION_INFO для обычного MFC'шного приложения... ну или может плагин какой для студии есть... A>>Помню для VS6.0 был такой...)
bnk>Версия билда бессмысленна без CI/CD, IMHO. Т.е. без водзможности получить ровно этот билд и его исходники. bnk>А в CI/CD это делается скриптом.
Да у меня все просто, нет git'a и мне хотелось бы чтобы если что-то пофиксил небольшое, то версия/билд автомом была больше, чем у предыдущего exe... Руками править забываю иногда...
Видимо без скрипта, кторый правит файл не обойтись... А нет кстати у кого-нибудь готового, чтобы он *.rc файл проекта в части версии правил?
Здравствуйте, .alex, Вы писали:
A>Видимо без скрипта, кторый правит файл не обойтись... А нет кстати у кого-нибудь готового, чтобы он *.rc файл проекта в части версии правил?
Не надо править файлы .c/.cpp/.rc. Надо сделать отдельный файл .h, в котором будет только определение номера билда, и вставлять (#include) его в основные файлы.
Если хочется иметь в бинарнике содержательную запись о версии — сделайте один раз универсальный .rc-файл, забейте все позиции макросами, которые определяются во внешних .h-файлах, и вставляйте везде, где нужно.
Здравствуйте, .alex, Вы писали:
bnk>>Версия билда бессмысленна без CI/CD, IMHO. Т.е. без водзможности получить ровно этот билд и его исходники. bnk>>А в CI/CD это делается скриптом.
A>Да у меня все просто, нет git'a
A>и мне хотелось бы чтобы если что-то пофиксил небольшое, то версия/билд автомом была больше, чем у предыдущего exe... Руками править забываю иногда... A>Видимо без скрипта, кторый правит файл не обойтись... А нет кстати у кого-нибудь готового, чтобы он *.rc файл проекта в части версии правил?
Настрой лучше нормальный билд на сервере. MFC вполне себе билится на бесплатном Azure DevOps. Лучше день потерять, потом за пять минут долететь
bnk>Настрой лучше нормальный билд на сервере. MFC вполне себе билится на бесплатном Azure DevOps. Лучше день потерять, потом за пять минут долететь
Не, я сварщик не настоящий) Не знаю как это сделать... Ладно, сделаю *.h с версией и скрипт на powershell и пусть он этот h правит...
Спасибо за ответы!
Здравствуйте, Евгений Музыченко, Вы писали:
A>>Помню для VS6.0 был такой...)
ЕМ>Я несколько раз пытался использовать такие плагины, и все они в каких-то конфигурациях глючили. В итоге пришлось вынести определение номера билда в отдельный .h, и сгородить скрипт, который его увеличивает после билда или перед ним.
Нашёл вот такую инструкцию, где по шагам расписано, как это сделать:
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, .alex, Вы писали:
A>>скрипт на powershell и пусть он этот h правит...
ЕМ>Могу дать свою микротулзу.
Был бы признателен...
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, .alex, Вы писали:
A>>скрипт на powershell и пусть он этот h правит...
ЕМ>Могу дать свою микротулзу.
Был бы признателен...