Как я могу автоматически дать .exe уникальное имя во время компиляции? - PullRequest
4 голосов
/ 16 октября 2010

Мне нужно, чтобы exe-имя приложения получало «ProgramExeName + номер версии» во время компиляции (например, Filename18190.exe, Filename18191.exe ...) - чтобы имя exe-файла никогда не совпадало Учитывая, что у меня есть номер версии, помещенный в переменную str, как автоматически добавить этот номер к имени исполняемого файла, созданного в настоящее время? Tx

(Примечание: я хочу, чтобы переименование было сделано во время компиляции, а не изменялось после)

Ответы [ 5 ]

3 голосов
/ 19 октября 2010

Существует несколько директив для управления именем файла выходного двоичного файла {$EXT string}, {$LIBPREFIX 'string'}, {$LIBSUFFIX 'string'}, {$LIBVERSION 'string'} (кстати, компилятор не имеет ничего общего с формированием выходного двоичного файла, это делается с помощью линкер ).Ни один из них не является динамическим, поэтому вам НЕОБХОДИМО написать нужные значения непосредственно перед сборкой проекта (хорошая работа для мастера OpenToolAPI в IDE).

Другая возможность - это операция после сборки, которая извлекает номер версии (например,: VERSION_INFO) из двоичного файла PE и соответственно переименовывает файл

1 голос
/ 17 октября 2010

Если это должно быть выполнено компилятором, то нет, Delphi просто не сделает этого.Имя exe - это название проекта.Запустите пакетный файл после сборки (я думаю, позже Delphi позволит вам это сделать) и переименуйте файл так, как вам хочется.Возможно, вам потребуется создать отдельную вспомогательную программу для извлечения номера сборки из ресурсов программы, чтобы вы могли использовать его в имени.

1 голос
/ 17 октября 2010

имя файла генерируется автоматически из файла проекта, вы не можете это изменить. Но посмотрите на события после сборки, может быть, вы сможете найти что-то, что изменит имя файла после успешной сборки

0 голосов
/ 17 октября 2010

Нет способа сделать это в Delphi для обычных исполняемых файлов.Для пакетов есть опция суффикса LIB, которой, вероятно, можно манипулировать, чтобы делать то, что вы хотите, но это вам не поможет.

Хм, если подумать, возможно, было бы возможно написать дополнение IDE,использует ToolsAPI для сохранения проекта с другим именем каждый раз, когда вы делаете сборку.В итоге вы получите столько файлов проекта, сколько и исполняемых файлов.Я не знаю, можно ли это сделать.

0 голосов
/ 16 октября 2010

Вы можете написать командный файл / makefile / Rakefile / все, что выполняет шаги компиляции, а затем просто переименовать его в соответствии с системным временем или что-то в этом роде.Ваш вопрос немного расплывчат, поэтому сложно сказать точно, но это мысль.

...