[TFS] MSBUILD : Logger error MSB4104: Failed to write to log file "C:\a\src\<Project>\<SolutionName>\<SolutionName>.log

Grâce à Team Foundation Service disponible depuis peu, il est possible de faire de l’intégration continue directement via ce TFS online mais également de publier un site web sur Azure à chaque check-in.

Cette étape se fait en quelques clicks et est très simple à mettre en place.

 

La mise en place d’intégration continue sur Azure ou sur un TFS classique peut reserver quelques surprises et notamment l’erreur suivante lors de la build :

 

MSBUILD : Logger error MSB4104: Failed to write to log file "C:\a\src\ICTest\ICBuildTest\ICBuildTest.log

 

Voici l’explication et l’une des causes de cette erreur :

 

Dans ma solution qui se nomme “ICBuildTest”, j’ai un projet Azure avec un Web role qui se nomme “ICBuildTest.Web” :

 

image

 

Lorsque cette solution est envoyée sur le TFS, la build automatique se déclenche et se termine avec succès.

 

image

 

Je rajoute ensuite un projet de type class contenant ma brique de log qui se nomme “ICBuildTest.Log”.

 

image

 

La build se lance à nouveau mais cette fois-ci se termine en erreur au bout de 63 secondes.

 

image

 

Le detail de l’erreur indique un accès refusé sur le fichier de log de MSBUILD qui se nomme “ICBuildTest.log” et qui se trouve à la racine de ma solution.

 

image

 

En conclusion, MSBUILD essaie d’ouvrir un répertoire en tant que fichier.

Pour résoudre ce problème, il faut renommer le projet en “ICBuildTest.Logging” par exemple ou modifier le nom du fichier de log de MSBUILD.