Visual Studio扩展VisualDIffFiles在另一个实例中打开

时间:2017-01-10 23:03:17

标签: c# visual-studio-2015 visual-studio-extensions

我使用Visual Studio扩展中的VisualDiffFiles静态函数。它在VS的另一个实例(我调试的那个)中打开diff窗口,而不是我运行扩展的那个。如何强制它在正确的VS实例中打开?< / p>

修改 这是从UserControl

运行的代码
  // Diff params
  string sourceFile = @"c:\temp\Eula1.txt";
  string targetFile = @"c:\temp\Eula2.txt";
  string sourceFileTag = "1";
  string targetFileTag = "2";
  string sourceFileLabel = "1";
  string targetFileLabel = "2";
  bool isSourceReadOnly = true;
  bool isTargetReadOnly = true;

  // Use the VS diff tools
  Microsoft.TeamFoundation.VersionControl.Client.Difference.VisualDiffFiles(sourceFile, targetFile, sourceFileTag, targetFileTag,
                                                                            sourceFileLabel, targetFileLabel, isSourceReadOnly, isTargetReadOnly);

1 个答案:

答案 0 :(得分:1)

如果要在当前Visual Studio实例上显示diff窗口,请使用dte.ExecuteCommand方法来实现它。像这样:

DTE2 dte = (DTE2)this.ServiceProvider.GetService(typeof(DTE));

string file1 = @"D:\Test\Test1.txt";
string file2 = @"D:\Test\Test2.txt";

dte.ExecuteCommand("Tools.DiffFiles", $"\"{ file1}\" \"{ file2}\"");