使用带有 FileDisassembler 的 .NET Reflector 反编译 .dll 时出错
Error decompiling .dll with .NET Reflector with FileDisassembler
我继承了管理使用编译代码工作的网站的责任。我需要对代码进行一些更改,但似乎所有 .cs 文件都已被删除,而且我不知道是否有备份,所以我求助于将 filedisassembler 插件与 .NET Reflector 一起使用。文件反汇编程序吐出所有名称正确的 cs 文件,但在检查它们时,所有文件都有相同的错误并被截断。
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at ...Resolve(IAssemblyReference assemblyReference, String localPath)
at Reflector.FileDisassembler.FileDisassemblerHelper.AssemblyResolver.Resolve(IAssemblyReference assemblyName, String localPath)
at ..Load(IAssemblyReference assemblyReference, String localPath)
at Reflector.CodeModel.Memory.AssemblyReference.Resolve()
at .....ctor(ICollection namespaces, INamespace namespaceDeclaration)
at ...WriteNamespace(INamespace value)
at Reflector.FileDisassembler.FileDisassemblerHelper.WriteTypeDeclaration(ITypeDeclaration typeDeclaration, ILanguageWriterConfiguration configuration)
此错误似乎会阻止 .NET 反射器反编译其余的 cs 文件。我该如何克服这个问题?
当我遇到同样的情况时,我使用了https://github.com/0xd4d/dnSpy。它允许即时修补 DLL。
我继承了管理使用编译代码工作的网站的责任。我需要对代码进行一些更改,但似乎所有 .cs 文件都已被删除,而且我不知道是否有备份,所以我求助于将 filedisassembler 插件与 .NET Reflector 一起使用。文件反汇编程序吐出所有名称正确的 cs 文件,但在检查它们时,所有文件都有相同的错误并被截断。
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at ...Resolve(IAssemblyReference assemblyReference, String localPath)
at Reflector.FileDisassembler.FileDisassemblerHelper.AssemblyResolver.Resolve(IAssemblyReference assemblyName, String localPath)
at ..Load(IAssemblyReference assemblyReference, String localPath)
at Reflector.CodeModel.Memory.AssemblyReference.Resolve()
at .....ctor(ICollection namespaces, INamespace namespaceDeclaration)
at ...WriteNamespace(INamespace value)
at Reflector.FileDisassembler.FileDisassemblerHelper.WriteTypeDeclaration(ITypeDeclaration typeDeclaration, ILanguageWriterConfiguration configuration)
此错误似乎会阻止 .NET 反射器反编译其余的 cs 文件。我该如何克服这个问题?
当我遇到同样的情况时,我使用了https://github.com/0xd4d/dnSpy。它允许即时修补 DLL。