Windows在路径中限制为259个字符。不幸的是,由于我们的一些服务引用名称,这开始给我们带来问题。
例如,我们的TFS分支具有已经很长的路径,然后.NET服务引用几乎加倍,因为它们总是使用完全限定的命名空间作为文件名:
Some.Really.Long.Fully.Qualified.Namespace.Service.Reference.Name.datasource
AFAIK,你不能改变服务引用的名称 - 但是我错了。可以这样做吗?
如果没有,这个恼人的问题还有其他可行的解决办法吗?
编辑:另外,我知道一个明显的解决方案是缩短命名空间和/或路径,但假设在这种情况下我们不能这样做。 :)我主要是想弄清楚如何控制服务引用的文件名。更新:我遇到的根本问题是TFS不允许我获取特定分支的最新信息。这是确切的错误:
TF205022:以下路径包含超过允许的259个字符: [C:\一些-真长-259-字符路径此处]
答案 0 :(得分:13)
事实证明,这些.datasource文件可以删除,因为它们不是构建项目所必需的。所以我们只是扫描了TFS中的所有.datasource文件,并删除了它们。
This article更多地讨论了这一点。
答案 1 :(得分:-1)
259?实际上是NTFS 32 k但Windows资源管理器限制为“256”,有一些Windows API允许创建和处理更长的路径,达到NTFS~32k的实际限制,2的适当功率,但大多数软件并没有真正使用那些原生的apis ......
见这里:Maximum filename length in NTFS (Windows XP and Windows Vista)?。
可能的方法是使用 Sys Internals 中的结工具,并将您的长分支路径直接连接到C#中更短的内容,所有内容都应该有效,因为您只会我想,使用相对路径。