如何使用Mono运行.NET 4应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

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

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

mono application.exe

但是,我得到以下错误:

WARNING: The runtime version supported by this application is unavailable. Using default runtime: v1.1.4322

** (application.exe:5586): WARNING **: Missing method System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool) in assembly /usr/lib/mono/gac/System.Windows.Forms/1.0.5000.0__b77a5c561934e089/System.Windows.Forms.dll, referenced in assembly /media/disk/application.exe

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Windows.Forms.Application.SetCompatibleTextRenderingDefault'.

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

mono --runtime=4.0.30319.1 application.exe

但这也没用。

提问于
用户回答回答于

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

我的文档没有节点:.net 4 Mono 2.8上的客户端配置文件

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

另外要记住的是,Mono不支持WinForms的全部功能。除非您在考虑Mono的情况下开发应用程序,否则很有可能您会发现您使用的某些内容不受支持。

用户回答回答于

我怀疑这个异常是因为System.Windows.Forms.Application.SetCompatibleTextRenderingDefault方法没有被实现。是否通过Mono Migration Analyzer(MoMA)运行了该工具,以帮助您了解应用程序是否与mono兼容。从这一点,你可以解决这个问题,甚至可以将缺少的方法合并到你的代码中。

扫码关注云+社区