使用带有 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。