我有一个使用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
答案 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应用程序。