我使用 .NET Reflector 反编译了一个应用程序,并希望进行一些更改并再次编译它...但是,当我尝试编译它时,我收到了一堆错误,例如:
Error 14 'RaiseEvent' definition missing for event 'AsyncReturn'.
Error 55 End of statement expected.
Error 58 Type 'WksStatus' is not defined.
Error 88 Character is not valid.
Error 102 Maximum number of errors has been exceeded.
有没有办法:
- 反编译它,以免出现错误,或者
- 即使有错误也要编译。
非常感谢您的帮助!并随时提问。
最佳答案
反编译代码并不是一门精确的科学。反编译器使用一些算法对 MSIL 代码进行逆向工程,并将其转换为您可以理解的 .net 语言。
此外,您用 .net 语言编写的大量代码都经过预处理或编译成不同的代码片段。这些有时被称为“语法糖”(示例包括:“yield return”、“lock”、扩展方法、using 等)
市面上有很多反编译器,但它们并不完美!
您甚至可以尝试在两个不同的反编译器中打开相同的 dll/可执行文件,并且通常您会看到相同 MSIL 的不同解释。
如果您正在查看的代码是开源的,您应该尝试获取真实代码!
如果不是,那么您不应该破解它,而应该报告某种错误!
如果不是以上任何一种情况,那么...您只需自己进行一些必要的小修复,然后重新编译代码,但我向您保证,某些反编译器可能会导致代码中出现错误,并且不会由于他们的工作方式,他们的工作方式完全与以前一样。
关于.net - 编译 .net 应用程序时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110106/