События сборки Delphi XE .. глобально? - PullRequest
11 голосов
/ 15 декабря 2010

Начинаю активно использовать систему событий сборки в XE, но я заметил одну вещь - я не могу настроить события сборки по умолчанию в настройках проекта по умолчанию. Есть ли какой-нибудь способ обойти / взломать / что-нибудь, что сделало бы это возможным? Я смотрю на CodeGear.Group.Targets и CodeGear.Delphi.Targets в каталоге bin, если это даже выполнимо, это то, где я должен искать?

Спасибо

Ответы [ 2 ]

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

Ах, ха. Ответил на мой собственный вопрос. (Есть где-нибудь кнопка удаления? Lol)

Я немного поэкспериментировал, добавил несколько простых для поиска событий до и после сборки (а именно, запустил редактор реестра и блокнот ..)

В каталоге bin Delphi есть файл с именем CodeGear.Delphi.Targets. Внутри этого после разделов импорта я добавил:

<PropertyGroup>
     <PreBuildEvent><![CDATA[regedit.exe]]></PreBuildEvent>
     <PostBuildEvent><![CDATA[notepad.exe $(MSBuildProjectFile)]]></PostBuildEvent>
</PropertyGroup>

Перезапустил IDE, и новый пустой проект выполнил эти программы до и после сборки. Обратите внимание, что они не отображаются на экране конфигурации проекта, но вы можете переопределить их, отрицая все, что было помещено в файл CodeGear.Delphi.Targets. Дешево, но, похоже, это сработает, и вы все равно можете переопределить его, если это необходимо для конкретного проекта. (Просто убедитесь, что вы сохранили оригинальный файл.)

1 голос
/ 09 июля 2011

@ Джен Смит: Очень умно.И в случае, если кому-то это интересно, я теперь использовал вашу идею, чтобы madExcept пропатчил исполняемый файл как часть сборки командной строки без необходимости настраивать конкретный проект ..:

Поставьте это после 'Importраздел CodeGear.Delphi.Targets ..

  <PropertyGroup>
    <PostBuildEvent><![CDATA["$(programFilesx86)\madCollection\madExcept\Tools\madExceptPatch.exe" "$(DCC_ExeOutput)$(MSBuildProjectName).exe" "$(MSBuildProjectDirectory)\$(MSBuildProjectName).mes"]]></PostBuildEvent>
  </PropertyGroup>
...