我试图在一台Ubuntu机器上运行一个.NET exe (我安装了mono-complete
包),到目前为止还没有成功。该应用程序是在.NET 4(客户端配置文件)下使用Visual C# Express2010编译的。
我尝试使用以下命令执行该程序:
mono application.exe
但是,我得到以下错误:
警告:此应用程序支持的运行时版本不可用。使用默认运行时: v1.1.4322
** (application.exe:5586):警告**:在assembly /media/disk/application.exe引用的程序集中缺少方法System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool)
未处理的异常:'System.Windows.Forms.Application.SetCompatibleTextRenderingDefault'.:未找到方法:System.MissingMethodException
它应该使用.NET 4,而不是1,但我不知道如何设置它。我试过了
mono --runtime=4.0.30319.1 application.exe
但这也不管用。
任何帮助都将不胜感激。
发布于 2011-03-16 23:39:19
听起来你遇到了这个bug:
My Doc's Got No Nodes: .net 4 Client Profile on Mono 2.8
这是假设你安装了>Mono2.8(它是第一个支持.NET 4.0的版本)。如果没有,你应该安装一个更新的Mono包。
另一件要记住的事情是,Mono并不支持整个WinForms。除非您在开发应用程序时考虑到了Mono,否则您很可能会发现您使用的某些应用程序不受支持。
发布于 2011-03-16 23:43:47
我怀疑异常是因为System.Windows.Forms.Application.SetCompatibleTextRenderingDefault方法还没有实现。您已经通过Mono Migration Analyzer (MoMA)运行过该工具,应该有助于了解您的应用程序是否与mono兼容。从这一点上说,你可以解决这个问题,甚至可以在你的代码中加入缺失的方法。
发布于 2011-03-16 23:51:56
当前的mono-complete包(甚至在Ubuntu Natty上)使用mono 2.6.7,它不支持.NET 4.0API。您必须构建最新版本的mono,这是获得使用4.0API的机会的最佳方式。然而,.NET 4.0的"Complete“支持计划在mono 3.0中提供。
https://stackoverflow.com/questions/5327672
复制相似问题