2010-12-15 14 views
11

Zaczynam dużo wykorzystywać z systemu zdarzeń kompilacji w XE, ale zauważyłem, że nie jestem w stanie skonfigurować domyślnych zdarzeń kompilacji w domyślnych ustawieniach projektu. Czy istnieje jakiś sposób obejścia/hack/cokolwiek, co by to możliwe? Patrzę na CodeGear.Group.Targets i CodeGear.Delphi.Targets w katalogu bin, jeśli jest to nawet wykonalne, czy powinienem tam szukać?Delphi XE build events .. globalnie?

Dzięki

+1

+1. Też bardzo by mi się to podobało. Za każdym razem, gdy buduję coś, czego chcę, powinienem wykonać .bat. Teraz muszę dodać ten skrypt do każdego nowego projektu, co jest denerwujące. –

+1

Witamy w StackOverflow, Jen. Dobrze jest zobaczyć, że byłeś w stanie zadać dobre pytanie i dać dobrą odpowiedź za pierwszym razem. :) –

+0

Dzięki :) Bawiłam się z tym przez kilka dni bez przerwy i oczywiście rozumiem to pół godziny po zapytaniu o to lol .. mam nadzieję, że Embarcadero implementuje coś takiego do IDE z ich następną wersją zamiast polegać na kludge. –

Odpowiedz

15

Ah ha. Odpowiedziałem na moje własne pytanie. (Czy istnieje przycisk usuwania gdzieś? Lol)

Zrobiłem kilka eksperymentowanie, dodano kilka łatwo znaleźć pre i post zbudować zdarzeń (czyli uruchomienie edytora rejestru i notes ..)

W katalogu bin Delphi istnieje plik o nazwie CodeGear.Delphi.Targets. Wewnątrz, że po sekcji importowych, dodałem:

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

restartował IDE, a nowy pusty projekt wykonany na temat tych programów przed i po kompilacji. Zauważ, że nie pojawiają się one na ekranie konfiguracji projektu, ale możesz je zastąpić, negując to, co zostało umieszczone w pliku CodeGear.Delphi.Targets. Tani, ale wydaje się, że to załatwi sprawę, i wciąż możesz go zastąpić, jeśli będzie to potrzebne w konkretnym projekcie. (Upewnij się tylko, że oryginalny plik został skopiowany.)

+3

Odpowiadając na twoje własne pytanie jest całkowicie w porządku na SO, jeśli zrozumiesz to zanim ktokolwiek inny to zrobi! –

+1

Do tej pory zadałem tylko jedno pytanie na SO, a następnie odpowiedziałem sam! Ale pozostaw te pytania w SO, aby inni mogli znaleźć odpowiedź. –

1

@Jen Smith: Bardzo sprytny. I na wypadek, gdyby ktoś był zainteresowany, użyłem twojego pomysłu, aby zmusić madExcept do łatania binarnego exe w ramach kompilacji linii poleceń bez konieczności dostosowywania konkretnego projektu ..:

Umieść to po sekcji "Importuj" CodeGear.Delphi.Targets ..

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