15

Windows では、パスに 259 文字という制限があります。残念ながら、一部のサービス参照名が原因で、これにより問題が発生し始めています。

たとえば、既に長いパスを持つ TFS ブランチがあり、.NET サービスの参照は常にファイル名として完全修飾名前空間を使用するため、これをほぼ 2 倍にします。

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

私の知る限り、サービス参照の名前を変更することはできませんが、私が間違っていることを願っています。これはできますか?

そうでない場合、この厄介な問題に対する他の回避策はありますか?

編集: また、名前空間やパスを短くすることが明らかな解決策の 1 つであることはわかっていますが、この場合はそれができないと仮定します。:) 私は主に、サービス参照のファイル名を制御する方法を理解しようとしています。

更新:私が抱えている根本的な問題は、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 の実際の制限である 2 の適切な累乗である ~32k まで、より長いパスを作成および処理できますが、ほとんどのソフトウェアはこれらのネイティブ API は実際には使用しません...

こちらを参照してください: NTFS でのファイル名の最大長 (Windows XP および Windows Vista)? .

可能性としては、 Sys Internalsのジャンクションツールを使用して、長いブランチ パスを直接 C# でもっと短いパスにジャンクションすると、相対パスのみを使用するため、すべてが機能するはずです。

于 2011-09-01T15:32:28.900 に答える