Comment pouvez-vous contrôler les noms de fichiers pour les références de service .NET?

Windows a une limitation de 259 caractères dans les chemins. Malheureusement, cela commence à causer des problèmes en raison de certains de nos noms de référence de service.

Par exemple, nous avons notre twig TFS avec un chemin déjà long, et les références de service .NET doublent presque ce chiffre car elles utilisent toujours l’espace de nom complet comme nom de fichier:

Some.Real.Long.Fully.Qualified.Namespace.Service.Reference.Name.datasource

AFAIK, vous ne pouvez pas changer le nom de la référence de service – mais je suis faux. Est-ce que cela peut être fait?

Sinon, existe-t-il d’autres solutions possibles à ce problème ennuyeux?

EDIT: Je sais aussi qu’une solution évidente serait de raccourcir nos espaces de noms et / ou chemins, mais supposons que nous ne pouvons pas le faire dans ce cas. 🙂 J’essaie principalement de comprendre comment contrôler les noms de fichiers pour les références de service.

MISE À JOUR: Le problème principal est que TFS ne me permet pas de connaître les dernières nouveautés d’une twig particulière. Voici l’erreur exacte:

TF205022: Le chemin suivant contient plus de 259 caractères autorisés: [C: \ Some-really-long-259-character-path-here]

Il s’avère que ces fichiers .datasource peuvent être supprimés, car ils ne sont pas nécessaires pour générer le projet. Nous avons donc fait un balayage de tous les fichiers .datasource dans TFS et les avons supprimés.

Cet article parle plus à ce sujet.

259? en fait 32 k par NTFS mais Windows Explorer limite à “256”, il existe certaines API Windows qui permettent de créer et de gérer des chemins plus longs jusqu’à la limite réelle de NTFS ~ 32k, la puissance correcte de 2, mais la plupart des logiciels n’utilise pas vraiment ces apis natifs …

voir ici: Longueur maximale du nom de fichier dans NTFS (Windows XP et Windows Vista)? .

Une possibilité serait d’utiliser l’outil de jonction de Sys Internals et de relier votre long chemin de twig à quelque chose de beaucoup plus court directement dans C #, alors tout devrait fonctionner parce que vous utiliseriez seulement des chemins relatifs, je suppose.