Le concept que vous devriez être intéressé par est connu sous le nom Batching.
J'ai couvert ce scénario exact sur mon blog à http://www.sedodream.com/PermaLink,guid,5f1e0445-ce3d-4052-ba80-42fd19512d42.aspx
Voici le texte de cette entrée de blog, vous pouvez télécharger les fichiers mentionnés sur le lien ci-dessus.
Aujourd'hui quelqu'un me parlait d'un collègue qui avait des problèmes avec MSBuild. Il m'a dit qu'il essayait de copier un ensemble de fichiers sur un ensemble de serveurs différents. Mais le problème était qu'il ne savait pas comment y parvenir sans effectuer plusieurs invocations de tâches de copie. Je lui ai dit qu'il pourrait y parvenir en utilisant MSBuild Batching. Le traitement par lots est un processus d'exécution d'une tâche (ou d'une cible) sur un ensemble d'éléments (lots) à la fois. Un lot peut également inclure un seul article. Donc, dans ce scénario, nous devons effectuer la copie une fois pour chaque serveur sur lequel il voulait se déployer. J'ai créé un fichier msbuild simple qui illustre cela de deux manières différentes. La première utilise le batching de tâches, qui peut être vu dans la cible Test. Et l'autre utilise le traitement par lots Target qui peut être vu dans la cible DoItCore. J'ai également créé une cible propre, qui n'a rien à voir avec le traitement par lots. Batching est un sujet avancé de MSBuild, et est définitivement négligé. Je dois admettre que je suis coupable de ne pas en avoir assez écrit moi-même. Il y a quelques bonnes ressources de traitement par lots, elles sont énumérées ci-dessous.
Voici d'autres entrées de blog liées au batching que j'ai publiées.
Merci, Sayed Ibrahim Hashimi
Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build
Super. Merci, les commentaires le rendent très clair. Je sais que je pourrais paraître un peu superficiel si je dis que je ne cherche pas à devenir un gourou MSBuild, plutôt que de résoudre mon problème ici. J'ai remarqué qu'en utilisant une technologie au cas par cas, il y a un point dans une courbe d'apprentissage où vous avez assez de connaissances éparses pour qu'une étude complète à partir de zéro soit beaucoup plus facile et place tout à sa place. Je trouve que c'est souvent la façon la plus préférable d'apprendre quelque chose. –
Si vous n'avez pas besoin de tout savoir maintenant, cela fonctionne très bien. J'ai corrigé une erreur dans l'exemple (désolé à ce sujet). Vous devez appeler toutes les tâches (comme copier) dans une cible. Je l'ai mis dans une cible. Vous appelez appel MSBuild avec ce nom de cible (CopyFiles) et il exécutera la cible. – Vaccano