Nous venons de migrer vers TFS, et nous avons rencontré exactement le même problème. Dans notre cas, la profondeur de nos dossiers et leurs noms ne sont pas extrêmement profonds ou longs en soi. Cependant, lorsqu'ils sont associés à l'espace de noms complet généré en tant que noms de fichiers par la génération de code "Add Webservice reference" de Visual Studio, l'utilisation de TFS devient problématique.
Je viens de passer beaucoup de temps à préparer le passage de notre entreprise à TFS pour découvrir que nous obtenons cette erreur en essayant de créer des branches. Notre ancien système de contrôle de la source n'avait pas ce problème, et nous pourrions finir par devoir revenir en arrière.
Visual Studio génère lui-même ces fichiers de référence de services longs en fonction de l'espace de noms. Le système de fichiers sous-jacent prend en charge les noms plus longs. Avec des espaces de noms et des dossiers clairs, il est plus facile pour les personnes qui ne sont pas familiarisées avec la base de code de comprendre le cadre de votre produit. L'objectif du code généré automatiquement est d'économiser du temps et de l'argent. Nous ne pouvons pas nous permettre de parcourir une grande base de code en renommant tous les dossiers et fichiers en quelque chose de court et cryptique à chaque fois que nous rencontrons ce problème parce qu'un générateur de code nomme les fichiers comme ceci.
Le développement a évolué. Il faut en tenir compte. Jusqu'à ce qu'il le soit, c'est un énorme point négatif pour TFS, et cela lui a fait perdre ma recommandation par rapport à d'autres systèmes de contrôle de source (il y a même des systèmes gratuits qui n'ont pas cette limitation).
10 votes
@Artelius : En fait, Windows (au moins à partir de Win2K) supporte les points de jonction ( fr.wikipedia.org/wiki/NTFS_junction_point ), et à partir de Vista, les liens symboliques NT ( fr.wikipedia.org/wiki/NTFS_symbolic_link ). Quoi qu'il en soit, alors que les liens symboliques peuvent aider à rendre plus conviviaux les chemins longs/enchevêtrés, je ne vois pas comment les liens symboliques pourraient aider si vous atteignez les limites de longueur des chemins.
1 votes
Sur mon PC Windows 8, la limite semble être d'environ 1024 caractères, donc à voir.
11 votes
Même si cette limite n'existait pas, il y a toujours beaucoup d'autres limites, et chacune d'entre elles pourrait être gênante à un moment donné. La question est de savoir pourquoi cette limite est si basse ? Après l'ère de la 8.3, et avec du matériel de taille méga/giga, un chemin devrait maintenant être une chaîne allouée dynamiquement avec une taille virtuellement illimitée.
2 votes
Coping : les messages d'erreur de Windows pourraient être meilleurs. Je viens d'obtenir l'erreur "cannot find file..." (deux fois) en essayant d'ouvrir une feuille de calcul Excel dans un long répertoire après avoir décompressé un zip dans mon répertoire Downloads. L'erreur devrait plutôt concerner le fait d'essayer d'utiliser un chemin dépassant MAX_PATH, ou devrait montrer un nom de fichier tronqué au lieu du nom entier trop long.
18 votes
Microsoft s'attaque enfin à ce problème, dans la version 14352 de Windows 10.
0 votes
@WarrenP Vous voulez dire ça ? stackoverflow.com/q/27680647/1157054
3 votes
Oui, et il semble que vous deviez modifier le manifeste de l'application pour qu'il prenne en compte le chemin long.
3 votes
@PatrickSzalapski Malheureusement, il a été corrigé. visualstudio.uservoice.com/forums/121579-visual-studio/
2 votes
Avec le \\ ?\ préfixe nous pouvions déjà utiliser des chemins de 32k de long, probablement depuis NT3.5