lunes, 4 de enero de 2010

MSBuild a Delphi 2007

M'he trobat amb el problema de voler moure una sèrie de fitxers dfm dins d'un path concret després de compilar. Com que no tots els fitxers es trobaven dins del mateix path, he optat per crear un Target personalitzat. L'utilització d'aquests targets esta comentada molt per sobre a llibre d'en Marco Cantú, Delph 2007 Handbook. En ell ens comentar un exemple d'afegir el resultat de la compilació en un fitxer .zip.

Tal i com es recomana, el que he fet es crear un nou fitxer .proj, en aquest fitxetr he definit el meu target. En el meu cas he fet servir un target estàndard de copia.

<?xml version="1.0" encoding="utf-8"?>
<
Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<FrontEndFiles Include="..\*.dfm;..\Articles\INTERFICIE\*.dfm;..\Clients\INTERFICIE\*.dfm;..\Colaboradors\*.dfm;..\Colaboradors\INTERFICIE\*.dfm;..\Compres\Interficie\*.dfm;..\ComunicacionsProgramesExterns\INTERFICIE\*.dfm;..\Facturacio\LIB\*.dfm;..\FormesDePagament\INTERFICIE\*.dfm;..\Frames\*.dfm;..\GestioEmpresa\*.dfm;..\HoresColaboradors\INTERFICIE\*.dfm;..\Instalacions\*.dfm;..\Instalacions\INTERFICIE\*.dfm;..\Moviments\INTERFICIE\*.dfm;..\Pressupostos\*.dfm;..\Proveidors\INTERFICIE\*.dfm" />
</ItemGroup>
<Target Name="Copy">
<Copy SourceFiles="@(FrontEndFiles)" DestinationFolder="$(OutputDir)" />
</Target>
<
/Project>



En aquest XML definim un nou target anomenat Copy i al tag FrontEndFiles incloem tots els fitxers i directoris que hem de tractar. Un cop fet això, hem d'afegir al dproj del projecte les següents dades:

<?xml version="1.0" encoding="utf-8"?>
<
Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="build;Copy">
<Import Project="copy.proj" />



Això farà que s'executi el nostre target en finalitzar l'execució.







No hay comentarios: