我怎么可以比较的内容的两个(或更多)大。另文件吗?与数百名值对每个文件,这将会是非常有助于查看一个合并版本。我特别感兴趣的名字值对它们存在的中立的文化,但是也没有规定一种文化的特定版本。

有帮助吗?

解决方案

有一个很棒的免费工具可以编辑resx文件,你可以一次看到多种语言并清楚地看到缺少的内容或额外的内容 - Zeta资源编辑器

其他提示

虽然它本身并不是差异化工具,但 RESX Synchronizer 可能会对您有所帮助。它的主要用途是使用中性语言中的新条目更新本地化.resx文件,并删除所有已删除的项目。

可能,使用/ v命令行开关生成的输出将是您所需要的。否则,它会带有完整的C#源代码,因此您可以根据需要进行调整。

对于较新版本的Visual Studio(2010+),现在有一个名为 ResXManager (由 tomenglert 创建),这是惊人的对此。

它允许您并排查看每种语言的每个资源,并突出显示缺少的资源。 (以下示例来自扩展下载页面。) 搜索结果

使用一个简单的差异在XML文件可以完全无用的,如果匹配件不会出现在同样的秩序,在这两个文件。我一直在寻找一种XML的具体差异的工具,因此远远没有成功。

与此同时,解决方法,我一直在使用的是这个:

  • 打开的 .resx 文件在Visual Studio.
  • 选择的所有[Ctrl + 一个]和切割[Ctrl + X](这可能需要一段时间对大型文件的能患者)
  • 贴[Ctrl + V]和节(这将重新创建的 .resx 文件按键)

当这两个文件都是这样的重新订购的,通常比较清变得容易得多。你可以迅速找到丢失的钥匙由撇通过的差异。

我已经尝试了几种XMl差异的工具。这里的摘要(需求驱使我评估,这是差异的视觉产生的工作室 .resx 资源文件,我认为这是一个很大的错,Microsoft制的元素的顺序是随机的,窗户的形式总是重新写入ImageStream如果你只是改变一个按钮的位置,什么也不做,与imageList).

  1. XmlDiff
  2. Altova DiffDog
  3. XML的记事本
  4. ExamXML
  5. 液体XML2009年工作室 (那里有一个XML差异的菜单,但是只有一个许可证的版本可以使用它。所以我没有机会试一试)

首先,所有正常的比较工具不应被认为是因为他们什么都不知道的XML,他们对待文本文件仅作为行文本。

  1. XmlDiff是第一工具我尝试。它看起来,它可以不要想我需要的,但下载后的源代码(Visual Studio2003年)和汇编与Visual Studio2005年(与成功的自动升级)我可以汇编的小型项目的顺利进行。但是,当我比较两个实 .resx 文件(1295线),它就崩溃了。调试进入代码不会给我一个线索关于发生什么事了因为我没有源代码 xmldiffpatch.dll XmlDiffPatch.View.dll.

    原因我不是试图挖掘更多进入这个工具是输出格式,或GUI设计。它就输出HTML文件的差异突出显示在一个互联网浏览器的主办的窗口。大XML文件的差异,这并不容易使用。

  2. XML的记事本有一个简单的建XML差异。根据输出的窗口,我认为它在内部使用XmlDiff的组成部分。和输出是一样XmlDiff.我会卸载。

  3. 轴是更传统的文化差异工具,它也可以比较的二进制文件、图像文件,文件夹和word文件。我非常喜欢它用于任何差异的任务 除了 XML的,因为它没有XML-知道差异选择的支持。

  4. Altova DiffDog看起来像一个复杂的商业产品,它没有包含选择忽略这件了,这是关键特征对于我。

    但是之后试图与它同样真实的 .resx 文件(1295线,不是一个很大的一个在我的经验),我发现,"忽略元以"只是不工作,以及如果两个元素是位于非常不同的地方,在两个文件。

  5. ExamXML看起来像一个商业产品,但它是一个小的产品。但之后,我发现它是最理想的工具,目前对于我的期望。

还有一个令人失望的一面:它坠毁,当我按下 F10 浏览以下的差异。的 忽略了的元素 选项工作。还有一个皮蒂,所定制的忽略件是没有那么多的灵活性。

label1.Size
label1.Location
label1.Width

我想要忽略所有的差异,在这些元素名称中包含".大小"或"。位置"或"。宽度",但它不可能定义这样的条件,在同一时间。定不支持定期的表达。

无论如何,我会使用ExamXML(仔细的)比较XML文件。

更新1:多年过去了,现在我用VS2017和winform没有改变,因为我的初步回答这一问题。当工作需要打破对不同的人,这个问题出现了一次又一次,我无聊.

实际上我忘了这个答案,谷歌把我带到这里。

我开始了一个新的调查会议,并且有一些很好的调查结果:https://www.codeproject.com/Articles/37022/Solving-the-resx-Merge-Problem 表明如何轻松我们可以排序的另文件的数据/@名属性的皇宫.这是惊人的。核心码仅是一个语句组成的几个皇宫.

后来我还发现,ResXResourceManager,这是指出通过另一个答案在这个线程中,提交人答复上述代码项目文,并添加功能,以ResXResourceManager,在ResxResourceManager,你可以config的插件自动排序的另文件时,(前)保存在配置标签。甚至还有一个排序的选择你可以选择:CurrentCulture,序号或IgnoreCase等。

不幸的是代码项目解决方案和ResXResourceManager解决方案产生不同的结果,源可用,我发现的码项目解决方案治疗">>"属性价值,作为正常的文本,以便在语义上相关的部件是分开的。这个可以容易地通过固定添加一个TrimStart('>')到皇宫.

然而,在固定之后这两个工具仍然产生不同的结果。该culprint是皇宫默认情况下使用CurrentCulture排序串,我完全忽略了相关选项在resXResourceManager,对于这个问题,我认为最好选择是"序号".之后,添加这种选择的项目代码解决方案,并设置一样选择在ResXResourceManager,最后他们产生完全相同的结果!

虽然resxResourceManager是伟大的集中管理的资源,并修复另元的顺序问题,代码项目的工具仍然是非常宝贵的我,因为这是独立的,所以它可以用在一个更广泛的情况;此外,该代码非常简短和优雅。

我想添加另一种注意在结束我的更新,我利用龟饭桶我使用轴向比较不同的版本,这几乎是无意义的比较,另两个文件的修订,但是,轴支持定一个过滤器来转换输入文件之前,比较引擎看到它。用于比较,轴电过滤器以下命令:sortresx.exe -f C:\Users\ADMINI~1\应用程序数据\Local\临时\mrg.8032.3.另C:\Users\ADMINI~1\应用程序数据\Local\临时\mrg.8032.2C:\Users\ADMINI~1\应用程序数据\Local\临时\mrg.8032.4

-f意味着盼着,第一个文件名是输入文件,该文件第二名是输出文件的过滤器应该写的,第三个可以被忽略。后一点点改变对代码项目的代码,我现在可以编制一个过滤程序,configed它在轴,并且做另一个合理的修订比较,甚至对旧的,砸了另文件。

您可以使用XML Diff编写代码。请参阅 在应用程序中使用XML差异和修补程序工具

您可以使用TortoiseSVN的差异工具(如果您使用的是Windows)。只需选择两个文件,右键单击,然后选择“差异”即可。来自TortoiseSVN子菜单。

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