4

TFS 2012 で VS 2012 を使用しています。パスとファイル名を組み合わせた長いファイルの削除を含む一連の変更をチェックインしています。ゲート ビルドは次のエラーで失敗します。

Exception Message: TF400889: The following path contains more than the allowed 259 characters: C:\Builds\10\MFirstPartOfMyPath>\__Unmapped__\78118\<SecondPartOfMyPath>\<MyFileName>.sql. Specify a shorter path. (type InvalidPathException)
Exception Stack Trace: 
Server stack trace: 
   at Microsoft.TeamFoundation.Common.FileSpec.GetFullPathWrapper(String path)
   at Microsoft.TeamFoundation.Common.FileSpec.GetFullPath(String path, Boolean checkForIllegalDollar)
   at Microsoft.TeamFoundation.VersionControl.Client.Workspace.Map(String serverPath, String localPath)
   at Microsoft.TeamFoundation.Build.Workflow.Activities.TfWorkfold.RunCommand(VersionControlScope versionControlScope, Workspace workspace, TfWorkfoldAction action, String serverPath, String localPath)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
   at System.Action`5.EndInvoke(IAsyncResult result)
   at Microsoft.TeamFoundation.Build.Workflow.Activities.TfWorkfold.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
   at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)

Inner Exception Details:

Exception Message: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. (type PathTooLongException)
Exception Stack Trace:    at System.IO.PathHelper.GetFullPathName()
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
   at System.IO.Path.GetFullPath(String path)
   at Microsoft.TeamFoundation.Common.FileSpec.GetFullPathWrapper(String path)

そのようなファイルを追加しようとしている場合は理解できますが、チェックインは既に存在するファイルを削除しようとしています。このエラーを回避するにはどうすればよいですか?

4

1 に答える 1

4

トリックは次のとおりです。

  1. 削除を取り消す
  2. ファイルの名前を短い名前に変更します
  3. チェックイン (ビルドのトリガー)
  4. 最新情報を取得
  5. ファイルを削除する
  6. チェックイン
于 2013-07-24T14:25:00.243 に答える