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:windowsmicrosoft.netframeworkv4.0.30319ilasm.exe /dll/resource=CCFlowDesigner.res CCFlowDesigner.il