Codes de retour de ligne de commande Delphi 5 IDE
-
05-07-2019 - |
Question
J'essaie d'automatiser certaines versions héritées de Delphi 5 avec un script MSBuild et je ne parviens pas à capturer les erreurs. Pensant qu’il y avait un problème avec le passage de MSBuild, j’ai aussi essayé un fichier de commandes et je reçois toujours des passes (0) lorsque la construction doit échouer (1). % 2 est le chemin d'accès à Delphi et% 3 le nom du projet.
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 défini sur 0 pour builds réussis et 1 pour échoué construit.
Actuellement, mon projet échoue (visible dans le fichier journal) mais mon fichier de commandes est exécuté en tant que PASS.
[Erreur fatale] MonFichier.pas (43): Fichier non trouvé: 'aa.dcu'
S'agit-il d'un bogue dans Delphi 5 ou manque-t-il quelque chose?
Texte d'aide complet de l'IDE pour l'option -B sur delphi32.exe:
Auto-construction. Doit être utilisé avec option de nom de fichier. Lorsque spécifié, le projet ou groupe de projet est construit automatiquement au démarrage de l'EDI. Tout des astuces, des erreurs ou des avertissements sont alors enregistré dans un fichier. Ensuite, l'IDE quitte. Cela facilite la construction par lots mode à partir d'un fichier batch. L'erreur Le niveau est mis à 0 pour réussir builds et 1 pour les builds échoués. Par Par défaut, le fichier de sortie a le même nom comme nom de fichier spécifié avec L'extension du fichier a été remplacée par .err. Ceci peut être annulé en utilisant le o option
La solution
La seule aide concerne le compilateur en ligne de commande dcc32.exe et non l'IDE.
Le remplacement du fichier delphi32.exe par dcc32.exe devrait résoudre votre problème.