J’utilise TeamCity qui invoque à son tour msbuild (.NET 4). J’ai un problème étrange dans la mesure où une fois la construction terminée (et cela ne semble pas avoir d’importance si la construction a été réussie ou non), msbuild.exe rest ouvert et verrouille l’un des fichiers, ce qui signifie pour effacer son répertoire de travail, il échoue et ne peut pas continuer.
Cela se produit presque chaque fois.
Je suis vraiment perdu sur celui-ci, alors je vais essayer de fournir autant de détails que possible.
/m
(ce qui signifie utiliser plusieurs cœurs) External Tools\Telerik\Telerik.Reporting.Dll
. (Il existe plusieurs autres fichiers .DLL inclus dans le répertoire External Tools
dans une structure de chemin similaire qui ne cause jamais ce problème). Actuellement, c’est avec la version d’essai de Telerik Reports, au cas où cela ferait une différence. msbuild.exe *32
répertoriés dans le Gestionnaire des tâches: Je crois qu’il y en a 7. En utilisant Process Explorer, ils ressemblent tous à des processus de premier niveau (pas de parents). Ils utilisent tous de 20 à 50 Mo de RAM et 0,0% de CPU. svn:mime-type = application/octet-stream
Quelqu’un a-t-il déjà rencontré ça?
Utilisez msbuild
avec /nr:false
.
En bref: MSBuild essaie de faire beaucoup de choses pour être rapide, surtout avec des builds parallèles. Il générera beaucoup de “nœuds” – des processus msbuild.exe individuels qui peuvent comstackr des projets, et comme les processus mettent un peu de temps à se développer, une fois la construction terminée, ces processus restnt bloqués (par défaut, pendant 15 minutes, je pense) ), de sorte que si vous construisez à nouveau rapidement, ces nœuds peuvent être “réutilisés” et enregistrer le coût de configuration du processus. Mais vous pouvez désactiver ce comportement en désactivant nodeReuse avec l’option de ligne de commande susmentionnée.
Voir également:
MSBuild et ConHost restnt en mémoire après la construction parallèle
Référence de la ligne de commande MSBuild
Générations parallèles qui ne bloquent pas les DLL de tâches MSBuild personnalisées
Réutilisation des noeuds dans MultiProc MSBuild
Pour désactiver la réutilisation du noeud dans Visual Studio, vous devez utiliser une variable d’environnement:
MSBUILDDISABLENODEREUSE=1