如何控制 .NET 服務引用的文件名?
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 $$
事實證明,這些 .datasource 文件可以刪除,因為建構項目不需要它們。所以我們只是對 TFS 中的所有 .datasource 文件進行了掃描,並刪除了它們。
本文對此進行了更多討論。
259?實際上 NTFS 為 32 k,但 Windows 資源管理器限制為“256”,某些 Windows API 允許創建和處理更長的路徑,直到 NTFS 的實際限制 ~32k,2 的適當冪,但大多數軟體並沒有真正使用那些原生 api…
請參閱此處:NTFS 中的最大文件名長度(Windows XP 和 Windows Vista)?.
一種可能性是使用Sys Internals中的****連接工具,並將你的長分支路徑直接連接到 C# 中更短的路徑,然後一切都應該工作,因為你只會使用相對路徑,我想。