Как переименовать exe-файл - PullRequest
2 голосов
/ 12 декабря 2008

Допустим, у меня есть универсальное приложение для вертикального рынка, и я хочу упаковать его как две отдельные программы aaa.exe и bbb.exe. Есть ли способ использовать компоновщик Delphi для создания файла EXE / DLL, имя которого не совпадает с именем DPR?

Я не могу просто переименовать файл , потому что я получаю эту ошибку

    bbb.exe - Unable to to locate component
      This application has failed to start because aaa.exe was not found. 
      Re-installing the application may fix this problem.
 

Теперь я могу переименовать исполняемый файл, но не этот. Спасибо за комментарии, чтобы указать на мою глупость в этом отношении. Есть проблема, просто явно не нормальная, может быть, даже не обязательно связанная с Delphi.

Я использую Delphi 7 (если это возможно в 2007/2009, это было бы здорово, потому что мне нужно больше фуража для обновления)

Ответы [ 6 ]

15 голосов
/ 12 декабря 2008

Delphi 2007 и Delphi 2009 оба используют MSbuild. Вы можете использовать события после сборки в MSbuild, чтобы делать практически все, что вы хотите. Например, вы можете использовать задачу «Копировать», чтобы скопировать EXE-файл в новое имя файла.

4 голосов
/ 12 декабря 2008

Вы можете использовать менеджер сборки, такой как FinalBuilder или даже MSBuild, самостоятельно. Я все еще рекомендовал бы перейти на Delphi 2009, хотя. Есть много других невероятных дополнений к 2009 году.

4 голосов
/ 12 декабря 2008

В дополнение к отличному ответу Крейга (с положительным голосом), если, к сожалению, вы застряли в D7, то, что, по словам Крейга, все еще может быть применено, вам просто нужно сделать тяжелую работу самому, то есть создать собственный сценарий сборки для сборки своих приложений. вместо того, чтобы просто компилировать из IDE, использовать скрипт DOS или (даже лучше) PowerShell, это немного впереди, но дает вам больше гибкости в долгосрочной перспективе.

3 голосов
/ 12 декабря 2008

Почему вы не можете переименовать файл после компиляции? Я не получаю всю ссылку на Unix. Я могу переименовать каждый исполняемый файл, который я найду на своей машине, ну ... почти всех, если они в данный момент не выполняются.

Почему ты не можешь? Что ты нам не говоришь?

Просто щелкните правой кнопкой мыши файл в проводнике, выберите «Переименовать» и дайте ему новое имя. Это не работает для вас? Если нет, пожалуйста, сообщите нам, почему, потому что - это , то, что вы не говорите нам о своей ситуации.

2 голосов
/ 12 декабря 2008

Нет, вы не можете заставить компилятор создать файл с именем, отличным от имени проекта.

Вы можете поместить свой проект в «группу проектов». Добавьте в группу пакетный проект и в этом пакетном проекте введите команду для переименования или копирования файла. Если вы выберете «Компилировать все» или «Построить все», ваш главный проект будет обработан, и, если он успешно скомпилируется, будет обработан и следующий проект, запустив пакетный файл.

Или, поскольку вы только сказали, что хотите упаковать как две программы, просто сконфигурируйте ваш установщик так, чтобы он записывал две копии во время установки, используя разные имена, вместо того, чтобы создавать обе копии в вашей среде сборки, а затем раздача двух копий файла.

Я не понимаю ваш комментарий о невозможности переименовать файл после компиляции. Переименование EXE-файла полностью разрешено, если оно не используется в данный момент.

0 голосов
/ 12 декабря 2008

Или вы можете заставить программу проверять свое собственное имя exe при запуске. Если это не aaa.exe или bbb.exe, скопируйте себя в эти два имени и завершите (или запустите!)

...