2013-05-07 95 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); 
     } 
    } 
}