更改已有程序集中的资源
如果有源代码的话,更改程序集中的资源文件就特别简单了。
但如果没有源代码呢?重新做一个?可能已经编译过的dll里面还有些什么不知道的东东呢,那要经过编译测试,再编译再测试了。
其实更改已编译的dll里面的资源只需以下三步:
#1:反编译
用以下的命令来搞一下反编译:
ildasm /out=assembly_name.il assembly_name.dll
把assembly_name更改为你需要的文件名。
如果你反编译的dll只是一个resource集的话,那就会得到三个文件:
- *.resources - 二进制资源文件。
- assembly_name.res - 资源表。
- assembly_name.il - MSIL代码。
#2:更改资源文件(*.resources)
因为这个*.resources文件是二进制的,所以需要用到工具才能编辑。我用的是Resource .NET。
编辑保存好之后,就可以进行第三步了。
#3: 编译
可以用以下的命令来把刚才反编译的编译成dll:
ilasm /RESOURCE=assembly_name.res /DLL assembly_name.il /OUTPUT=assembly_name.dll
把assembly_name更改为你需要的文件名。
另外,如果该DLL是有签名的话,那么就可能不行的哦。