2014-06-23 60 views
7

在我们的C#MVC项目中,我们将可本地化的字符串存储在.resx文件中。每当我们添加一个新的字符串时,Visual Studio都会将它放在文件的底部,这意味着如果两个字符串被添加到不同的分支中,那么我们将会遇到合并冲突,因为两个不同的代码块被添加到相同的地点。避免resx文件中的合并冲突

我们该如何减少合并冲突?按字母顺序排序字符串可能会有所帮助,但我无法看到如何执行此操作。或者,也许我们可以告诉git将每个<data>...</data>标记作为独立块?

我们目前使用的是git,但是与TFS/TFVC有相同的问题。

+2

编写一个排序resx并在每次提交之前调用的脚本应该不会那么困难。 – Adrian

+1

这可能是帮助:http://stackoverflow.com/questions/22976757/tortoisegit-winforms-resolving-resource-resx-when-merging – ALOToverflow

回答

2

我们发现ResXManager Visual Studio扩展可以在保存时对ResX文件进行排序。

在Visual Studio中,选择工具>扩展和更新。点击左侧面板上的联机,然后在右上角的框中搜索“ResXManager”并安装。

ResXManager install dialog

安装完成后,选择Tools> ResXManager,转到配置标签底部,并启用“当保存文件RESX,通过该键的XML数据节点进行排序”。

还有一个按钮“现在排序所有文件”。对文件进行排序会产生很多冲突,因此请谨慎选择发布周期中的一段时间,以尽量减少这些冲突。所有开发人员都需要安装ResXManager,但该设置已应用于解决方案,因此他们不需要自行更改。

ResXManager configuration screen

我们刚开始使用这一点。当我们有一些经验时,我会更新这个答案。