Мне нужно получить полный путь (вплоть до каталога) исполняемого файла приложения, сделанного с помощью mkbundle --static
. Это приложение CLI, которое я тестирую на OSX, предположим, что исполняемый файл находится в /usr/local/bin/
.Получить путь к пакету в приложении Mono C# CLI
Вопросы, может быть дополнительно сложным (но я не знаю), так как я хочу, чтобы запустить утилиту из любой директории, поэтому я добавляю выше путь к $PATH
переменной среды (в данном случае, это уже там).
Теперь предположим, что приложение запускается при ~/dir1/dir2/
, и предположим, что оно печатает Application.StartupPath
. Это дает путь ~/dir1/dir2/
. Напротив, я хочу всегда получить каталог реального, из которого запускается приложение, то есть /usr/local/bin/
.
Есть ли способ достичь этого (предпочтительно, независимо от платформы)?
Я использую Xamarin Studio с Mono/.NET 4.5 и C# 6.0.
ОБНОВЛЕНИЕ: Получение typeof(Program).Assembly.Location
также не очень помогает.
Я имею в виду, что он работает хорошо, когда я запускаю обычный исполняемый файл приложения (созданный во время процесса сборки).
Однако, если я запустил комплект, составленный с помощью mkbundle --static
, Location
просто дает исполняемое имя App.exe
без какого-либо предшествующего пути.
Возможно, он отображает только относительный путь внутри комплекта. Есть ли способ я могу получить путь к самой пачке ..
Благодаря Matt. Он работает, если я запускаю 'mono app.exe', но не тогда, когда я запускаю пакет, созданный с помощью' mkbundle -static'. В этом случае он просто отображает 'app.exe', возможно, это путь относительно пакета? .. Все еще не могу понять, как получить путь к набору, или если это вообще возможно. – wh1t3cat1k
Я изменил вопрос, чтобы отразить новое понимание проблемы. Знаете ли вы что-нибудь, что может быть полезно в моей ситуации? – wh1t3cat1k
Извините, не знаю. Я подозреваю, что вам придется использовать [native api] (http://stackoverflow.com/questions/1023306/finding-current-executables-path-without-proc-self-exe), чтобы найти путь к текущему исполняемому файлу. –