关于DLL中Resources文件修改

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

时间: 2024-10-19 18:40:15

关于DLL中Resources文件修改的相关文章

项目中js文件修改后浏览器不能及时更新的解决办法

现在就分别把IE,firefox,chrome中解决办法贴出来供大家参考: 1.firefox(火狐浏览器)解决问题 第一步,在浏览器中敲入:about:config ,然后回车 第二步,在显示出的内容中找到下面的列表内容,双击下面图中圈出的内容 在出现的对话框中将3改为1 然后关闭这个页面,你就可以让你的项目在更新时浏览器及时地更新你项目中的js文件. 2.IE 打开IE浏览器,同时按住ALT+X,在出现的页面上点击Internet选项,进入Internet选项配置界面中,点击在下面的图中圈出

hadoop conf中xml文件修改

core-site.xml <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property>-------指定NameN

.Net中把图片等文件放入DLL中,并在程序中引用

[摘要] 有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵. 本文就讲述了如何把文件(比如图片,WORD文档等等) 隐藏到DLL中,然后在程序中可以自己根据需要导出图片进行处理. 注:本站原创,转载请注明本站网址:http://www.beinet.cn/blog/ [全文] 第1步:我们要生成一个资源文件,先把要隐藏的文件放入到这个资源文件中 (资源文件大致可以存放三种数据资源:字节数组.各种对象和字符串) 首

Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

原来使用Win7的32位系统,进行C#工程的开发,后来重装系统,换成了win7的64位系统 调试原来的工程,由于在其中引用了"SQLite"的32位的dll,导致在64为位下程序无法运行(但是编译可以通过) 后来通过修改工程文件(.csproj),在其中设置引用的条件,解决了问题 打开引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到对SQLite引用的语句,类似如下的代码 代码如下: <Reference Include="Syst

C# 动态修改dll的签名 以及修改引用该dll文件的签名

原文:C# 动态修改dll的签名 以及修改引用该dll文件的签名 在读取RedisSessionStateProvider配置 提到用mono ceil 来修改程序集以及它的签名,里面GetPublicKey 和GetPubliKeyToken 方法里面那个字符串的获取 以及后来的签名 我们都应该 用code来实现,还有应用该dll文件的签名也一同需要修改. 所以我这里实现了一个简单的helper方法 如下: namespace ConsoleSession { using Mono.Cecil

DSP中cmd文件(修改1)

DSP中cmd文件(修改1) 看TMS320C6000 Optimizing Compiler v7.6 User's Guide和TMS320C6000 Assembly Language Tools User's Guide ? CMD 的专业名称叫链接器配置文件,是存放链接器的配置信息的,其中比较关键的就是MEMORY和SECTIONS两个伪指令的使用. ? DSP工程文件夹中有两个cmd文件,其中一个为linker.cmd;另一个为c6455.cmd.c6455.cmd文件在工程中.工程

(文档)Shader.Find (在编译时,只包含那些使用中的shader或位置在&quot;Resources&quot;文件夹中shader)

Shader.Find 查找 static function Find (name : string) : Shader Description描述 Finds a shader with the given name. 查找名为name的着色器. Shader.Find can be used to switch to another shader without having to keep a reference to the shader. name is the name you ca

DLL中__declspec(dllexport)和.def(模块定义文件)定义导出函数的一点区别

原想是不在DLL中使用.def文件的,直接在需要导出的函数前加__declspec(dllexport)修饰.但在是要导出STDAPI __declspec(dllexport) DllGetClassObject的时候,就提示"warning C4518: “__declspec(dllexport ) ” : 此处遇到意外的存储类或类型说明符:被忽略"(我用的是vc.net 2003). STDAPI这个宏扩展出来是extern "C" HRESULT __st

DSP中cmd文件(待修改)

DSP中cmd文件(待修改) CMD 的专业名称叫链接器配置文件,是存放链接器的配置信息的,其中比较关键的就是MEMORY和SECTIONS两个伪指令的使用. DSP工程文件夹中有两个cmd文件,其中一个为linker.cmd;另一个为c6455.cmd.c6455.cmd文件在工程中.工程目录下的文件夹中.map文件里有section allocation map可以查看产生的"段".查看 .map 文件中"output section"那一列,那些长度(leng