Tfs 如何以编程方式操作挂起的更改窗口?
我正在创建TFS合并向导的克隆以添加新功能 我已经与workspakce.Merge api合并。现在我需要一种编程方式来显示挂起的更改-冲突窗口 我已经从PendingChangesExt获得了一个IVsWindowFrame,如:Tfs 如何以编程方式操作挂起的更改窗口?,tfs,visual-studio-2012,visual-studio-sdk,tfs-sdk,Tfs,Visual Studio 2012,Visual Studio Sdk,Tfs Sdk,我正在创建TFS合并向导的克隆以添加新功能 我已经与workspakce.Merge api合并。现在我需要一种编程方式来显示挂起的更改-冲突窗口 我已经从PendingChangesExt获得了一个IVsWindowFrame,如: GetStatus status = sourceExplorer.Workspace.Merge(sourcePath, targetPath, versionFrom, versionTo, LockLevel.None, RecursionType.F
GetStatus status = sourceExplorer.Workspace.Merge(sourcePath, targetPath, versionFrom, versionTo, LockLevel.None, RecursionType.Full, MergeOptionsEx.None);
IVsWindowFrame frame = pendingChanges.VsWindowFrame;
frame.Show();
调用show()时,“挂起的更改”窗口将使用签出文件刷新,但我需要选择此屏幕中的最后一个按钮(冲突),以显示合并的冲突
我如何通过IVsWindowFrame以编程方式单击此屏幕上的冲突按钮?我在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.tfsresumeconflicteresolution 我找到了部分解决方案,但我无法使冲突窗口显示yeat!仅显示源挂起的更改。。。m_applicationObject.ExecuteCommand(“View.TfsPendingChanges”,简称“)//刷新m_applicationObject.Commands.Raise({ffe11131c-8EA1-4D05-9728-34AD4611BDA9}),4808,参考customIn,参考customOut)//Get-Out=null;m_applicationObject.Commands.Raise({ffe11131c-8EA1-4D05-9728-34AD4611BDA9}),4832,参考customIn,参考customOut);