2010-12-15 12 views
11

Ich habe angefangen, das Build-Event-System in XE zu nutzen, aber eine Sache ist mir aufgefallen, dass ich keine Standard-Build-Ereignisse in den Standard-Projekteinstellungen einrichten kann. Gibt es irgendeine Art von Workaround/Hack/was auch immer, um dies zu ermöglichen? Ich schaue CodeGear.Group.Targets und CodeGear.Delphi.Targets im Verzeichnis bin, wenn das überhaupt machbar ist, würde das sein, wo ich suchen sollte?Delphi XE Build-Ereignisse .. global?

Dank

+1

+1. Ich würde das auch sehr mögen. Jedes Mal, wenn ich etwas baue, möchte ich eine .bat ausführen. Jetzt muss ich dieses Skript jedem neuen Projekt hinzufügen, was nervig ist. –

+1

Willkommen bei StackOverflow, Jen. Es ist schön zu sehen, dass Sie beim ersten Mal eine gute Frage stellen und eine gute Antwort geben konnten. :) –

+0

Danke :) War es ein paar Tage lang mit ihm herumspielen, und natürlich finde ich es eine halbe Stunde nach der Frage darüber lol .. hoffentlich Embarcadero implementiert so etwas in die IDE mit ihrer nächsten Version statt sich auf einen Schlamm verlassen. –

Antwort

15

Ah ha. Beantwortete meine eigene Frage. (Gibt es eine Löschtaste irgendwo? Lol)

Ich habe etwas experimentieren, etwas leicht hinzugefügt vor zu finden und Ereignisse Post bauen (nämlich Starten Sie den Registrierungseditor und Notizblock ..)

In Delphi ist-Verzeichnis ein ist Datei namens CodeGear.Delphi.Targets. Im Innern, dass nach den Einfuhrabschnitten, fügte ich hinzu:

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

die IDE erneut gestartet wird, und ein neues leeres Projekt ausgeführt, diese Programme auf Pre-und Post-Build. Beachten Sie, dass sie jedoch nicht auf dem Bildschirm für die Projektkonfiguration angezeigt werden. Sie können sie jedoch überschreiben, indem Sie das negieren, was in die Datei "CodeGear.Delphi.Targets" eingefügt wurde. Billig, aber es scheint der Trick zu sein, und Sie können es noch überschreiben, wenn es für ein bestimmtes Projekt benötigt wird. (Stellen Sie sicher, die ursprüngliche Datei natürlich zu sichern.)

+3

Die Beantwortung Ihrer eigenen Frage ist völlig in Ordnung auf SO, wenn Sie es herausfinden, bevor jemand anderes es tut! –

+1

Bisher habe ich nur eine Frage zu SO gestellt, dann habe ich selbst geantwortet! Aber lassen Sie diese Fragen in SO, damit andere Ihre Antwort finden können. –

1

@Jen Smith: Sehr schlau. Und wenn jemand interessiert ist, habe ich jetzt Ihre Idee verwendet, um zu bekommen mixExcept, um die binäre exe als Teil eines Befehlszeile Build zu patchen, ohne ein bestimmtes Projekt anzupassen ..:

Setzen Sie dies nach dem 'Import' Abschnitt von CodeGear.Delphi.Targets ..

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