加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

是否可以在.NET DLL中添加/删除/更改嵌入式资源?

发布时间:2020-12-13 20:50:16 所属栏目:Windows 来源:网络整理
导读:在编译之后,可以在.NET DLL中添加/删除/更改嵌入式资源吗?如果是这样,这是怎么做的,有什么问题吗? 编辑: 我想手动执行此操作,但最终会自动通过后构建事件中的脚本。 在托管代码中无法做到这一点。一旦资源被嵌入,它就像编译的MSIL代码一样成为程序集
在编译之后,可以在.NET DLL中添加/删除/更改嵌入式资源吗?如果是这样,这是怎么做的,有什么问题吗?

编辑:

我想手动执行此操作,但最终会自动通过后构建事件中的脚本。

在托管代码中无法做到这一点。一旦资源被嵌入,它就像编译的MSIL代码一样成为程序集的一部分。

但是,您可以手动执行此操作,例如suggested by Lucero,通过使用ildasm将DLL反汇编成文本文件,使用文本编辑器删除资源,最后使用ilasm重新组合DLL。

以下是一个使用单一嵌入文本文件的DLL的示例:

1)将DLL解压缩为MSIL:

ildasm MyLibrary.dll /out=MyLibrary.il

2)打开生成的MyLibrary.il文件并删除.mresource部分:

.mresource public MyLibrary.MyResource.txt
{
  // Offset: 0x00000000 Length: 0x0000000F
  // WARNING: managed resource file MyLibrary.MyResource.txt created
}

3)从修改的MyLibrary.il文件重新组合DLL:

ilasm MyLibrary.il /dll

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读