我在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中双击它时,应用程序仍会失败并显示错误。
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
Mac OS X的Platypus应用程序可以包装脚本,因此您无需修改Info.plist文件。
答案 1 :(得分:1)
你检查过Xamarin吗?它是由MonoDevelop的制造商制作的,我相信它的设置(如Platypus)更好地处理info.plist文件。我不相信你会经历你目前要编译的应用程序的麻烦。
[披露:我不为Xamarin工作,也不与他们的利益有利害关系,我只是觉得它会帮助你。]