Использование #define в выходном имени сборки в Visual Studio

Я использую Visual Studio 2010 для проекта C/C++. Что касается номеров версий, мне нравится иметь дату ревизии и сборки; например «Проект 1.0 R2 21 апреля 2013 г.». Я показываю это при запуске, поэтому я могу легко определить, использует ли кто-то старую версию. Теперь я хотел бы поместить такие вещи в имя файла исполняемого файла, созданного сборкой. Например, «Project10R2.exe».

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

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

Кто-нибудь знает, как это сделать? Похоже, вы даже не можете поместить дату сборки в имя файла (во всяком случае, это небезопасно, если вы используете переменную среды Windows %DATE%, вы можете получить недопустимые символы).


person darda    schedule 21.04.2013    source источник