2013-03-15 217 views
-1

我有一个使用Monodevelop 3和MonoMac库创建的GUI的C#应用​​程序。生成后,我得到一个嵌入式单声道v3运行时的mac应用程序。如何将命令行参数传递给MonoMac应用程序?

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

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

在应用程序的MonoMac捆,实际的 '应用' 通常是一个shell通过他们脚本和AFAIK它不会将它的参数传递给可执行文件。

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

+0

我尝试了Alex所做的一切,它的工作很好。我猜如果它在我的项目中起作用,这个答案就不完全正确。我想在最新版本的MonoMac中有一个错误修复解决了之前观察到的问题。 – 2014-02-11 13:33:10

-1

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

(...)如果你有 “myprogram.exe” 你可以创建叫了内容为 “myprogram” shell脚本 :

#/ bin/sh的
在/ usr/bin中/单/usr/lib/APPLICATION/myprogram.exe “$ @”

当你运行 “myprogram” shell将取代$ @与 您提供的任何参数。

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

+0

这是一个有趣的想法,但是如何将单声道运行时嵌入到应用程序中并且不在计算机上单独存在时如何应用它? – alex 2013-04-18 20:01:01

0

我试过用最新版本的Xamarin Studio(4.2.2,build 2)和MonoMac,它工作得很好。看来,MonoMac曾经有一个现在已经修复的bug。