0

新しい機能を追加するために、TFS のマージ ウィザードのクローンを作成しています。

私はすでにworkpakce.Merge apiとマージしました。ここで、保留中の変更 - 競合ウィンドウをプログラムで表示する方法が必要です。

私はすでに PendingChangesExt の IVsWindowFrame を次のように持っています。

   GetStatus status = sourceExplorer.Workspace.Merge(sourcePath, targetPath, versionFrom, versionTo, LockLevel.None, RecursionType.Full, MergeOptionsEx.None);

   IVsWindowFrame frame = pendingChanges.VsWindowFrame;
   frame.Show(); 

show() を呼び出すと、保留中の変更ウィンドウがチェックアウト ファイルで更新されますが、Merge の競合を表示するには、この画面の最後のボタン (競合) を選択する必要があります。

IVsWindowFrame を介して、この画面の競合ボタンをプログラムでクリックするにはどうすればよいですか?

4

1 に答える 1

1

Chad Boles の助けを借りて解決策を見つけました。

public void refreshPendingChanges()
{
  Object customIn = null;
  Object customOut = null;

  //Show TfsPendingChanges
  m_applicationObject.ExecuteCommand("View.TfsPendingChanges", "");

  //Refresh
  m_applicationObject.Commands.Raise("{FFE1131C-8EA1-4D05-9728-34AD4611BDA9}", 4808, ref customIn, ref customOut);

  //Activate Source Explorer
  m_applicationObject.DTE.Windows.Item("{99B8FA2F-AB90-4F57-9C32-949F146F1914}").Activate(); //I get this GUID recording a Macro.
  //Show Conflicts
  m_applicationObject.DTE.ExecuteCommand("File.TfsResumeConflictResolution"); 
}

File.TfsResumeConflictResolution について教えてくれた Chad Boles に感謝します!

于 2013-02-18T17:46:34.013 に答える