1、先用IL DASM工具將所需要修改的DLL進行文件轉換成IL文件,其中*.il文件就是代碼,*.resources,這個文件就是資源。
2、找到需要修改的resources文件
//新文件 IResourceWriter writer = new ResourceWriter("test.resources"); //源文件 IResourceReader reader = new ResourceReader("CCFlowDesigner.g.resources"); IDictionaryEnumerator en = reader.GetEnumerator(); var icon = File.OpenRead(@"d:\Icon.png"); var welcome = File.OpenRead(@"d:\welcome.png"); var mainpage = File.OpenRead(@"d:\mainpage.xaml"); while (en.MoveNext()) { if (en.Key.ToString().Contains("/icon.png")) { writer.AddResource(en.Key.ToString(), icon); //替換掉 } else if (en.Key.ToString().Contains("/welcome.png")) { writer.AddResource(en.Key.ToString(), welcome); //替換掉 } else if (en.Key.ToString().Contains("mainpage.xaml")) { writer.AddResource(en.Key.ToString(), mainpage); //替換掉 } else { writer.AddResource(en.Key.ToString(), en.Value); } }
writer.Close();
3、將新生成的文件替換掉原來的文件
4、在CMD中,重新編譯DLL,語法如下:
c:\windows\microsoft.net\framework\v4.0.30319\ilasm.exe /dll/resource=CCFlowDesigner.res CCFlowDesigner.il