Вставить номер сборки / идентификатор сборки в проект в Visual Studio 2008 - PullRequest
3 голосов
/ 11 февраля 2012

Несколько раз возникала путаница, когда мои тестировщики каким-то образом пытались протестировать старые сборки моего проекта, а затем сообщали об исправленных ошибках.

Как я могу встроить идентификатор сборки в свой проект? Текущее время сборки или просто начиная с 1 и увеличивая каждый раз при сборке программы будет работать. Затем в пользовательском интерфейсе игры будет напечатан номер сборки, так что нет никакой двусмысленности относительно того, какую версию программного обеспечения использует тестер.

Я нашел свой ответ на вопрос по IRC, но все, что я нашел, похоже, относится только к C #.

Есть идеи? В Unix я бы просто изменил Makefile и попросил некоторый oneliner вставить нужное мне значение в источник.

Сейчас моя лучшая идея - выяснить, как работает процесс сборки VS, затем написать сценарий python для запуска и отредактировать исходный код для обновления номера сборки.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2012

Хорошо, вот мое быстрое, грязное и безобразное решение.

У меня есть файл buildid.txt, это текстовый файл с целочисленным значением только для buildid.

У меня есть increment-buildid.bat

@echo off
for /f %%a in (buildid.txt) do (
  echo %%a
  set /a num=%%a
)
echo %num%
set /a num += 1
echo %num% > buildid.txt
echo int buildid = %num%; > buildid.c

Чтобы разобраться с процессом сборки Visual Studio, щелкните правой кнопкой мыши решение в обозревателе решений, -> свойства -> События сборки -> События предварительной сборки.

Теперь, когда я знаю, как это сделать, я могу вставить свой скрипт zip + scp в события после сборки для мгновенной загрузки! (не уверен, что это блокировка или нет, придется проверить это)

edit: загрузка действительно блокируется. то есть отладка не начинается, пока загрузка не закончится. У меня просто есть другая партия для загрузки с использованием scp, так как я чувствую необходимость. Дважды щелкните по нему, и он будет отправлен на удаленный сервер.

2 голосов
/ 11 февраля 2012

Чтобы решить ту же проблему, я написал небольшую утилиту, которая генерирует заголовочный файл, содержащий отметку даты / времени в #define. Он выполняется как этап предварительной сборки, а основной проект включает сгенерированный заголовок. Затем вы можете включить штамп в баннер для входа или тому подобное.

В моих проектах я также генерирую ресурс версии, затем перемещаю его в файл .rc2 (ресурсы, написанные вручную) и изменяю его, чтобы он включал сгенерированный заголовок, и соответственно обновляю версию.

...