我有一些生成程序集然后运行它的.net 代码。它已经在.net 下可靠地工作了一段时间。在 Mono 下,代码适用于一些非平凡的实例,但在其他实例上它会因非法 IL 异常而死亡。
在尝试隔离问题时,我将其减少到仅返回本机 int 的程度。该示例在 .net 下运行良好,但在 Mono 下失效。Reflector 说代码如下,和预期的一样:
.method public hidebysig static native int Main() cil managed
{
.maxstack 8
L_0000: ldc.i8 4
L_0009: ret
}
我得到的异常是: System.InvalidProgramException: Invalid IL code in HelloWorldType:Main (): IL_0009: ret
请问我做错了什么?