我正在创建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窗口会刷新结帐文件,但我需要选择此屏幕中的最后一个按钮(Conflicts),以显示Merge的冲突。
我如何通过IVsWindowFrame以编程方式点击此屏幕上的冲突按钮?
答案 0 :(得分: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!