Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Подсчет билдов в VS  (Прочитано 12575 раз)
0 Пользователей и 6 Гостей смотрят эту тему.
Мороженный
Гость
« : 07-07-2008 07:54 » 

Всем здрасти.
Собственно меня интересует есть ли _что-либо_, с помощью которого _автоматически_ подсчитывается кол-во сделанных билдов?
(кто имел дело с дельфи, то там есть такая возможность, только правда она ни в селу ни к городу =) )
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 07-07-2008 08:31 » 

Что значит подсчитывать? Есть возможность автоматически увеличивать билд. А количество... ну посмотри на последнюю цифру собраногоу модуля (exe, dll) и вычти из неё начальную... ИМХО
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
zubr
Гость
« Ответ #2 : 07-07-2008 09:55 » 

Мороженный, попробуй посмотри интерфейсы к VS, в частности vslangproj.tlb, vslangproj2.tlb
А насчет дельфей ты не прав - это хорошая возможность. Я в своих компонентах использовал такую штуку, для отслеживания момента заканчивания билда, чтобы запустить свой процесс компилляции флешки (флеш-компоненты).
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 07-07-2008 10:40 » 

Джон, а где она есть? я обыскался не нашел как это автоматом делать...
есть дефинишн __COUNTER__
а вот как его автоматом в *.rc файл в структуру VERSIONINFO запихнуть?
PS и __TIME__ Тоже очень хочется автоматом)

PPS интересувет все это для MS VS .

zubr, это вроде к С# относится?
« Последнее редактирование: 07-07-2008 10:47 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 07-07-2008 11:09 » 

__TIME__ - это обычная текстовая строка (const char*) , __COUNTER__ я у себя не нашёл ( , но, полагаю, это int
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 07-07-2008 11:37 » 

Я делал так (кстати эта метода подробно описана или в MSDN или KB TEchNet ща уже точно не помню, тк это давно было, а потом отпала необходимость в автоматическом увеличении билда):

1. Поскольку *.rc модифицируется автоматически визуальным редактором по законам, которые одному БГу известны, существует незаметный файл *.rc2. В него выносится весь блок Version

Код:
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
#include "VersionNo.h"
VS_VERSION_INFO VERSIONINFO
 FILEVERSION FILEVER
 PRODUCTVERSION PRODUCTVER

... дальше по тексту


2. Вводим доп. .h файл с дефайнами для версий продукта и файла - численной и строковой - в моём примере это VersionNo.h и инклудируем его. Это делается для удобства парсинга. Он выглядит так, у меня просто версия файла и продукта всегда совпадают, у кого это не так ясно, что нужно сделать:

Код:
#define FILEVER        1,0,1,0
#define STRFILEVER     "1. 0. 1. 0\0"

#define PRODUCTVER     FILEVER
#define STRPRODUCTVER  STRFILEVER



3. Пишем небольшой VB C# и тд скрипт, у кого на что ума хватит, который парсит этот .h-файл и увеличивает последнюю цифру в версиях на 1. Вот так выглядит файл после работы этого скрипта:

Код:
#define FILEVER        1,0,1,1
#define STRFILEVER     "1. 0. 1. 1\0"

#define PRODUCTVER     FILEVER
#define STRPRODUCTVER  STRFILEVER


Ессно, что в этом месте можно делать ВСЁ что угодно.

4. Указываем имя скрипта в соответствующем поле Pre-Build Event или Post-Build Event, как кому какая логика больше нравится.

Я делал это в пост. Те я компилировал текущую версию, после этого у меня увеличивался билд. Те я работаю с версией, которая будет скомпилирована. Но это не есть стандарт.

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


« Последнее редактирование: 09-07-2008 23:26 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 07-07-2008 13:06 » 

ээээ... я надеялся что... другой путь есть. без скриптов. со скриптами как-то даже не интересно.
__COUNTER__  -это Microsoft-Specific. я надеялся что можно как-то его в rc.... вставить.
у меня не вышло(

PS а! __COUNTER__ работает через precompiled headers) а у меня они как раз отключены)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 07-07-2008 13:19 » 

Хммм... в rc по определению ничего вставлять нельзя.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 07-07-2008 13:24 » 

разве? у меня вроде получалось... в .rc
 FILEVERSION 2,7,0,__COUNTER__
только он не щелкал, почему то на 1 постоянно.
 как я теперь выяснил из за отсутствия precompiled headers)
« Последнее редактирование: 07-07-2008 13:28 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #9 : 07-07-2008 15:17 » 

Нет, физически это конечно можно делать. Только теперь тебе его нельзя в визуальном редакторе ресурсов сохранять. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 07-07-2008 15:29 » new

ага... действительно... (он и не открывает)

значит вывод такой:
1 штатным средством __COUNTER__ в FILEVERSION в *.rc2 и при использовании precompiled headers.
2 либо то же самое, но - скриптом)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Мороженный
Гость
« Ответ #11 : 07-07-2008 15:31 » 

>> у себя не нашёл
советую и дальше продолжать использовать vs98.. ^)

Джон, это не подойдёт. Я лучше вручную считать буду чем писать какие то скрипты да ещё на c#

Ochkarik, практически не использую precompiled =/

в общем хотели как лучше получилось как всегда Улыбаюсь
всем спасибо
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #12 : 07-07-2008 15:55 » 

А чё вы так скриптов-то боитесь да предкомпилированных хидеров? Простая басиковская субротинка поиска и замены текста. Один раз сделал и забыл.
Нормальная метода. Вот вам во всех подробностях с кодом на басике, можно не писать, а копипастнуть:
http://support.microsoft.com/kb/237870

зы Блин, мне бы ваши проблемы... Чесслово. Ага А остальное это всё суеверия. Пора избавляться и жить сразу станет легче. Кстати скрипты очень сильная вещь в студии.



Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines