2015-11-12 53 views
0

Dans le fichier de configuration de projet CC J'ai plusieurs tâches MSBuild. Chaque tâche est utilisée pour construire une solution.Nombre dynamique de tâches MSBuild

Le problème est que cela nécessite une maintenance si ce fichier de configuration CC chaque fois que le nouveau projet est ajouté à/supprimé du référentiel. Mon idée est de passer à la liste dynamique CC des solutions qui devraient être construites et exécutées une par une comme c'est le cas maintenant avec la maintenance "statique/à l'ancienne" du fichier de configuration.

Est-ce que quelqu'un prépare déjà une telle configuration?

+0

Y a-t-il une raison pour laquelle vous avez beaucoup de tâches msbuild dans un projet ccnet, plutôt qu'une par solution à construire? –

+0

@SimonLaing: J'ai une solution par MSBuild et de nombreuses solutions (DLL) construites dans un projet ccnet. Une telle structure nous avons dans le référentiel et je veux le garder aussi dans ccnet. – panako

Répondre

0

présumant que vous avez quelque chose de semblable à ce qui suit:

sur le disque:

  • ./solution1.sln
  • ./solution2.sln
  • ./solutionN.sln

Et un seul projet ccnet:

  • MSBuild -> solution1.sln
  • MSBuild -> solution1.sln
  • MSBuild -> solutionN.sln

Ce que vous demandez est CCNet de réagir à ce qui est à l'extérieur de son environnement. Ce n'est pas possible, mais il serait possible d'obtenir un autre outil pour le faire.

Options possibles:

1. personnalisée MSBuild projet Créer un projet msbuild spécifique qui trouve et invoque msbuild sur tous les fichiers qu'il trouve une solution. Appelez msbuild sur ce projet seul. Il devrait être possible de le faire avec msbuild vanille, voir https://msdn.microsoft.com/en-us/library/z7f65y0d.aspx

2. Les fichiers batch Trouver tous les fichiers, et pour chaque fichier exécuter msbuild. Assurez-vous que la sortie est enregistrée dans un fichier XML (commutateur msbuild - je crois) et fusionnez dans le résultat dans la section publishers. Voir How to do something to each file in a directory with a batch script

3. Une solution unique Créer une seule solution, qui contient tous les projets de toutes les solutions (1 à N) et msbuild d'appel sur cette fois. Ce fichier de solution doit être mis à jour chaque fois qu'un nouveau projet arrive.