Получение полного пути для службы Windows

Как узнать папку, в которой установлен файл .exe для Windows.

Path.GetFullPath(relativePath);

возвращает путь на основе C:WINDOWSsystem32каталога.

Тем не менее, этот XmlDocument.Load(string filename)метод работает против относительного пути в каталоге, где установлен файл .exe службы.

c#,.net,windows-services,

57

Ответов: 7


82 принят

Пытаться

System.Reflection.Assembly.GetEntryAssembly().Location

65 ов

Попробуй это:

AppDomain.CurrentDomain.BaseDirectory

(Как и здесь: как найти путь к exe-окну )


38 ов
Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)

Это работает для нашей службы Windows:

//CommandLine without the first and last two characters
//Path.GetDirectory seems to have some difficulties with these (special chars maybe?)
string cmdLine = Environment.CommandLine.Remove(Environment.CommandLine.Length - 2, 2).Remove(0, 1);
string workDir = Path.GetDirectoryName(cmdLine);  

Это должно дать вам абсолютный путь к исполняемому файлу.


Другая версия выше:

string path = Assembly.GetExecutingAssembly().Location;
FileInfo fileInfo = new FileInfo(path);
string dir = fileInfo.DirectoryName;
C # ,. чистые, окна-услуги,
Похожие вопросы