15

Windows 在路径中限制为 259 个字符。不幸的是,由于我们的一些服务引用名称,这开始给我们带来问题。

例如,我们的 TFS 分支的路径已经很长了,然后 .NET 服务引用了几乎两倍的路径,因为它们总是使用完全限定的命名空间作为文件名:

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

AFAIK,您不能更改服务引用的名称——但我希望我错了。这可以做到吗?

如果没有,对于这个烦人的问题,还有其他可能的解决方法吗?

编辑:另外,我知道一个明显的解决方案是缩短我们的名称空间和/或路径,但假设在这种情况下我们不能这样做。:) 我主要想弄清楚如何控制服务引用的文件名。

更新:我遇到的根本问题是 TFS 不允许我在特定分支上获得最新信息。这是确切的错误:

TF205022:以下路径包含超过允许的 259 个字符:[C:\Some-really-long-259-character-path-here]

4

2 回答 2

13

事实证明,这些 .datasource 文件可以删除,因为构建项目不需要它们。所以我们只是对 TFS 中的所有 .datasource 文件进行了扫描,并删除了它们。

本文对此进行了更多讨论。

于 2011-10-03T20:52:19.277 回答
-3

259?实际上 NTFS 为 32 k,但 Windows 资源管理器限制为“256”,某些 Windows API 允许创建和处理更长的路径,最高可达 NTFS ~32k 的实际限制,2 的适当幂,但大多数软件并没有真正使用那些原生 api...

请参阅此处:NTFS 中的最大文件名长度(Windows XP 和 Windows Vista)?.

一种可能性是使用Sys Internals中的连接工具,并将你的长分支路径直接连接到 C# 中更短的路径,然后一切都应该工作,因为你只会使用相对路径,我想。

于 2011-09-01T15:32:28.900 回答