Одно (жесткое) решение: сделайте свой exes с помощью Makefile! Файл makefile позволяет вам сказать: «Этот exe сделан из этих файлов, используя эти команды». Make будет запускать только «эти команды», если хотя бы один из файлов, которые вы перечисляете как составляющие ваш exe, новее, чем ваш exe.
Жесткая часть в этом заключается в создании списка файлов, которые составляют ваш exe: вы можете легко получить список файлов, перечисленных в DPR/DPROJ, но вам также необходимо будет идентифицировать все связанные ресурсы ($ R), все включенные файлы ($ INCLUDE), все файлы, которые implicitelly скомпилированы Delphi, потому что они используются в предложениях «uses» и находятся на пути к библиотеке.
Создание файла Makefile для общего случая очень сложно, но для одного конкретного проекта это может сработать. Например, вы можете подумать, что ваш файл зависит только от файлов, перечисленных в файлах DPR, а затем убедитесь, что вы добавили все соответствующие файлы в DPR.
Я уверен, что Delphi не компилирует неизменные единицы, если вы не строите. –
Но он генерирует другой хэш. Это может быть временная метка или что-то еще ... Но двоичный файл всегда отличается. –
Глядя на информацию о версии, Delphi 2010, кажется, помещает CompileDate в exe (он включает время суток). Но почему вы хотели бы сделать один и тот же экзамен дважды? И я могу точно сказать вам, что Jens Björnhager прав, Delphi не компилирует неизменные единицы (их укусил при использовании разных условных определений для разных проектов). –