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

Visual Studio Extension VisualDIffFiles opens in another instance

我正在使用 Visual Studio 扩展中的 VisualDiffFiles 静态函数。它在 VS 的另一个实例(我正在调试的实例)中打开差异 window,而不是我正在 运行 扩展的实例。我如何强制它在正确的 VS 实例 ?

编辑 这是来自 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);

如果要在当前visual studio实例上显示差异window,请使用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}\"");