我使用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);
答案 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}\"");