首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法以编程方式显示合并工具中内置的用于解决合并冲突的

无法以编程方式显示合并工具中内置的用于解决合并冲突的
EN

Stack Overflow用户
提问于 2014-12-10 15:46:48
回答 1查看 470关注 0票数 0

我使用单元测试项目VS 2012,也使用控制台应用程序项目VS 2012,使用TeamFoundationClient 11.0TFS 2008

我使用MergeContent(冲突,真),但没有显示UI (用于合并的对话框模式)。

我见过这样的提法:

无法以编程方式显示合并工具中内置的用于解决合并冲突的https://connect.microsoft.com/VisualStudio/feedback/details/783320/cannot-programatically-display-built-in-merge-tool-to-resolve-a-merge-conflict

Workspace.MergeContent() with useExternalMergeTool = true不使用VS 2012打开内置VS合并工具

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.workspace.mergecontent(v=vs.110).aspx

使用VS 2010和TFS 2010,而没有为执行合并操作配置任何用户工具,当我们用Workspace.MergeContent= useExternalMergeTool = true调用useExternalMergeTool()时,使用内置的VS合并工具。 使用VS 2012和TFS 2012,而没有配置用于执行合并操作的任何用户工具,当我们使用Workspace.MergeContent()调用useExternalMergeTool = true时,函数返回fals而不打开内置的VS合并工具。最后,与以前的版本不同,内置在merge工具中的VS 2012相当不错,但是现在没有办法通过编程打开它来解决合并冲突。这是VS 2010的功能回归。

对于合并内容的显示模式对话框,有什么建议或解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-26 09:56:07

从visual studio安装dir C:\Program (X86)\MicrosoftVisualStudio12.0\Common7\IDE复制App文件中的vsDiffMerge.exe

代码语言:javascript
复制
var mergetool = new ThirdPartyToolDefinition(".*",ToolOperations.Merge,"vsDiffMerge.exe","","/m %1 %2 %3 %4");
var toolcol= ThirdPartyToolDefinitionCollection.Instance.FindTool(".*",ToolOperations.Merge);
if (toolcol == null)
   {
    ThirdPartyToolDefinitionCollection.Instance.AddTool(mergetool);
    ThirdPartyToolDefinitionCollection.Instance.PersistAllToRegistry();
   }

var controlsAssembly = Assembly.GetAssembly(typeof(ControlAddItemsExclude));
var vcResolveCoinflictsDialogType = controlsAssembly.GetType("Microsoft.TeamFoundation.VersionControl.Controls.DialogResolveConflicts");
var ci = vcResolveCoinflictsDialogType.GetConstructor(BindingFlags.Instance | BindingFlags.Public, null, new[] { typeof(Workspace), typeof(string[]), typeof(bool) }, null);
var resolveCoinflictsDialog = (Form)ci.Invoke(new object[] { workspace, null, true });
resolveCoinflictsDialog.ShowDialog(parent);

ThirdPartyToolDefinitionCollection.Instance.Remove(mergetool);
ThirdPartyToolDefinitionCollection.Instance.PersistAllToRegistry();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27405155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档