Je ne sais pas comment faire cela. J'ai un fichier de script batch que j'utilise pour effectuer plusieurs appels msbuild. Je ne veux pas que la sortie de msbuild pollue la fenêtre de commande, mais au lieu de cela, elle sera transférée dans un fichier journal. Je ne sais pas comment faire cela, mais voici mon script:
@ECHO Building shared libraries ...
msbuild "SharedLibraries.sln"
:: Not sure how to catch an unsuccessful build here for my GOTO ERROR?
:: Copy dll files to specific location
@ECHO Building primary application...
msbuild "Myapp.sln"
:: Not sure how to catch an unsuccessful build here for my GOTO ERROR?
:ERROR
Alors, comment puis-je:
- Dump de la sortie msbuild dans un fichier journal?
- Catch builds infructueux et aller à l'étiquette d'erreur?
Réponses:
10 pour la réponse № 1Ajouter le /fileLogger
commutateur de ligne de commande oblige MSBuild à écrire la sortie de la construction dans un fichier msbuild.log dans le répertoire en cours, tandis que le /noconsolelogger
Ce commutateur empêche MSBuild d’écrire sur la sortie standard. Le nom de fichier peut être défini en utilisant le /flp
commuter comme dans l'exemple suivant:
msbuild "SharedLibraries.sln" /nologo /noconsolelogger /fileLogger /flp:logfile=buildlog.txt
Voir Référence de ligne de commande MSBuild pour plus de détails.
Concernant votre deuxième question MSBuild retourne un code de sortie non nul si la construction échoue, ce qui peut être traité comme d'habitude:
msbuild "SharedLibraries.sln" /nologo /noconsolelogger /fileLogger /flp:logfile=SharedLibraries.log
if not errorlevel 0 goto ERROR
msbuild "Myapp.sln" /nologo /noconsolelogger /fileLogger /flp:logfile=Myapp.txt
if not errorlevel 0 goto ERROR
:ERROR