使用带有文件反汇编器的 .NET 反射器反编译.dll时出错

本文关键字:反射器 编译 dll 出错 NET 文件 汇编器 反汇编 | 更新日期: 2023-09-27 18:32:25

我继承了管理使用编译代码工作的网站的责任。我需要对代码进行一些更改,但似乎所有.cs文件都已删除,我不知道是否有备份,所以我求助于使用带有 .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 文件。我怎样才能克服这个问题?

使用带有文件反汇编器的 .NET 反射器反编译.dll时出错

当我

处于同样的情况下,我使用了 https://github.com/0xd4d/dnSpy。它允许动态修补DLL。