使用Mono运行.NET 4应用程序

时间:2011-03-16 15:34:14

标签: c# .net .net-4.0 mono

我正在尝试在Ubuntu机器上运行.NET exe(我安装了包mono-complete),到目前为止没有运气。该应用程序使用Visual C#Express 2010在.NET 4(客户端配置文件)下编译。

我尝试使用以下命令执行程序:

mono application.exe

但是,我收到以下错误:

  

警告:支持运行时版本   由此应用程序不可用。   使用默认运行时:v1.1.4322

     

**(application.exe:5586):警告**:缺少方法   System.Windows.Forms.Application :: SetCompatibleTextRenderingDefault(布尔)   在集会中   /usr/lib/mono/gac/System.Windows.Forms/1.0.5000.0__b77a5c561934e089/System.Windows.Forms.dll,   在程序集中引用   /media/disk/application.exe

     

未处理的例外情况:   System.MissingMethodException:方法   未找到:   'System.Windows.Forms.Application.SetCompatibleTextRenderingDefault'。

假设使用的是.NET 4,而不是1,但我不知道如何设置它。我试过了

mono --runtime=4.0.30319.1 application.exe

但这也不起作用。

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:17)

听起来你遇到了这个错误:

My Doc's Got No Nodes: .net 4 Client Profile on Mono 2.8

假设您安装了> Mono 2.8(这是第一个支持.NET 4.0的版本)。如果没有,你应该安装一个更新的Mono包。

要记住的另一件事是Mono不支持整个WinForms。除非您考虑使用Mono开发应用程序,否则您很可能会发现您使用的内容不受支持。

答案 1 :(得分:3)

我怀疑异常是因为尚未实现System.Windows.Forms.Application.SetCompatibleTextRenderingDefault方法。您是否通过Mono Migration Analyzer (MoMA)运行该工具,应该有助于了解您的应用程序是否与mono兼容。从那时起,您可以解决问题,甚至可能在代码中包含缺少的方法。

答案 2 :(得分:1)

当前单声道完整包(甚至在Ubuntu Natty上)使用单声道2.6.7,它不支持.NET 4.0 API。您必须构建最新版本的mono,这是获得使用4.0 API的最佳方式。然而,“Complete”计划在单声道3.0中支持.NET 4.0。

答案 3 :(得分:0)

安装Monodevelop,然后右键单击linux中的C#.NET项目example.csprj,然后单击Monodevelop。