2009-11-26 5 views
1

Je tente d'automatiser certaines générations Delphi 5 héritées avec un script MSBuild et j'ai des difficultés à capturer les erreurs. Pensant qu'il y avait un problème avec le passage de MSBuild, j'ai aussi essayé un fichier batch et je reçois toujours des passes retour (0) quand la construction devrait échouer (1). % 2 est le chemin vers Delphi et% 3 est le nom du projet.Delphi 5 codes de retour de ligne de commande IDE

REM delphi_ide_build.bat 
@ECHO OFF 
"%1 %2\Bin\delphi32.exe" %3.dpr -b 

REM BCB5 returns 0 if build succeeds, 1 if build fails 
IF ERRORLEVEL 1 GOTO FAIL 
IF ERRORLEVEL 0 GOTO PASS 

:FAIL 
ECHO An Error Occured in Build - Showing Log 
ECHO --------------------------------------- 
type %3.err 
EXIT 1 

:PASS 
ECHO The Build Passed - Showing Log 
ECHO ------------------------------ 
type %3.err 
EXIT 0 

Selon l'aide en ligne:

Le niveau d'erreur est réglé sur 0 pour succès builds et 1 pour a échoué builds.

Actuellement, mon projet échoue (visible dans le fichier journal), mais mon fichier de commandes s'exécute comme un PASS.

[Erreur fatale] MyFile.pas (43): Fichier introuvable: 'aa.dcu'

Est-ce un bogue dans Delphi 5, ou suis-je manque quelque chose?


texte d'aide IDE complet pour -B option sur Delphi32.exe:

AutoBuild. Doit être utilisé avec l'option de nom de fichier . Lorsque spécifié, le projet ou le groupe de projets est automatiquement construit au démarrage de l'EDI. Tous les conseils, erreurs ou avertissements sont ensuite enregistrés dans un fichier sous . Ensuite, l'IDE se termine. Cela facilite la création en mode batch à partir d'un fichier de traitement par lots. L'erreur Level est définie sur 0 pour les versions réussies et 1 pour les versions ayant échoué. Par par défaut, le fichier de sortie a le même nom que le nom de fichier spécifié avec l'extension de fichier a été modifiée en .err. Cela peut être remplacé en utilisant l'o l'option

Répondre

5

L'aide ne fait référence au compilateur ligne de commande dcc32.exe et non l'IDE.

Remplacer le delphi32.exe par dcc32.exe devrait résoudre votre problème.

+0

J'ai pris la citation du fichier d'aide de l'IDE: Options de ligne de commande IDE delphi32.exe Options de projet - option b. –

+2

Bien que vous ayez raison à propos de l'aide indiquant les options de ligne de commande pour l'EDI, il serait probablement préférable de changer votre script pour utiliser directement le compilateur de ligne de commande dcc32.exe comme le suggère Andreas. De nombreuses personnes utilisent dcc32.exe pour les versions automatisées de nombreuses versions de Delphi. En effet, la licence a changé dans les versions ultérieures de Delphi pour permettre explicitement l'installation du compilateur de ligne de commande sur plusieurs PC dans le but explicite de faire des builds de ligne de commande. –

+0

À l'origine, j'essayais de réduire le temps d'automatisation. Si je passe à dcc32 y a-t-il des pointeurs pour conserver les propriétés de construction que les développeurs ont définies dans l'EDI? Il y a aussi quelques paramètres d'environnement que je devrais inclure. –