Comment: référencer des fichiers SLN externes avec TeamCity
-
06-07-2019 - |
Question
Je suis nouveau dans TeamCity et nous avons un certain nombre de projets communs sous contrôle de source qui sont ensuite référencés directement dans les projets pertinents, à savoir:
.Common
branches
tags
trunk
CommonProject
CommonProject.csproj
Common.sln
ProjectX
branches
tags
trunk
ProjectX.sln
Par conséquent, la référence à "CommonProject.csproj" dans " ProjectX.sln " \ Common \ trunk \ CommonProject \ CommonProject.csproj convient parfaitement à notre environnement de développement, mais s’agissant de TeamCity, il est impossible de dire qu'il ne trouve pas le chemin ".... \ Common \ trunk \ CommonProject \ CommonProject.csproj "
Quel est le meilleur moyen de contourner ce problème? J'ai essayé d'ajouter CommonProject à TeamCity comme dépendance, mais il ne semble toujours pas vouloir jouer au ballon ...
Merci
Tim
La solution
Nous réglons ce problème en utilisant Externals dans Subversion, qui vous permet d'extraire des éléments d'un autre (bit du) référentiel.
Ensuite, lorsque nous élaborons les solutions, nous regroupons les projets communs dans les mêmes dossiers avec la solution spécifique au projet - c’est-à-dire que lorsque nous extrayons des éléments, nous avons:
Solution1
+---Project1
+---Project2
+---Project3
+---Common1
+---Common2
Ensuite, séparément:
Solution2
+---ProjectA
+---ProjectB
+---ProjectC
+---Common1
+---Common2
Etant donné que les fichiers externes et la structure de répertoires / dossiers sont configurés de cette manière, vous devriez, en théorie, pouvoir extraire (ou exporter) une "solution". dans un répertoire vide et qu’il soit compilé avec succès à partir de rien (sous réserve de l’installation de tous les outils nécessaires). Par conséquent, TeamCity (ou quel que soit votre serveur d’intégration continue) devrait également pouvoir être construit à partir de zéro. En fait, même avant de commencer à utiliser TeamCity, cette stratégie était définie, mais la valeur est plus claire une fois que vous commencez à effectuer une intégration continue.
Le morceau approprié du livre rouge Subversion est ici: Définitions externes