c# – 在CentOS或Linux上使用Mono执行.Net应用程序

c# – 在CentOS或Linux上使用Mono执行.Net应用程序,第1张

概述我在Visual Studio 2010上使用C#.Net中的WinForm开发了一个测试应用程序.现在,我想在Linux下使用Mono在CentOS上运行它.所以我尝试了下面的命令序列 - [root@localhost TestLinux]# /usr/bin/mono ./Test.exe 我遇到了一个例外Unhandled Exception: Sy

我在Visual Studio 2010上使用C#.Net中的WinForm开发了一个测试应用程序.现在,我想在Linux下使用Mono在CentOS上运行它.所以我尝试了下面的命令序列 –

[root@localhost Testlinux]# /usr/bin/mono ./Test.exe

我遇到了一个例外

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for System.windows.Forms.XplatUI ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus ---> System.DllNotFoundException: gdiplus.dll  at (wrapper managed-to-native) System.Drawing.GDIPlus:Gdiplusstartup (ulong&,System.Drawing.Gdiplusstartupinput&,System.Drawing.GdiplusstartupOutput&)  at System.Drawing.GDIPlus..cctor () [0x00000] --- End of inner exception stack trace ---  at <0x00000> 

在做一些研究的时候,我发现这是由于gdiplus.dll与其对应部分libgdiplus.so.0在linux上的链接,需要将其条目放在ldconfig缓存中.

[root@localhost Testlinux]# ldconfig -p | grep libgdiplus    libgdiplus.so.0 (libc6) => /usr/lib/libgdiplus.so.0

输出清楚地显示libgdiplus.so.0在ldconfig缓存中,但程序仍然无法正常工作.我还尝试在应用程序配置中添加DllMap条目,如下所示

如果有人在过去偶然发现这件事,请告诉我.最佳答案您已错误地追踪错误.
您的单声道版本不支持EnableVisualStyles.
升级到支持它的版本(据我记得它是> = 2.9)或尝试在.net应用程序中禁用此功能,这将导致“不太好的ui元素”.
对我来说,它工作,因为我正在研究gentoo.
突然,在出现之后,我的单声道应用程序不再崩溃了. 总结

以上是内存溢出为你收集整理的c# – 在CentOS或Linux上使用Mono执行.Net应用程序全部内容,希望文章能够帮你解决c# – 在CentOS或Linux上使用Mono执行.Net应用程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1046550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)