Dot-Net

如何控制 .NET 服務引用的文件名?

  • August 5, 2016

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# 中更短的路徑,然後一切都應該工作,因為你只會使用相對路徑,我想。

引用自:https://stackoverflow.com/questions/7272102