Какой самый простой способ отследить, где установлена ​​моя программа? - PullRequest
0 голосов
/ 15 ноября 2009

Пока я работаю над этим, у меня жестко закодировано местоположение моего приложения:

public static string MYPROGRAM_PATH = "/path/to/my/workspace";

Очевидно, что это не сработает, когда я упаковываю и распространяю свое приложение. Как мне отслеживать, где он установлен?

В первую очередь меня интересует упаковка linux (в частности, .deb), но я планирую использовать это как упражнение, чтобы также узнать об упаковке Windows и Mac, поэтому все советы приветствуются.

Ответы [ 3 ]

1 голос
/ 15 ноября 2009

Если вы хотите путь к .exe программы, по крайней мере, в Microsoft .NET это System.Reflection.Assembly.GetExecutingAssembly().Location (или Path.GetDirectoryName(...), если вы хотите каталог) Я полагаю, что это было в .NET начиная с 2.0 или ранее, поэтому Mono должен быть совместим здесь ( только что отмечен, и он включен как минимум в документацию Mono).

1 голос
/ 15 ноября 2009

Если вы собираетесь упаковать свое программное обеспечение в пакет deb (или, возможно, rpm), почему бы просто не установить пакет для установки вашей программы в / usr / bin, или, если вам это неудобно, установите его в / USR / местные / бен. Тогда вам не нужно играть 20 вопросов о том, где находится ваша программа. Взгляните на справочную страницу "hier" для получения более подробной информации о том, где файлы должны быть установлены в файловой системе.

1 голос
/ 15 ноября 2009

Существует несколько способов определить места установки / запуска в .NET

Environment.CurrentDirectory

получит текущий рабочий каталог.

Если вы установили приложение в определенном месте в Program Files, вы можете использовать:

Environment.SpecialFolder.ProgramFiles;

Я почти уверен, что есть ряд других способов узнать текущий бегущий путь.

Что касается Linux, я предполагаю, что он будет работать под Mono? Если это так, я не уверен, как именно они обрабатывают специальные папки.

Наслаждайтесь!

...