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