J'utilise TeamCity qui à son tour appelle msbuild (.NET 4). J'ai un problème étrange en ce que, après une construction est terminée (et cela ne semble pas important si c'était une construction réussie ou non), msbuild.exe reste ouvert, et verrouille l'un des fichiers, ce qui signifie à chaque fois que TeamCity essaie pour effacer son répertoire de travail, il échoue et ne peut pas continuer. Ceci se produit presque à chaque fois.msbuild.exe reste ouvert, en verrouillant les fichiers
Je suis vraiment perdu sur celui-ci, alors je vais essayer de fournir autant de détails que possible.
- Le serveur est un disque dur Intel Core i7 de 2 Go avec Windows Server 2008 standard SP2 64 bits.
- Dans TeamCity, le coureur de msbuild est configuré avec le paramètre de ligne de commande
/m
(ce qui signifie que d'utiliser plusieurs noyaux) - Le fichier en question est TOUJOURS la même DLL externe qui est référencé dans un des .NET projets, dans le chemin
External Tools\Telerik\Telerik.Reporting.Dll
. (Il existe plusieurs autres fichiers .DLL inclus dans le répertoireExternal Tools
dans une structure de chemin similaire qui ne provoque jamais ce problème). Actuellement, il s'agit de la version d'essai des rapports Telerik, au cas où cela ferait une différence. - Lorsque le problème se produit, il existe toujours plusieurs processus
msbuild.exe *32
répertoriés dans le Gestionnaire des tâches: Je crois qu'il existe 7. À l'aide de Process Explorer, ils ressemblent tous à des processus de niveau supérieur (pas de parents). Ils utilisent tous de 20-50 Mo de RAM, et 0.0% CPU. - Si j'attends 1-3 minutes, les processus msbuild.exe se terminent d'eux-mêmes et TeamCity peut alors mettre à jour le répertoire de travail correctement.
- Si je termine manuellement les processus msbuild, la mise à jour de TeamCity fonctionnera à nouveau immédiatement.
- Les services d'indexation sont désactivés dans Windows (bien que les deux points précédents confirment à peu près que c'est msbuild.exe à l'origine du problème).
- Il n'y a aucune propriété particulière sur Telerik.reporting.dll. La seule propriété SVN est
svn:mime-type = application/octet-stream
Est-ce que quelqu'un a couru à travers cela avant?
est logique: il ne semble pas se produire si je retire/m. J'essaie maintenant avec '/ m/nr: false', je vais lancer quelques builds et voir comment ça se passe. Merci – gregmac
Été quelques jours, et des dizaines de constructions plus tard, et il ne s'est pas encore produit - semble être résolu. Merci – gregmac
Super! Heureux de vous aider. – Brian