如何将命令行参数传递给MonoMac应用程序?

时间:2013-03-15 08:33:44

标签: c# macos mono monodevelop monomac

我有一个使用Monodevelop 3和MonoMac库创建GUI的C#应用​​程序。构建之后,我得到一个带有嵌入式mono v3运行时的mac应用程序。

应用程序运行正常,但它没有收到我传递给它的任何命令行参数。

static void Main (string[] args)
{
 // args are always empty
}

我尝试使用

传递它们
open -a /Applicaitons/MyApp.app --args my_command_line_arg

甚至直接运行生成的可执行文件

/Applicaitons/My.app/Contents/MacOS/MyApp my_command_line_arg

3 个答案:

答案 0 :(得分:0)

在MonoMac应用程序包中,实际的“应用程序”通常是一个shell脚本,而AFAIK它不会将它的参数传递给可执行文件。

我认为目前不可能;我听说有人通过使用环境变量来解决这个问题。

答案 1 :(得分:0)

我尝试使用最新版本的Xamarin Studio(4.2.2,build 2)和MonoMac,它运行得很好。似乎MonoMac曾经有一个现在修复的错误。

答案 2 :(得分:-1)

如果通过shell脚本调用命令行参数,则可以将命令行参数传递给MonoMac应用程序。来自Running Mono Applications

  

(...)如果你有“myprogram.exe”,你可以创建一个shell脚本   称为“myprogram”,内容为:

     

<强>#!/ bin / sh的
      / usr / bin / mono /usr/lib/APPLICATION/myprogram.exe“$ @”

     

当你运行“myprogram”时,shell将用任何参数替换$ @   你提供了。

这适用于我在Xamarin Studio中构建的MonoMac应用程序。