Za długa ścieżka podczas Team Builda, czyli błąd TF10128. Co robić?

Przyjęliśmy w zespole nazewnictwo projektów składające sie z wielu części(Billennium.[Projekt].[Typ:Web\Windows\Obj].[Nazwa własna]). Taki opisowy sposób nazywania projektów pozwala na błyskawiczne zorientowanie się, czego dany projekt dotyczy i generalnie sprawdza się w codziennej pracy doskonale, potrafi jednak doprowadzić do następującego problemu z Team Buildem:

C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets(755,5,755,5): error : TF10128: The path C:\Documents and Settings\NetworkService\Local Settings\Temp\[Reszta ścieżki] contains more than the allowed 259 characters. Type or select a shorter path.

Okazuje się(co widać powyżej, na szczęście informacja o błędzie jest jasna), że ścieżka nie może być dłuższa niż 259 znaków. I w sumie jakby się zastanowić, to limit wydaje się być bezpieczny. No właśnie, co zrobić jeśli jednak nie jest 😉

Pierwszy pomysł(zły!): skrócić nazwę samego projektu – skoro inne projekty nie krzyczą tym błędem, to może oznaczać, że w tym konkretnym przypadku trochę nas poniosła wyobraźnia 🙂 Jednak jest to podejście w stylu “Panie doktorze, bolą mnie plecy jak się schylam” – “Proszę się nie schylać”.

Drugi pomysł(dobry!): Chyba niewiele jest osób, którym zależy na tym, żeby źródła dla builda były przechowywane w folderze C:\Documents and Settings\NetworkService\Local Settings\Temp\ (NetworkService możemy sobie zamienić na inny profil – jest zależny od tego, w jakim kontekście odpalimy TeamBuilda). Ta część ścieżki zjada nam 61 znaków, czyli niemalże 25% limitu! Poniżej wyjaśnienie czemu tak się dzieje:

Gdy wejdziemy w managera Build Agentów(w Visual Studio: Build->Manage Build Agents), wyedytujmy dowolny z listy, lub poprośmy o założenie nowego. Pojawi się okienko jak poniżej:

agent_pre

Zmienna $(Temp) w dużej mierze przyczynia się do naszego pięknego przekroczenia limitu. Wystarczy ją zamienić na jakiś inny folder, np C:\Temp:

agent_post

 

Których edycji problem dotyczy?

Z tym problemem spotkałem się podczas pracy z TFS 2008. W TFS 2005 też występuje(co ciekawe, tam limit znaków wynosi 260 :)) ). Idąc prawem serii, TFS 2010 powinien sypnąć błędem przy 258 😉 Starałem się różnymi sposobami wywołać błąd w TFS 2010, ale ostatecznie mi się nie udało. Zdarzało się natomiast, że przy podawaniu dłuższej nazwy, już Visual Studio blokował stworzenie elementu(projektu, builda)…

No Comments

Post a Comment

Time limit is exhausted. Please reload CAPTCHA.