2013-05-07 63 views
1

我有两个大型资源文件,我必须合并它们。这两个文件中可能有一些名称属性相同合并两个visual studio .resx文件

<data name="SomeResource" xml:space="preserve"> 
    <value> The resource value </value> 
</data> 

如何获取所有资源名称相同?如果有一些条目具有相同的值,这不是问题,但名称相同是一个问题。

+0

你有一些文件比较软件尝试。他们会告诉你确切的线配套.. – 2013-05-07 09:20:22

+0

看看在这[文章](http://www.codeproject.com/Articles/37022/Solving-the-resx-Merge-Problem)。它可能会帮助你。 – HuorSwords 2013-05-07 09:23:18

回答

3

你可以使用一个小型控制台应用程序来获取所有重复的资源名称:

using System; 
using System.Collections; 
using System.Globalization; 
using System.Linq; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     //replace with your strongly typed resource classes 
     var rm1 = MyApplication.Properties.Resources.ResourceManager; 
     var rm2 = MyApplication.Properties.Resources1.ResourceManager; 

     var rs1 = rm1.GetResourceSet(CultureInfo.CurrentUICulture, true, true); 
     var rs2 = rm2.GetResourceSet(CultureInfo.CurrentUICulture, true, true); 

     var result = from re1 in rs1.Cast<DictionaryEntry>() 
        join re2 in rs2.Cast<DictionaryEntry>() 
         on re1.Key equals re2.Key 
        select new { re1, re2 }; 

     foreach (var item in result) 
     { 
      Console.Write("Key with name \"{0}\" is present in ", 
       item.re1.Key); 
      Console.WriteLine("both files (\"{0}\" and \"{1}\")", 
       item.re1.Value, item.re2.Value); 
     } 
    } 
}