Номер Build'а
От: KAY  
Дата: 19.12.01 17:26
Оценка:
Народ, извините, если спрашиваю о том, что уже обсуждалось, НО :
возникла необходимость в About программы вставить номер ее Build'а...
Как это сделать ??? (кроме как ручками прописывать )
Меньше знаешь — лучше спишь...
Re: Номер Build'а
От: TepMuHyc  
Дата: 19.12.01 18:16
Оценка: 4 (1)
Здравствуйте KAY, Вы писали:

KAY>Народ, извините, если спрашиваю о том, что уже обсуждалось, НО :

KAY>возникла необходимость в About программы вставить номер ее Build'а...
KAY>Как это сделать ??? (кроме как ручками прописывать )
Очнь просто.

1) взять вот эту программку (она на Перле):
$infile  = $ARGV[0];
$buildno = $ARGV[1];
$buildno = '__BUILD__' unless $buildno;

open(IN,$infile) || die $!;
open(OUT, ">".($tempfile = "$ENV{'TEMP'}\\$ARGV[0].$$")) || die $!;

$processed = 0;
while( <IN> ) {
    m/^\s*#define\s+(\w+)\s+(\w+)\s*/;
    if( $1 eq $buildno ) {
        $_ = "#define\t$buildno\t".($2+1)."\n";
        print "Current build number is: ",($2+1),"\n";
        $processed = 1;
    }
    print OUT $_;
}
close(IN);
close(OUT);
if( $processed ) {
    unlink($infile);
    rename($tempfile, $infile);
} else {
    unlink($tempfile);
    die "*** the line \"#define __BUILD__ xx\" was not found.\n"
}


2) сделать файл "buildno.h" вроде вот такого:

#define    __BUILDNUMBER__ 1234


3) добавить в проект этот файл и назначить ему вот такой вот Custom Build Step:
input file: .\buildno.h
Commands: perl buildno.pl $(InputPath) __BUILDNUMBER__
Outputs: $(IntDir)\version.tmp
Dependencies: $(IntDir)\version.tmp

4) Запускать и радоваться что макрос __BUILDNUMBER__ увеличивается
с каждой попыткой билда

Теперь по поводу вставления этого дела в About:
Я предполагаю что у тебя в темплейте About-бокса есть статик контрол с ID IDC_BUILDNUMBER
Вот тебе код что надо вставить в OnInitDialog() About-бокса:

char szBuildno[32];
sprintf(szBuildno, "%d", __BUILDNUMBER__);
SendDlgItemMessage(hDlg, IDC_BUILDNUMBER, WM_SETTEXT, NULL, szBuildno);
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[2]: Номер Build'а
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 20.12.01 05:01
Оценка: 24 (5)
Здравствуйте TepMuHyc, Вы писали:

TMH>
TMH>#define    __BUILDNUMBER__ 1234
TMH>


я тоже сначала с этим #define и его приращением заморачивался, но потом захотелось, чтобы этот buid совпадал с VERSION ресурсах модуля, да и в About приятнее видеть не только билд, а полную версию и дату сборки, поэтому давненько остановился на связочке — BuildNumberIncreaser by Peter Smolders и классик CVersionApp by Bernd Wissler.
Теперь во всей программе есть доступ ко всем полям из ресурсов VERSION, в AboutDlg же просто пишешь:

