我丢失了一个dotnet 3.5 dll的源代码,它包含了我的所有字符串(html文档)和图像。我现在需要更新其中一个文档和一些图像。我更新文件中的字符串的最佳方式是什么(它们的长度不同,这有关系吗?)
答案 0 :(得分:1)
直接编辑已编译的程序集是粗略的。我会用decompiler将其反编译回源代码并正确修复它。把它放回源代码控制中。
答案 1 :(得分:1)
使用以下命令反汇编您的.net exe或dll:
ildasm /out=assembly_name.il assembly_name.dll
(将assembly_name.dll替换为您的dll或exe名称。)
这将输出大量数据文件。我们对这些感兴趣:
准备修改后的/新资源,它的名称无关紧要,但格式应与程序集中最初包含的格式相同(例如,替换位图的位图,图标的图标)。
使用资源编辑器编辑资源文件。我使用Resourcer for DotNet(http://www.aisto.com/roeder/dotnet/)来自Lutz Roeder,它是免费软件。顺便说一下,同一作者还编写了Reflector.NET,这是.NET开发人员的一个很棒的工具。
如果您正在使用资源器,则需要执行以下步骤:
使用以下命令反汇编您的.net exe或dll:
重要提示:这将覆盖原始的dll / exe!
ilasm /resource=assembly_name.res /dll /output=assembly_name.dll /key=signing_key.snk assembly_name.il
(用您的dll或exe名称替换assembly_name.dll,当然如果需要,将/ dll更改为/ exe)。
签名密钥参数是可选的,仅在原始程序集已签名时才需要。
当然,如果它是由其他人签名以防止回火,除非您提供原始签名密钥,否则您将无法使用修改后的程序集,我认为您不会这样做。但这就是.NET的工作原理。
答案 2 :(得分:0)
事实证明,它更容易
使用HEX EDITOR编辑DLL
比起START OVER这是通常的建议。