您能推荐一个能够很好地处理 C# 的优秀文件比较实用程序吗?我已经尝试过 WinMerge、BeyondCompare 和 KDiff,但它们都不够好,例如如果我有具有相同名称但放置在文件的不同区域的函数,它们会将其显示为差异。

有帮助吗?

解决方案

[更新(2015):既然写这个答案现在有更现代的工具,可以做到结构和语义合并和各种语言的代码版本比较。请参阅 JotaBe的回答获得一些例子]

<强>原来的答复(2010): 不幸的是,这是一种差异的本质。这一直是由行比较的线,它不是一个语言感知比较。据我所知,没有什么可以做你要求什么(它总是可能我虽然错了)。

您可以使用像 regionerate 一个工具,你做比较之前,以规范类布局。这将下令所有的方法,这样你就不会具有相同名称在一个文件中不同的地方是的方法有问题。

其他提示

目前(2015 年 4 月),至少有 3 个商业比较工具考虑了 C# 代码文件的结构,以在代码文件之间进行高级比较和合并:

这三个工具仅支持付费版本(或试用期)的这种高级比较。AFAIK 没有免费工具可以做到这一点。

我知道唯一可以做到这一点的工具(我不确定它可以)是 git.

据我所知,即使函数被移动到不同的文件,它也可以跟踪它们,因此在这种情况下使用它不会显示出差异。

这个答案 了解更多详情。

我使用 Devart CodeCompare 这项任务。本土VS编辑器允许我来处理C#和VB很好。他们称这种功能“结构比较”。这将是对你有用。

我不认为你会发现一个文本比较实用工具,将做到这一点。你最好不要让他们在同一个地方重新组织的功能。我见过的设计器生成的代码做(每个文件被再生阵子即移动功能)这一点。它讨厌,但我不认为你会避开它。 BeyondCompare确实是最好的比较实用程序在那里一个。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top