使用Winforms应用程序在Windows上运行mono会立即退出

时间:2014-08-05 16:24:34

标签: c# winforms mono

我已安装了mono 3.2.3。当我尝试运行Winforms应用程序时 - 即使是在创建新项目时就像默认模板一样简单 - 单声道立即退出并退出代码1而不执行任何操作,并且没有输出。控制台应用程序运行良好。

这是试图在Cygwin中运行它:

Screenshot of the issue

1 个答案:

答案 0 :(得分:1)

通过将项目的输出类型更改为控制台应用程序,我在控制台中收到了错误消息。

  

未处理的例外情况:   System.TypeInitializationException:System.Windows.Forms.WindowsFormsSynchronizationContext --->的类型初始值设定项引发了异常。 System.TypeInitializationException:System.Windows.Forms.ThemeEngine --->的类型初始值设定项引发了异常。 System.TypeInitializationException:System.Windows.Forms的类型初始值设定项引发了异常.TheWin32Classic ---> System.TypeInitializationException:System.Drawing.KnownColors的类型初始化程序抛出异常---> System.TypeInitializationException:System.Drawing.GDIPlus的类型初始化程序抛出异常---> System.DllNotFoundException:/tmp/install/lib/libgdiplus.so

谷歌搜索引导我进入单声道错误跟踪器中的页面:https://bugzilla.xamarin.com/show_bug.cgi?id=8309

显然,这个错误已在一年前修复,但只合并为单声道3.4.0。解决方法是编辑文件

$MONO/etc/mono/config

并删除两个违规行:

<dllmap dll="gdiplus" target="/tmp/install/lib/libgdiplus.so" />
<dllmap dll="gdiplus.dll" target="/tmp/install/lib/libgdiplus.so" />

这解决了这个问题。