我有一个正在生成程序集的编译器。当我加载程序集并尝试在其类在该程序集中的对象上运行方法时,它会引发异常:
System.InvalidProgramException:公共语言运行时检测到无效程序。
随着错误消息的出现,这与UR COMPILER SUXX0RZ LOLOLOL!!!
在 MSDN 上查找它所提供的信息完全相同:编译器有问题。
所以我尝试在生成的程序集上运行PEVerify并得到一个更有用的消息:
[MD]:错误:在签名中非法使用类型“void”。[令牌:0x11000002]
不幸的是,它没有说除此之外的任何内容,例如什么签名具有非法 void。你知道,那种对追踪报告的错误很有用的东西......
在 ILDASM 中打开它,我没有看到任何明显错误的空虚,那么下一步是什么?我从哪里去找出我的编译器做错了什么?