在Mac OS X中运行Mono应用程序

时间:2014-08-22 06:17:45

标签: c# macos mono

我在Mac OS X中开发了Mono(.NET)应用程序,它从MonoDevelop运行就好了。虽然,当我从命令行运行时,它失败并出现错误:

mono SqlDynamiteX.exe

相反,我必须像这样运行应用程序:

export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib:$DYLD_FALLBACK_LIBRARY_PATH:/usr/lib"

exec /Library/Frameworks/Mono.framework/Versions/Current/bin/mono ./SqlDynamiteX.exe

然后,我以这种方式制作了Mac OS X应用程序:

macpack -n:SqlDynamiteX -o:. -a:SqlDynamiteX.exe -i:WindowIcon.icns -m:winforms -r:SqlDynamite.Common.dll,SqlDynamite.Util.dll,Npgsql.dll,MySql.Data.dll

我根据这篇文章编辑了包内的Info.plist文件:

Setting environment variables in OS X?

<key>LSEnvironment</key>
<dict>
    <key>DYLD_FALLBACK_LIBRARY_PATH</key>
    <string>/Library/Frameworks/Mono.framework/Versions/Current/lib:$DYLD_FALLBACK_LIBRARY_PATH:/usr/lib</string>
</dict>

但是当我在Finder中双击它时,应用程序仍会失败并显示错误。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

Mac OS X的Platypus应用程序可以包装脚本,因此您无需修改​​Info.plist文件。

答案 1 :(得分:1)

你检查过Xamarin吗?它是由MonoDevelop的制造商制作的,我相信它的设置(如Platypus)更好地处理info.plist文件。我不相信你会经历你目前要编译的应用程序的麻烦。

[披露:我不为Xamarin工作,也不与他们的利益有利害关系,我只是觉得它会帮助你。]