Team Foundation Server Team Build: TF10128 - "...more than the allowed 259 characters"

Written on May 02, 2008

Wenn man Team Build mit den Standard-Einstellungen für den Team Build Agent verwendet, kann einem folgende Fehlermeldung sehr schnell ereilen:

C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets(737,5,737,5): error : TF10128: The path C:\Documents and Settings\NetworkService\Local Settings\Temp\GenericsDataLayer\GenericsDataLayerBuild\Sources\Development\Version 0.3\Source\Libraries\Microsoft Enterprise Library 3.1\Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Configuration.Design.xml contains more than the allowed 259 characters. Type or select a shorter path.

In der Build-Übersicht sieht das ganze wie folgt aus:

Fehlerhafter Build

Der Grund hierfür liegt, wie bereits eingangs erwähnt, in der Konfiguration des zugehörigen Build Agents, genauer in der Einstellung Working Directory:

TeamBuild Agent1

Der Eintrag "$(Temp)" wird zur Build-Laufzeit umgewandelt in "C:\Documents and Settings\[BuildUserAccount]\Local Settings\Temp\".

Der Eintrag "$(BuildDefinitionPath)" wird zu "[ProjektName]\[BuildName]\Sources".

Danach wird schließlich noch der Pfad angehängt, der in der Build-Definition unter Workspace / Source Control Folder definiert ist (bzw. ab dort absteigend).

Allein der Eintrag "$(Temp)" ist - je nach Länge des BuildUserAccount-Namens zwischen 50 und 60 Zeichen lang.

Dies lässt sich leicht ändern, indem man Working Directory z.B. auf "C:\Build\" ändert:

TeamBuild Agent1

Allein mit dieser Änderung kann man je nach Länge des BuildUserAccount-Namens schon fast 50 Zeichen einsparen.

Weiter optimieren lässt sich das ganze natürlich, indem einen kürzeren Build-Namen wählt oder z.B. in der Build Definition im Workspace den Source Control Folder gezielter auswählt und damit die Zahl auszucheckenden Unterverzeichnisse verringert.