我希望能帮助我将Winforms C Sharp项目移植到mono。当我运行迁移助手工具时,没有问题。但是当我在VS 2013中编译后尝试编程时,我得到:
未处理的异常:System.InvalidProgramException:System.Windows.Forms.Form中无效的IL代码:.ctor():方法体为空。
在TicketDL.Form2..ctor()[0x00000]中:0
at(wrapper remoting-invoke-with-check)TicketDL.Form2:.ctor()
在TicketDL.Program.Main()[0x00000]中:0 [ERROR]致命的未处理异常:System.InvalidProgramException: System.Windows.Forms.Form中的IL代码无效:.ctor():方法体是 空。
在TicketDL.Form2..ctor()[0x00000]中:0
at(wrapper remoting-invoke-with-check)TicketDL.Form2:.ctor()
在TicketDL.Program.Main()[0x00000]中:0
你们其中任何人都知道这意味着什么吗?我尝试删除任何我能找到的空方法!但是这个错误不断出现!
答案 0 :(得分:3)
System.Windows.Forms.Form.ctor特指在System.Windows.Forms.Form类中定义的构造函数,并不一定与从它继承的类(即代码)有任何关系。由于这是一个IL错误,所以每个都有这样的显式命名空间。此外,由于这是IL,这发生在后编译级别,不一定是你在更高级别(C#)代码中做错了。
但是,这个类只有一个重载,所以你可能想检查你正在构建的目标运行时 - Xamarin列出的Mono 3.2等同于.NET 4.5,但你可能正在构建4.5。 1。还可以考虑使用Xamarin进行下载和构建,因为它有时可能会略有不同的输出,并且可以帮助您排列程序所针对的Mono平台。
在很大程度上,MOMA似乎被描述为用于分析您正在调用的方法以及Mono尚未实现的方法。也永远不要忘记检查Compatibility Page以防万一MOMA错过了什么