0

我正在创建 TFS 合并向导的克隆以添加新功能。

我已经与workspakce.Merge api 合并。现在我需要一种以编程方式显示 Pending Changes - Conflict Window 的方法。

我已经有一个来自 PendingChangesExt 的 IVsWindowFrame,例如:

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

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

当我调用 show() 时,Pending Changes 窗口会用结帐文件刷新,但我需要选择此屏幕中的最后一个按钮(冲突),以显示合并的冲突。

如何通过 IVsWindowFrame 以编程方式单击此屏幕上的 Conflict 按钮?

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"); 
}

感谢 Chad Boles,说我关于 File.TfsResumeConflictResolution !

于 2013-02-18T17:46:34.013 回答