[英]Running .NET 4 application with Mono
我试图在Ubuntu机器上运行.NET exe(我安装了mono-complete
软件包),到目前为止没有任何运气。 该应用程序使用.NET 4(客户端配置文件)下的Visual C#Express 2010进行编译。
我尝试使用以下命令执行程序:
mono application.exe
但是,出现以下错误:
警告:此应用程序支持的运行时版本不可用。 使用默认运行时:v1.1.4322
**(application.exe:5586):警告**:程序集/usr/lib/mono/gac/System.Windows.Forms/1.0.5000.0__b77a5c561934e089中缺少System.Windows.Forms.Application :: SetCompatibleTextRenderingDefault(bool)方法/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
但这也不起作用。
任何帮助,将不胜感激。
听起来您遇到了此错误:
我的文档没有节点:Mono 2.8上的.net 4客户端配置文件
假设您已安装> Mono 2.8(这是第一个支持.NET 4.0的版本)。 如果没有,则应安装更新的Mono软件包。
要记住的另一件事是,Mono不支持整个WinForms。 除非您在开发应用程序时就牢记Mono,否则很有可能会发现您所使用的内容不受支持。
我怀疑异常是因为尚未实现System.Windows.Forms.Application.SetCompatibleTextRenderingDefault方法。 您是否已通过Mono迁移分析器(MoMA)运行了该工具,应该有助于了解您的应用程序是否与Mono兼容。 从那时起,您可以解决该问题,甚至可以在代码中合并缺少的方法。
当前的单声道完整软件包(甚至在Ubuntu Natty上)使用的单声道2.6.7不支持.NET 4.0 API。 您将必须构建最新版本的mono,这是获得使用4.0 API的最佳途径。 但是,在mono 3.0中计划了对.NET 4.0的“ 完全 ”支持。
安装Monodevelop,然后右键单击example.csprj(这是Linux中的C#.NET项目),然后单击Monodevelop。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.