2012-10-28 130 views
2

我使用.NET Reflector对应用程序进行了反编译,并且想要进行一些更改并重新编译它......但是,当我尝试编译它时,出现一堆错误:编译.net应用程序时出错

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. 

有什么办法要么:

  1. 反编译它,没有任何错误,或
  2. 编译它,即使有错误。

非常感谢您的帮助!并随时提问。

+0

3.手动修复反编译后的错误。 –

+0

看到的错误之一是:超过错误的最大数量......我真的觉得这太难了。 –

回答

4

反编译代码并不是一门精确的科学。反编译器使用一些算法对MSIL代码进行反向工程,并将其转换为可以理解的.net语言。
此外,还有很多用.net语言编写的代码,它们被预处理或编译成不同的代码段。这些有时被称为'语法糖'(例子包括:'收益率','锁',扩展方法,使用等)。不完美!
你甚至可以尝试在两个不同的反编译器中打开相同的DLL /可执行文件,并且经常会看到对同一MSIL的不同解释。

如果您正在查看的代码是开源的,您应该尝试获得真实代码!
如果不是,那么你不应该黑客它,但报告某种错误!
如果没有上述内容,那么......你只需要自己完成所需的小修复,然后重新编译代码,但我向你保证,一些反编译器可能会导致代码中的错误,并赢得因为他们工作的方式,他们像以前一样工作