自動ビルド中にパブリッシュパッケージを作成するASP.NET MVCプロジェクトがあります。ビルドでは、引数/p:DeployOnBuild=True /p:CreatePackageOnPublish=True
で未変更のデフォルトテンプレートを使用しています。TFS 2010 - コピー中にエラーが発生しました:パスが長すぎます
WebDeployをサーバーに直接実行すると、正常に動作しています(/ p:CreatePackageOnPublishをfalseに変更した場合)が、ラボ構築中に展開できるパッケージを作成する方が好きです。
エラーメッセージは次のようになります。
TF270002:エラーからファイルをコピー起こった 'C:\は\ 19 \バイナリビルド' に「\ NAS \は\ドロップ\ MyProjectと\ MyProject_Development.Testを構築\ 20120209.1 'となります。 詳細:指定されたパス、ファイル名、またはその両方が長すぎます。 完全修飾ファイル名は260文字未満で、 ディレクトリ名は248文字未満でなければなりません。
問題の最初の部分は、ビルドフォルダのパスだったが長すぎました(274文字)が、それは[OK]をする必要がありので$(SystemDrive)\Builds\$(BuildDefinitionId)
に$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)
から作業ディレクトリを変更した後、それがダウンして最長パスとして230文字までです。
ルートフォルダのパスがそれほど長くても\\nas\Build\Drop\MyProject
であるにもかかわらず、問題がドロップフォルダ内のパスであるように見えます。ビルド名とビルド番号の書式はすぐに長さがMyProject_Development.Test\MyProject_Development.Test_20120208.1
に増えます。その後、すべてのネストされたパスは、本当に深いフォルダ構造_PublishedWebsites\MyProject.Web_Package\Archive\Content\C_C\Builds\19\Sources\MyProject\Source\MyProject.Web\obj\Debug\Package\PackageTmp\Content\ui-lightness\Images\ui-bg_diagonals-thick_18_b81900_40x40.png
を作成します。
この問題を回避する方法はありますか?ビルド番号形式を$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)
から$(Date:yyyyMMdd)$(Rev:.r)
に短縮して、少数の文字を保存しましたが、それだけでは不十分です。私はビルド名を少し短くすることができたと思うが、それは使用された命名規則を破るだろう(それは本当に大きな問題ではないだろうが、それは厄介なことだ!)、それでも短期的な解決のように感じるだろう。
その他に何がありますか?
私はこれへのよりよい解決策がなかったことを恐れていた...私はのできるだけ多くをトリミングしています余分なもの(私のビルドは現在M_D.Tと呼ばれています。本当に有益です)と私の最長のパスは250文字ですが、今構築するので、快適さの限界に近いのです。あなたの答えとUserVoiceへのリンクに感謝します! –
更新:この問題を修正する機能の提案は、Microsoftによって拒否されました。 –
新しいユーザーの音声リンクは、圧力を維持する;) http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4954037-fix-260-character-file-name-length-limitation – rob