BOOL CAboutDlg::OnInitDialog() 
{
   //...
    m_sTimeStamp=theApp.GetAppBuildDate();
    m_sNumVer="MyProg  v " + theApp.GetAppVersion();


и получаем

MyProg v 1.0.13.1512 18.12.2001 13:01:52
Re[3]: Номер Build'а
От: TepMuHyc  
Дата: 20.12.01 13:07
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>Здравствуйте TepMuHyc, Вы писали:

O$>я тоже сначала с этим #define и его приращением заморачивался
Я пошел по другому пути... дело в том что номер билда
(точнее разница между ними) дает определенную информацию о том
сколько промежуточных билдов было между X и Y а, следовательно,
и количестве изменений в программе.

А вот дата бидла такой информации, увы, не дает...

Что же касается VersionInfo, то и я использую ту же методику...
Просто я имею файл version.rc2 в который всключается buildno.h
И номер бидла у меня идет там как 4-я цифра версии...
Вот так вот:
VS_VERSION_INFO VERSIONINFO
.....
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
        ....
            VALUE "ProductVersion", "\""PRODUCT_VERSION1.PRODUCT_VERSION2\""" "\0"
            VALUE "FileVersion",    "\""PRODUCT_VERSION1.PRODUCT_VERSION2.0.__BUILD__\""" "\0"


Для About-бокса я тоже беру версию из VersionInfo...
Только для этой цели использую класс из статьи Пола Ди Лачиа в MSDN Journal.
Правда от оригинального класса осталось уже весьма немного...

ЗЫ. А если тебе без даты билда жизнь не мила, то можно добавить поле "BuildDate" в
VersionBlock, устанавливать его из встроенного макроса "__DATE__" и дело с концом...
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[3]: Номер Build'а
От: KAY  
Дата: 24.01.02 15:51
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>Здравствуйте TepMuHyc, Вы писали:

TMH>>
TMH>>#define    __BUILDNUMBER__ 1234
TMH>>


O$>я тоже сначала с этим #define и его приращением заморачивался, но потом захотелось, чтобы этот buid совпадал с VERSION ресурсах модуля, да и в About приятнее видеть не только билд, а полную версию и дату сборки, поэтому давненько остановился на связочке — BuildNumberIncreaser by Peter Smolders и классик CVersionApp by Bernd Wissler.
O$>Теперь во всей программе есть доступ ко всем полям из ресурсов VERSION, в AboutDlg же просто пишешь:

O$>
O$>BOOL CAboutDlg::OnInitDialog() 
O$>{
O$>   //...
O$>    m_sTimeStamp=theApp.GetAppBuildDate();
O$>    m_sNumVer="MyProg  v " + theApp.GetAppVersion();
O$>


O$>и получаем

O$>MyProg v 1.0.13.1512 18.12.2001 13:01:52

А CVersionApp между прочим глючит, если программку из
сети запустить
Меньше знаешь — лучше спишь...
Re[3]: Номер Build'а
От: e-smirnov  
Дата: 02.08.03 21:07
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте TepMuHyc, Вы писали:


TMH>>
TMH>>#define    __BUILDNUMBER__ 1234
TMH>>


OE>я тоже сначала с этим #define и его приращением заморачивался, но потом захотелось, чтобы этот buid совпадал с VERSION ресурсах модуля, да и в About приятнее видеть не только билд, а полную версию и дату сборки, поэтому давненько остановился на связочке — BuildNumberIncreaser by Peter Smolders и классик CVersionApp by Bernd Wissler.


первая ссылочка уже не работает (много времени прошло с открытия этой темы) — не подскажете, где теперь можно взять BuildNumberIncreaser'а?
Спасибо.
Re[4]: Номер Build'а
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 03.08.03 03:41
Оценка: 2 (1)
Здравствуйте, e-smirnov, Вы писали:

ES>первая ссылочка уже не работает (много времени прошло с открытия этой темы) — не подскажете, где теперь можно взять BuildNumberIncreaser'а?


где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser
Re[5]: Номер Build'а
От: LaFlour Австралия blog: http://spaces.live.com/laflour
Дата: 06.08.03 10:10
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, e-smirnov, Вы писали:


ES>>первая ссылочка уже не работает (много времени прошло с открытия этой темы) — не подскажете, где теперь можно взять BuildNumberIncreaser'а?


OE>где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser

А как его подключать?!
Re[6]: Номер Build'а
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 06.08.03 10:24
Оценка:
Здравствуйте, LaFlour, Вы писали:

OE>>где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser

LF>А как его подключать?!

положить dll в \Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns\, потом в студии Tools — Customize — Add-Ins and Macro Files поставить галочку, ну и панелька должна появится с двумя кнопками через нее настройки increaser-а делаются.
Re[7]: Номер Build'а
От: LaFlour Австралия blog: http://spaces.live.com/laflour
Дата: 06.08.03 11:02
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, LaFlour, Вы писали:


OE>>>где авторская страничка не знаю, а dll-ка вот — BuildNumberIncreaser

LF>>А как его подключать?!
OE>положить dll в \Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns\, потом в студии Tools — Customize — Add-Ins and Macro Files поставить галочку, ну и панелька должна появится с двумя кнопками через нее настройки increaser-а делаются.

А в 7ке как?! Оно вообще под нее работает?!
... << RSDN@Home 1.1 beta 1 >>
Re[8]: Номер Build'а
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 06.08.03 11:10
Оценка:
Здравствуйте, LaFlour, Вы писали:

LF>А в 7ке как?! Оно вообще под нее работает?!


нет, оно только под 6-ку, под 7-ку смотри здесь — http://codeguru.earthweb.com/net_vs_addins/AutoBuildNumber.html, правда надо ручками немного поковырять, но ничего лучше пока не нашел.
Re[4]: Номер Build'а
От: Veter Россия  
Дата: 09.09.03 11:48
Оценка:
Здравствуйте, TepMuHyc, Вы писали:

TMH>            VALUE "ProductVersion", "\""PRODUCT_VERSION1.PRODUCT_VERSION2\""" "\0"
TMH>            VALUE "FileVersion",    "\""PRODUCT_VERSION1.PRODUCT_VERSION2.0.__BUILD__\""" "\0"
TMH>


Как результат получаем, что ни будь типа "5.01.67".
Вопрос, как получит это число без кавычек.

Пример:
Пишем: "5.0." \""BUILD_NUMBER\""" "\0"
Получаем: 5.0."45"
А надо получить: 5.0.45
Re[4]: Номер Build'а
От: Constructor  
Дата: 09.09.03 13:34
Оценка:
Здравствуйте, KAY, Вы писали:

KAY>А CVersionApp между прочим глючит, если программку из

KAY>сети запустить

Кстати, бкувально сегодня заметил, что глючит и в случае, когда программа запущена через автоматизацию. Разобраться, что к чему пока еще некогда.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.