2016-04-14 26 views
1

C#でTFSにファイルを追加しようとしています。ここに私のコードです。C#TFS Workspace.PendADDフォルダの作業マッピングがありません。

Workspace workspace = versionControl.QueryWorkspaces(Environment.MachineName, versionControl.AuthorizedUser, Environment.MachineName).SingleOrDefault(); 
     if (workspace == null) 
     { 
      w("No workspace configured"); 
      return; 
     } 

     //String topDir = null; 

     var troubleshooter = workspace.GetWorkingFolderForLocalItem("LocalPath"); 

workspace.PendAdd("Filepath", true); 

私はworkspace.GeWorkingFolderForLocalItemを呼び出すときに、それが正常に動作して、フォルダのマッピングを取得することをその奇妙な。私が同じパスからTFS内のファイルをPendADDにしようとすると、 "LocalPath"のWorkingマッピングが見つからないという致命的なエラーが発生します。

答えて

0

あなたのエラー情報によると、必ずワークスペースのマッピングが正しくセットアップありますそれ以外の場合は、再帰的にworkspace.PendAddを呼び出すと、実際には、何も追加しませんが。この質問のエドワードトムソンの答えでは詳細な説明を参照してください:Calls to `Workspace.PendAdd` not adding items

そして、ここではあなたの参照のためにそれらの変更をチェックイン、保留中の変更が、ワークスペースを作成する方法を示しMSDNから別のblogです。

+0

ありがとうございますが、マッピングがあり、うまく機能しています。私が "GetWorkingFolderForServerItem"にしようとするとき、質問で説明したように、期待値を返します –

2

VersionControlServerのキャッシュに問題があるようです。キャッシュが完全に更新されていないため、「GetWorkingFolderforServerItem」が正常に動作していて、PendAddが正常に動作していませんでした。 PendAddキャッシュを使用します。コマンドに続いてトリックが行われました。

  Workstation.Current.EnsureUpdateWorkspaceInfoCache(versionControl, versionControl.AuthorizedUser); 
関連する問題