题
您能推荐一个能够很好地处理 C# 的优秀文件比较实用程序吗?我已经尝试过 WinMerge、BeyondCompare 和 KDiff,但它们都不够好,例如如果我有具有相同名称但放置在文件的不同区域的函数,它们会将其显示为差异。
解决方案
[更新(2015):既然写这个答案现在有更现代的工具,可以做到结构和语义合并和各种语言的代码版本比较。请参阅 JotaBe的回答获得一些例子]
<强>原来的答复(2010)强>: 不幸的是,这是一种差异的本质。这一直是由行比较的线,它不是一个语言感知比较。据我所知,没有什么可以做你要求什么(它总是可能我虽然错了)。
您可以使用像 regionerate 一个工具,你做比较之前,以规范类布局。这将下令所有的方法,这样你就不会具有相同名称在一个文件中不同的地方是的方法有问题。
其他提示
目前(2015 年 4 月),至少有 3 个商业比较工具考虑了 C# 代码文件的结构,以在代码文件之间进行高级比较和合并:
- 科德软件 代码比较++
- Devart 代码比较
- 语义合并
这三个工具仅支持付费版本(或试用期)的这种高级比较。AFAIK 没有免费工具可以做到这一点。
我使用 Devart CodeCompare 这项任务。本土VS编辑器允许我来处理C#和VB很好。他们称这种功能“结构比较”。这将是对你有用。
我不认为你会发现一个文本比较实用工具,将做到这一点。你最好不要让他们在同一个地方重新组织的功能。我见过的设计器生成的代码做(每个文件被再生阵子即移动功能)这一点。它讨厌,但我不认为你会避开它。 BeyondCompare确实是最好的比较实用程序在那里一个。
不隶属于 StackOverflow