2 votes

Recompilation de toutes les dépendances

J'ai un projet simple qui est utilisé dans de nombreuses autres solutions. Chaque fois que je mets à jour ce projet, je dois me rappeler d'aller dans les autres solutions qui utilisent ce projet et de recompiler et déployer également.

Existe-t-il un moyen d'automatiser cette opération ?

4voto

sparks Points 2708

Si vous utilisez un outil d'intégration continue tel que TeamCity , Jenkins ou Régulateur de vitesse vous pouvez faire en sorte que vos modifications entraînent automatiquement la construction des autres solutions.

Je suis toujours mal à l'aise avec les solutions qui ne nécessitent pas de recompilation lorsqu'une API dont vous dépendez est modifiée. Mettre à jour quelque chose qui agit comme un module sans recompiler a du sens, mais si quelque chose dont vous dépendez change, vous voulez vraiment vous assurer que cela ne casse pas les choses ailleurs.

L'utilisation d'un serveur CI vous permettra d'effectuer toutes sortes de tests sur chaque solution individuelle et de vous avertir en cas d'échec sur l'une d'entre elles. Vous pouvez également ajouter des étapes comme l'empaquetage d'un déploiement ou, si vous aimez vraiment jouer avec le feu, vous pouvez demander au serveur CI d'effectuer le déploiement automatiquement.

Edit : Généralement, tout cela se fait sur un serveur d'intégration, mais il n'y a aucune raison pour que vous ne puissiez pas le mettre en place sur votre machine locale.

0voto

Tristan Points 325

Si vous utilisez une forme quelconque d'intégration continue (cruise control, teamcity, TFS, etc.), vous pouvez facilement configurer votre CI pour reconstruire vos sources dépendantes.

Une autre solution moins élégante peut être d'avoir un fichier .sln qui contient tous vos projets et de travailler dans cette solution.

Vous pouvez également ajouter un événement post-construction qui construit les solutions dépendantes lorsque vous effectuez une modification.

0voto

Paweł Smejda Points 1229

Marquer ces projets comme Build/Deploy dans Configuration Manager
C'est probablement ce qui vous manque.

0voto

Cyberherbalist Points 4564

Cela semble très effrayant, en fait. Vous modifiez un seul projet et, sans test de régression, tous les projets qui en dépendent sont automatiquement recompilés avec la nouvelle version. déployé ?

Si vous parvenez à trouver un moyen de le faire, je vous prédis de grands bouleversements et des calamités.

0voto

Eugenio De Hoyos Points 872

Le projet réutilisé est-il une bibliothèque de classes ? Si c'est le cas, j'ajoute généralement une référence à la dll dans le fichier de sortie de la bibliothèque de classes. Chaque fois que je recompile la dll, les autres projets la détectent presque immédiatement (en particulier Intellisense).

Cela ne fonctionne cependant pas pour les projets dépendants qui sont déjà déployés.

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