3 votes

TopShelf MSDeploy Code de sortie d'installation en cas d'erreur

Je suis en train d'essayer d'installer un service en utilisant TopShelf de CI. Cependant, chaque fois qu'une exception se produit pendant l'installation, TopShelf annule la transaction et continue le processus de construction, renvoyant un statut 0x0.

Cela signifie que, du point de vue du serveur CI, le déploiement a été réussi.

Un exemple de la commande que j'utilise dans MSBuild est:

La sortie que je reçois est:

[Exec] Exécution d'une installation avec transaction. 
[Exec] 
[Exec] Verbose: Réponse reçue de l'agent (statut HTTP 'OK'). 
[Exec] Info: 
[Exec] Début de la phase d'installation. 
[Exec] 
[Exec] Info: Installation du service Foo...
[Exec] 
[Exec] Info: Création de la source EventLog Foo dans le journal Application...
[Exec] 
[Exec] Info: 
[Exec] Une exception s'est produite pendant la phase d'installation.
[Exec] 
[Exec] Info: System.ComponentModel.Win32Exception: Le service spécifié existe déjà
[Exec] 
[Exec] La phase de restauration de l'installation commence.
[Exec] Restauration du journal d'événements à l'état précédent pour la source Foo.
[Exec] 
[Exec] La phase de restauration est terminée avec succès.
[Exec] 
[Exec] L'installation avec transaction est terminée.

Des idées sur la manière de faire échouer la construction en cas d'exception?

1voto

Evert Points 363

La dernière version de Topshelf (3.0.2) a ajouté un TopshelfExitCode, qui est une énumération qui peut être convertie en (int) et renvoyée depuis Main dans votre application console.

Si l'installation/désinstallation échoue, le code d'erreur est non nul (l'énumération contient toutes les valeurs possibles). Donc maintenant, cela devrait bien fonctionner avec les fichiers batch/constructions s'attendant à des codes de sortie non nuls quand les choses ne s'installent pas correctement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X