Mono С# получить путь приложения

Я ищу, чтобы получить каталог моего приложения, похоже, отличается от обычного С#?

Как и в Path.GetDirectoryName(Application.ExecutablePath) не работает.

Ответ 1

Одно правильное и кросс-платформенное решение будет

Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)

Обратите внимание, что как Environment.CurrentDirectory, так и Assembly.GetExecutingAssembly().Location (точнее, их каталог) семантически неправильны, хотя они часто - но не всегда - тот же каталог:

  • Текущий каталог является "рабочим каталогом" и может быть изменен в любой момент времени, например команда "cd" в оболочке.
  • Выполняющая сборка - это сборка, которая содержит код, который в настоящее время работает, и может быть или не быть в том же каталоге, что и фактическое приложение. Например, если ваше приложение "A.exe", которое имеет зависимость "B.dll", а некоторый код в B.dll вызывает Assembly.GetExecutingAssembly(), это приведет к "/path/to/B.dll".

Ответ 2

Попробуйте Assembly.GetExecutingAssembly().Location