Oui c'est vrai excuse moi. C'est la version 2009.
Et sinon je n'ai pas tout compris, en gros je n'ai rien besoin de spécifier avec ce logiciel, c'est ça ?
Oui c'est vrai excuse moi. C'est la version 2009.
Et sinon je n'ai pas tout compris, en gros je n'ai rien besoin de spécifier avec ce logiciel, c'est ça ?
Tu le télécharge et essaye tu devrais comprendre facilement
sinon tu poste sur leur forum j'y répondrais.
à la main un exemple crée un fichier .bat dans le dossier de ton projet, et colle sa :
lance le, voila pas de chemin c'est trouvé automatiquement et sa prend les option de la config releasemsbuild xxx.dproj /target:Build /p:config=Release
pause
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
D'accord j'essayerais mais j'aimerais savoir comme Paul TOTH ce qu'il faut mettre dans le projet avant
Delphi 2007 et + crée le .dproj pour msbuild.
quand tu ouvre un dpr sa crée un dproj.
donc si il a D2009 il n'a rien a créer.
moi je compile avec la ligne donné plus haut des projets qui utilise la JVCL et d'autre librairie.
à titre d'info sa contient sa par ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{d7130f4e-d025-431a-9271-9dd14ce7867c}</ProjectGuid> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DependencyCheckOutputName>DelphiSaveAndRestore.exe</DCC_DependencyCheckOutputName> <MainSource>DelphiSaveAndRestore.dpr</MainSource> <ProjectVersion>12.3</ProjectVersion> <Base>True</Base> <Config Condition="'$(Config)'==''">Release</Config> <Platform>Win32</Platform> <AppType>Application</AppType> <FrameworkType>VCL</FrameworkType> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> <Cfg_1>true</Cfg_1> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> <Cfg_2>true</Cfg_2> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_1)'!=''"> <Version>7.0</Version> <DCC_DebugInformation>False</DCC_DebugInformation> <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> <DCC_OutputDRCFile>True</DCC_OutputDRCFile> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2)'!=''"> <Version>7.0</Version> <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> <DCC_Optimize>False</DCC_Optimize> <DCC_IntegerOverflowCheck>True</DCC_IntegerOverflowCheck> <DCC_RangeChecking>True</DCC_RangeChecking> <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> <DCC_OutputDRCFile>True</DCC_OutputDRCFile> </PropertyGroup> <ProjectExtensions> <Borland.Personality>Delphi.Personality.12</Borland.Personality> <Borland.ProjectType/> <BorlandProject> <Delphi.Personality> <Parameters/> <VersionInfo> <VersionInfo Name="IncludeVerInfo">True</VersionInfo> <VersionInfo Name="AutoIncBuild">True</VersionInfo> <VersionInfo Name="MajorVer">1</VersionInfo> <VersionInfo Name="MinorVer">0</VersionInfo> <VersionInfo Name="Release">2</VersionInfo> <VersionInfo Name="Build">49</VersionInfo> <VersionInfo Name="Debug">False</VersionInfo> <VersionInfo Name="PreRelease">False</VersionInfo> <VersionInfo Name="Special">False</VersionInfo> <VersionInfo Name="Private">False</VersionInfo> <VersionInfo Name="DLL">False</VersionInfo> <VersionInfo Name="Locale">1036</VersionInfo> <VersionInfo Name="CodePage">1252</VersionInfo> </VersionInfo> <VersionInfoKeys> <VersionInfoKeys Name="CompanyName"/> <VersionInfoKeys Name="FileDescription"/> <VersionInfoKeys Name="FileVersion">1.0.2.49</VersionInfoKeys> <VersionInfoKeys Name="InternalName"/> <VersionInfoKeys Name="LegalCopyright"/> <VersionInfoKeys Name="LegalTrademarks"/> <VersionInfoKeys Name="OriginalFilename"/> <VersionInfoKeys Name="ProductName"/> <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> <VersionInfoKeys Name="Comments">écrit par Alexandre www.toutenvrac.org</VersionInfoKeys> <VersionInfoKeys Name="Last Compile">20/02/2011 10:17:12</VersionInfoKeys> </VersionInfoKeys> <Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\dcloffice2k100.bpl">Composants Microsoft Office 2000 Sample Automation Server Wrapper</Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\dclofficexp100.bpl">Composants Microsoft Office XP Sample Automation Server Wrapper</Excluded_Packages> </Excluded_Packages> <Source> <Source Name="MainSource">DelphiSaveAndRestore.dpr</Source> </Source> </Delphi.Personality> <Platforms> <Platform value="Win32">True</Platform> </Platforms> </BorlandProject> <ProjectFileVersion>12</ProjectFileVersion> </ProjectExtensions> <ItemGroup> <DelphiCompile Include="DelphiSaveAndRestore.dpr"> <MainSource>MainSource</MainSource> </DelphiCompile> <RcCompile Include="DelphiSaveAndRestore.manifest.rc"> <ContainerId>RC</ContainerId> <ContainerId>RC</ContainerId> <Form>DelphiSaveAndRestore.manifest.res</Form> </RcCompile> <RcCompile Include="skins.rc"> <ContainerId>RC</ContainerId> <ContainerId>RC</ContainerId> <Form>skins.res</Form> </RcCompile> <RcCompile Include="updater.rc"> <ContainerId>RC</ContainerId> <ContainerId>RC</ContainerId> <Form>updater.res</Form> </RcCompile> <DCCReference Include="Main.pas"> <Form>fmMain</Form> </DCCReference> <DCCReference Include="uVistaFuncs.pas"/> <DCCReference Include="Utils.pas"/> <DCCReference Include="MainFunctions.pas"/> <DCCReference Include="MainMsg.pas"/> <DCCReference Include="ThreadUpdater.pas"/> <DCCReference Include="SelectRegKey.pas"> <Form>fmSelectRegKey</Form> </DCCReference> <DCCReference Include="LogAction.pas"> <Form>fmLogAction</Form> </DCCReference> <BuildConfiguration Include="Debug"> <Key>Cfg_2</Key> <CfgParent>Base</CfgParent> </BuildConfiguration> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> <BuildConfiguration Include="Release"> <Key>Cfg_1</Key> <CfgParent>Base</CfgParent> </BuildConfiguration> </ItemGroup> <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> </Project>
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
vu qu'il n'y a aucune référence à la JCL j'image que ça se passe dans ces fichiers inclus
du coup c'est totalement dépendant de la configuration de Delphi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/>
pour moi, une compilation en ligne de commande ne doit dépendre d'aucune configuration externe. je ZIP le répertoire, je le colle sur un serveur de déploiement qui contient un Delphi tout nu, ça doit compiler.
En fait il ne devrait rien y avoir à télécharger puisque MSBuild fait parti du framework .Net qui doit faire parti des pré-requis d'installation de Delphi.
Par contre il ne fait pas parti du PATH par défaut :
Il faut aller dans WINDOWS\Microsoft.NET\Framework\
Ensuite tu choisis la version que tu veux utiliser, par exemple :
C:\Windows\Microsoft.NET\Framework\v2.0.50727
Tu as un exe MSBuild par version du Framework .Net (2.0, 3.5, 4.0). N'importe lequel doit faire l'affaire.
Oui. Selon ce que tu veux, c'est soit un avantage : Tu configures tout dans l'IDE et il te suffit de lancer la compil telle que ouiouioui l'a indiqué. C'est hyper simple à configurer (perso, je fais de la compil en ligne de commande en D2006, à coups de DCC32 en ignorant volontairement la config Delphi...).Envoyé par Paul TOTH
Soit un inconvénient, justement parce que tu dépends du paramétrage de Delphi et que l'objectif d'une compil en ligne de commande, c'est d'avoir un build certes automatisé, mais surtout reproductible, indépendant de la personne qui fait la compil (et des préférences qu'elle a pu enregistrer par inadvertance avec le projet...), des bugs de l'IDE qui changent les options de compil tout seul...
Celà dit, il ne faut pas oublier que les Configurations existent dans le gestionnaire de projet pour gérer ce type de cas de figure : Tu fais une config Debug où les développeurs mettent les options de compile qui les arranges.
Puis tu fais une config Release avec les options qui doivent être utilisées par le build automatisé.
De plus, on doit sûrement pouvoir forcer les paramètres de compil dans le fichier MsBuild.
Ce serait bien. Mais c'est un peu utopique qu'en même.pour moi, une compilation en ligne de commande ne doit dépendre d'aucune configuration externe. je ZIP le répertoire, je le colle sur un serveur de déploiement qui contient un Delphi tout nu, ça doit compiler.
Personnellement, sur le projet où je bosse, mon build automatisé fait un tas de choses et s'appuie sur un paquet d'outils externes :
Je force les numéros de versions sur tout les livrables, je construis automatiquement les mises à jour de base de données (outils maison) à partir d'une base de référence. Je compile tous les projets. Certains sont en Delphi, d'autres en .Net avec Visual Studio...
Selon le type d'offre pour laquelle je fais le Build, soit j'enchaîne en zippant les livrables et en les déposant dans un CVS de livraison pour que la Prod fasse le déploiement.
Soit j'enchaîne avec la compil des programmes d'installation (InnoSetup), et je termine avec la création de l'ISO du CD d'installation.
Ca nécessite d'installer une multitude d'outils externes, et tu te retrouves avec une tripoté de paramètres d'installation à mettre à jour chaque fois que tu veux utiliser une nouvelle machine pour faire le Build.
Donc au final, pour tout mettre en place sur une autre machine, c'est beaucoup plus compliqué que recopier un répertoire...
je parlais de precision builder express, de le télécharger et d'essayer.
c'est vrai j'avais oublié. Il faut aussi spécifier en variable environnement BDS et BDSCOMMONDIR.
sa permet de définir quel version de Delphi utiliser
ex:
BDS "C:\Program Files\Embarcadero\RAD Studio\8.0"
BDSCOMMONDIR "C:\Documents and Settings\Alexandre\Mes documents\RAD Studio\8.0"
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
j'ai bossé quelque temps avec Team Foundation Server, et le principe est justement là. C'était un projet qui comprenait une partie sous D5, une autre sous D2005 et un peu de C#...et bien TFS se charge de récupérer les sources en local dans un répertoire et tu peux définir une tâches qui lance DCC32 avec récupération des messages d'erreur.
Mais pour faire ça tu dois avoir un projet qui se compile tout seul
bon en fait, il y avait aussi une moulinette qui était lancée avant, notamment pour créer une version US et une version FR (avec une méthode héritée d'on ne sais où qui modifiait les DFM et les constantes dans le .PAS )
Mais le but était tout de même d'avoir un serveur de compilation quoi soit le plus standard possible pour pouvoir, le cas échéant, le remonter sans se poser de question...il me semble même que pour la partie Delphi, DCC32.exe et la VCL étaient dans le SVN
J'avais pas compris...
Moi je fais des DCC32 avec une liste de chemin de compil de 3 kilomètres...Envoyé par Paul TOTH
Moi le but, c'est d'effectuer tout le process sans oubli, ni erreur de manip, quelle que soit la personne qui appuie sur le bouton.Mais le but était tout de même d'avoir un serveur de compilation quoi soit le plus standard possible pour pouvoir, le cas échéant, le remonter sans se poser de question...
Tu cliques, la machine est sur les rotules pendant une demi-heure donc tu vas boire un café et quand tu reviens tout es terminé (ou tout est planté).
Accessoirement je lance aussi le build automatisé qu'en j'en ai marre de me battre avec les erreurs internes, les corruptions de package et les fichiers .drf inaccessibles de la compil depuis l'IDE.
Bizarrement, en ligne de commande, la seule chose qui bloque se sont les erreurs de syntaxe et les fichiers non référencés dans le projet...
C'est vrai qu'il est possible de mettre en place DCC32 sans installer Delphi.il me semble même que pour la partie Delphi, DCC32.exe et la VCL étaient dans le SVN
Euh ... Vous m'avez un peu perdue là ! Je ne comprends pas tout ce que vous dites mais au final est-ce que quelqu'un a une solution ?
ben on t'en a donné QUATRE !
1) dans le .DPR tu ajoutes chaque unité avec un "in" pour indiquer le chemin relatif
2) tu ajoutes tous les chemins contenant des unités sur la ligne de commande ou dans le .CFG
3) tu colles toutes les unités dans un répertoire /LIB que tu indiques en ligne de commande ou en .CFG
4) tu utilises msbuild avec un "solution" .dproj configurée correctement dans l'IDE.
5) Groupe de Projet, Il suffit d'ouvrir un groupe de projet, avec le Gestionnaire de Configuration de passer tous les projets de Debug à Release, ensuite utiliser "Compiler tous les projets", et cela compile tout dans la foulée, c'est actuellement ce que mon chef fait pour la release d'une bonne vingtaine d'exe et une centaine de DLL en C++Builder, ça dure une heure, ça tourne tout seul
6) FinalBuilder qui permet d'automatiser tout ce que décrit Franck SORIANO
En plus, une licence FinalBuilder est maintenant offerte avec Delphi XE, preuve de reconnaissance par Embarcadero de l'utilité du produit (sans parler de stratégie commerciale et des possibilités de récupérer des sous)
Pour la gestion de la Configuration "Release", je ne sais pas, j'utilisais la version 4 pour D7, avec la version 6\7, ils ont du inclure cela !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
D'où un repertoire LIB sans sous-répertoire !
L'inclusion n'est pas récursive !
Il faut explicitement déclaré chaque Dossier !
Paul Toth n'a pas tort sur ce coup là !
As-tu regardé les choses simplistes comme le Groupe de Projet et le Gestionnaire de Configuration qui permet en 3 clics de switcher debug à release !
Ton problème à la base est "il est très peu pratique de devoir vérifier que tous les sous projets soient en mode release avant de compiler."
Ce qui est FAUX !
Le Gestionnaire de Configuration permet de le faire TRES FACILEMENT !
Faudrait savoir utilisé l'IDE avant d'aller plus loin !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Non je ne me fous pas du monde et je trouve ça très déplacé de dire ça. Désolée mais j'ai pas compris, c'est tout
Et pour le gestionnaire de configuration, j'ai regardé déjà mais ça n'a pas l'air de fonctionner
On va dire que c'est tout bon parce que je n'ai pas envie de continuer avec cette discussion qui ne finit que par m'insulter de boulet. Merci pour vous être donné la peine de me répondre mais je ne vous remercie pas pour la politesse.
Je ne code en Delphi que depuis une semaine, j'ai beaucoup de mal à manipuler cet IDE, je n'y suis pas du tout habituée et j'aurais espéré un peu plus de compréhension de ce côté.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager