【问题标题】:Running Mono Application in Mac OS X在 Mac OS X 中运行 Mono 应用程序
【发布时间】:2014-08-22 06:17:45
【问题描述】:

我在 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 中双击应用程序时,应用程序仍然失败并出现错误。

谁能帮我解决这个问题?

【问题讨论】:

    标签: c# macos mono


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      [披露:我不为 Xamarin 工作,并且与他们的利益无关,我只是认为这会对您有所帮助。]

      【讨论】:

      • 似乎 Xamarin Studio 使用常规的xbuild 进行构建,它没有特定的魔力。我尝试使用 xbuild 构建使用 Xamarin Studio 创建的项目模板,它可以工作。这里是.fsproj和项目模板中的一些其他文件(但它是用于F#的,我不知道它是否不同):gist.github.com/kolen/e2162f5c9122078c06ab70edc1abf139
      猜你喜欢
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多