2010-12-15 6 views
11

J'ai commencé à utiliser beaucoup le système d'événements de construction de XE, mais j'ai remarqué que je ne pouvais pas configurer les événements de construction par défaut dans les paramètres de projet par défaut. Existe-t-il une solution de contournement/piratage/tout ce qui rendrait cela possible? Je regarde CodeGear.Group.Targets et CodeGear.Delphi.Targets dans le répertoire bin, si c'est même faisable, serait-ce là où je devrais regarder?Delphi XE génère des événements .. globalement?

Remerciements

+1

+1. Moi aussi j'aimerais beaucoup ça. Chaque fois que je construis quelque chose, je veux qu'un .bat soit exécuté. Maintenant, je dois ajouter ce script à chaque nouveau projet, ce qui est ennuyeux. –

+1

Bienvenue dans StackOverflow, Jen. C'est bon de voir que vous avez pu poser une bonne question et donner une bonne réponse la première fois. :) –

+0

Merci :) Je jouais avec lui pour quelques jours de congé, et bien sûr je le trouve une demi-heure après avoir demandé à ce sujet lol .. heureusement Embarcadero implémente quelque chose comme ça dans l'IDE avec leur prochaine version au lieu de avoir à compter sur un kludge. –

Répondre

15

Ah ha. Répondu à ma propre question. (Y at-il un bouton de suppression quelque part? Lol)

J'ai fait quelques Expérimenter, ajouté un peu facile de trouver des événements avant et après la construction (lancement à savoir l'éditeur de registre et bloc-notes ..)

Dans le répertoire bin de Delphi il y a un fichier appelé CodeGear.Delphi.Targets. A l'intérieur qui, après les sections d'importation, j'ai ajouté:

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

REStarted l'IDE, et un nouveau projet vide exécuté ces programmes sur la construction avant et après. Notez qu'ils n'apparaissent pas sur l'écran de configuration du projet, mais vous pouvez les ignorer, annulant tout ce qui a été placé dans le fichier CodeGear.Delphi.Targets. Bon marché, mais il semble faire l'affaire, et vous pouvez toujours le remplacer si nécessaire sur un projet spécifique. (Assurez-vous de sauvegarder le fichier original bien sûr.)

+3

Répondre à votre propre question est parfaitement bien sur SO, si vous le comprendre avant tout le monde! –

+1

Jusqu'à présent, j'ai seulement posé une question sur SO, puis répondu moi-même! Mais laissez ces questions dans SO, afin que les autres puissent trouver votre réponse. –

1

@Jen Smith: Très intelligent. Et au cas où quelqu'un est intéressé, j'ai maintenant utilisé votre idée pour obtenir madExcept pour patcher l'exe binaire dans le cadre d'une ligne de commande sans avoir à personnaliser un projet spécifique ..:

Mettre après la section 'Importer' de CodeGear.Delphi.Targets ..

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