2013-03-15 1 views
-1

У меня есть приложение C# с графическим интерфейсом, созданным с использованием библиотек Monodevelop 3 и MonoMac. После сборки я получаю приложение mac со встроенной версией mono v3.Как передать аргументы командной строки в приложение 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, фактическое «приложение», как правило, оболочка скрипт и AFAIK, он не передает аргументы исполняемому файлу.

Я не думаю, что это возможно в настоящее время; Я слышал о людях, работающих вокруг этого, используя вместо этого переменные окружения.

+0

Я пробовал точно, что сделал Алекс, и все работает отлично. Я думаю, если он работает в моем проекте, этот ответ не совсем прав. Я полагаю, что исправлена ​​ошибка в последней версии MonoMac, которая устраняет проблему, обнаруженную ранее. –

-1

Вы можете передать аргументы командной строки в ваше приложение MonoMac, если вы вызываете его через скрипт оболочки. От Running Mono Applications:

(...), если у вас "myprogram.exe" вы можете создать скрипт под названием "MyProgram", который имел содержание:

#/бен/ш!
/USR/бен/моно /usr/lib/APPLICATION/myprogram.exe "$ @"

при запуске "MyProgram," оболочка заменит $ @ с любыми аргументами вы обеспечили.

Это работает для моего приложения MonoMac, встроенного в Xamarin Studio.

+0

Это интересная идея, но как ее можно применять, когда моно исполняемая среда встроена в приложение и отсутствует отдельно на компьютере? – alex

0

Я пробовал это с последней версией Xamarin Studio (4.2.2, build 2) и MonoMac, и все работает отлично. Кажется, что у MonoMac была ошибка, которая исправлена ​​сейчас.