我已安装了mono 3.2.3。当我尝试运行Winforms应用程序时 - 即使是在创建新项目时就像默认模板一样简单 - 单声道立即退出并退出代码1而不执行任何操作,并且没有输出。控制台应用程序运行良好。
这是试图在Cygwin中运行它:
答案 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" />
这解决了这个问题。