2010-12-15 2 views
11

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

Thanks

+1

+1. Мне тоже это очень понравилось. Каждый раз, когда я создаю что-то, мне нужно выполнить .bat. Теперь я должен добавить этот скрипт к каждому новому проекту, что раздражает. –

+1

Добро пожаловать в StackOverflow, Jen. Приятно видеть, что вы смогли задать хороший вопрос и дать хороший ответ в первый раз. :) –

+0

Спасибо :) Был с ним на пару дней и дальше, и, конечно, я выяснил это через полчаса после того, как спросил об этом lol .. надеюсь, что Embarcadero реализует что-то подобное в IDE со своей следующей версией вместо вынуждены полагаться на клочья. –

ответ

15

Ah ha. Ответил на мой вопрос. (Есть ли кнопка удаления где-нибудь? Лол)

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

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

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

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

+3

Ответ на ваш собственный вопрос в порядке, если вы выясните это раньше, чем кто-либо другой сделает! –

+1

До сих пор я только задал один вопрос о SO, а затем ответил сам! Но оставите эти вопросы в SO, чтобы другие могли найти ваш ответ. –

1

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

Поместите это после раздела «Импорт» of CodeGear.Delphi.Targets ..

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