【问题标题】:How to "programmatically" integrate diff tool with Visual Studio如何“以编程方式”将差异工具与 Visual Studio 集成
【发布时间】:2013-11-18 21:01:11
【问题描述】:

有没有办法“以编程方式”将差异工具(如 WinDiff 和 WinMerge)与 Visual Studio 2010 集成?这些文件不是在解决方案资源管理器中找到的文件。

程序必须在列表中搜索并存储从某个目录中找到的文件,然后递归地比较具有相同名称的文件。

【问题讨论】:

  • 你到底想达到什么目的?您只是想识别不同的文件或文件中的文本,还是真的希望 WinMerge 出现在每个文件中?

标签: c# visual-studio-2010 winmerge


【解决方案1】:

据我所知,您正在寻找 TFS Difference 类。这是一个如何使用它的示例:

string f1 = @"file1.cs";
string f2 = @"f2.cs";

Microsoft.TeamFoundation.VersionControl.Common.DiffOptions options = new Microsoft.TeamFoundation.VersionControl.Common.DiffOptions();
options.Recursive = true;
options.StreamWriter = new System.IO.StreamWriter(Console.OpenStandardOutput());
options.UseThirdPartyTool = true;
options.OutputType = Microsoft.TeamFoundation.VersionControl.Common.DiffOutputType.Unified;            

var diff = Difference.DiffFiles(
            f1, FileType.Detect(f1, null),
            f2, FileType.Detect(f2, null),
            options);

while (diff != null)
{
    // Do whatever it is that you want to do here            
    diff = diff.Next;
}

【讨论】:

    【解决方案2】:

    【讨论】:

    • 谢谢。但是有没有办法在 winmerge 或 windiff 中自动比较文件并使用 C# 语言?
    • 如果你要在你的代码中启动windiff,你可以通过启动一个新进程来调用它,查看ProcessStartInfo
    • 我想在不实际执行 WinDiff 的情况下比较文件。我还没有找到解决方案......也许对我来说最好的方法是使用方法ReadAllText然后对其进行编码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2013-07-05
    相关资源
    最近更新 更多