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

前端之家收集整理的这篇文章主要介绍了是否可以在.NET DLL中添加/删除/更改嵌入式资源?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在编译之后,可以在.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

猜你在找的Windows相关文章