.net - 编译 .net 应用程序时出现错误

标签 .net vb.net compilation compiler-errors decompiling

我使用 .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.

有没有办法:

  1. 反编译它,以免出现错误,或者
  2. 即使有错误也要编译。

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

最佳答案

反编译代码并不是一门精确的科学。反编译器使用一些算法对 MSIL 代码进行逆向工程,并将其转换为您可以理解的 .net 语言。
此外,您用 .net 语言编写的大量代码都经过预处理或编译成不同的代码片段。这些有时被称为“语法糖”(示例包括:“yield return”、“lock”、扩展方法、using 等)

市面上有很多反编译器,但它们并不完美!
您甚至可以尝试在两个不同的反编译器中打开相同的 dll/可执行文件,并且通常您会看到相同 MSIL 的不同解释。

如果您正在查看的代码是开源的,您应该尝试获取真实代码!
如果不是,那么您不应该破解它,而应该报告某种错误!
如果不是以上任何一种情况,那么...您只需自己进行一些必要的小修复,然后重新编译代码,但我向您保证,某些反编译器可能会导致代码中出现错误,并且不会由于他们的工作方式,他们的工作方式完全与以前一样。

关于.net - 编译 .net 应用程序时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110106/

相关文章:

vb.net - UltraGrid 获取所有单元格

c# - 在 Windows 资源管理器中打开 Windows 7 库

vb.net - 比较三个列表

C STRUCT strcopy EASY BEGINNER PROGRAM - 无法修复编译错误

c - 如何确定源文件的编译顺序?

c# - 如何清空 BlockingCollection

.net - 被 VS2012 吞咽异常的噩梦难倒

python - Django 应用程序的 Cython : would it work?

c# - 只读一次文件的下一行

c# - 更正数据库中的文本?