msbuild.exe rester ouvert, le verrouillage des fichiers
- Je utiliser TeamCity, qui à son tour appelle msbuild (.NET 4). J'ai un étrange problème en ce que lorsque la construction est terminée (et il ne semble pas que ce soit un succès ou non), msbuild.exe reste ouvert, et les verrous de l'un des fichiers, ce qui signifie que chaque fois TeamCity tente d'effacer son répertoire de travail, il ne parvient pas, et ne peut pas continuer.
Ce qui se passe presque à chaque fois.
Je suis vraiment perdue sur ce coup, donc je vais essayer de fournir autant de détails que possible.
- Serveur est un processeur Intel Core i7, ram de 2 GO, Windows Server 2008 standard 64 bits SP2.
- Dans TeamCity, msbuild coureur est configuré avec le
/m
paramètre de ligne de commande (ce qui signifie utiliser plusieurs cœurs) - Le fichier en question est TOUJOURS la même DLL externe qui est référencé dans l'un des .NET des projets, dans le chemin d'accès
External Tools\Telerik\Telerik.Reporting.Dll
. (Il y en a plusieurs autres .DLL fichiers inclus dans leExternal Tools
dir similaire à la structure de chemin d'accès qui n'est jamais la cause de ce problème). Actuellement, c'est avec la version d'essai de Telerik de rapports, dans le cas qui fait toute la différence. - Lorsque le problème se produit, il y a toujours plusieurs
msbuild.exe *32
processus répertoriés dans le gestionnaire des Tâches: je crois qu'il y a de 7. À l'aide de l'Explorateur de Processus, ils ont tous l'air de haut niveau du processus (sans les parents). Ils sont tous à l'aide de 20 à 50 mo de ram, et de 0,0% du CPU. - Si j'attends 1 à 3 minutes, le msbuild.exe les processus de sortie sur leur propre, et TeamCity pouvez ensuite mettre à jour le répertoire de travail correctement.
- Si j'manuelle de mettre fin à la msbuild processus, TeamCity de la mise à jour ne fonctionne de nouveau immédiatement.
- Services d'indexation sont désactivé dans Windows (bien que l'avant deux points assez bien confirmer que c'est msbuild.exe l'origine du problème).
- Il n'y a pas de propriétés spéciales sur Telerik.reporting.dll. La seule propriété SVN est
svn:mime-type = application/octet-stream
Quelqu'un a couru à travers ce avant?
Vous devez vous connecter pour publier un commentaire.
Utilisation
msbuild
avec/nr:false
.Brièvement: MSBuild essaie de faire beaucoup de choses pour être rapide, surtout avec des constructions parallèles. Il va produire beaucoup de "nœuds" - particulier msbuild.exe processus qui permet de compiler des projets, et, depuis le processus de prendre un peu de temps à tourner, après le build est fait, ces processus traîner (par défaut, pendant 15 minutes, je pense), de sorte que si vous arrivez à créer de nouveau bientôt, ces nœuds peuvent être "réutilisés" et enregistrez le processus d'installation de coût. Mais vous pouvez désactiver ce comportement en éteignant nodeReuse avec la même option de ligne de commande.
Voir aussi:
MSBuild et ConHost restent en mémoire après la compilation parallèle
MSBuild Référence De Ligne De Commande
Des constructions parallèles qui n'ont pas de verrouillage personnalisé tâche MSBuild Dll
Nœud de les Réutiliser dans MultiProc MSBuild
/m /nr:false
, je vais courir pour quelques builds et de voir comment il va. MerciPour désactiver le nœud de la réutilisation au sein de Visual Studio, vous devez utiliser une variable d'environnement: