C# 使用Winforms应用程序在Windows上运行mono会立即退出
我已经安装了mono 3.2.3。当我尝试运行Winforms应用程序时(即使是创建新项目时与默认模板一样简单的应用程序),mono会立即退出,退出代码为1,不做任何操作,也没有输出。控制台应用程序工作正常 这是因为尝试在Cygwin中运行它:C# 使用Winforms应用程序在Windows上运行mono会立即退出,c#,winforms,mono,C#,Winforms,Mono,我已经安装了mono 3.2.3。当我尝试运行Winforms应用程序时(即使是创建新项目时与默认模板一样简单的应用程序),mono会立即退出,退出代码为1,不做任何操作,也没有输出。控制台应用程序工作正常 这是因为尝试在Cygwin中运行它: 通过将项目的输出类型更改为Console应用程序,我在控制台中收到了错误消息 未处理的异常: System.TypeInitializationException:System.Windows.Forms.WindowsFormsSynchronizat
通过将项目的输出类型更改为Console应用程序,我在控制台中收到了错误消息 未处理的异常: System.TypeInitializationException:System.Windows.Forms.WindowsFormsSynchronizationContext的类型初始值设定项引发异常-->System.TypeInitializationException:System.Windows.Forms.ThemeEngine的类型初始值设定项引发异常-->System.TypeInitializationException:该类型引发异常System.Windows.Forms.ThemeWin32Classic的初始值设定项-->System.TypeInitializationException:System.Drawing.Known颜色的类型初始值设定项-->System.TypeInitializationException:System.Drawing.GDIPlus的类型初始值设定项-->System.DllNotFoundException:引发异常:/tmp/install/lib/libgdiplus.so 通过谷歌搜索,我找到了mono的bug追踪器中的一个页面: 很明显,这个bug在一年前就已经修复了,但只是合并到mono 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" />
这解决了问题