c# - Servicio de Windows-obtener el directorio actual
windows-services current-dir (5)
No utilice Directory.GetCurrentDirectory()
. Tuve el mismo problema con la devolución de C: / Windows / System32 . Use esto en su lugar:
Path.GetDirectoryName(Application.ExecutablePath);
Tengo un servicio de Windows que debería buscar un archivo de configuración en su directorio actual.
Así que uso directory.getcurrentdirectiry()
pero en lugar del directorio de servicios vuelvo
c:/windows/system32
¿Alguna idea de por qué y cómo debo obtener el directorio de servicios?
Prueba esto:
System.Reflection.Assembly.GetEntryAssembly().Location
Puede configurar el directorio actual al directorio desde el que se ejecuta su servicio al incluir esta línea en su código:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
La parte importante de esto es:
System.AppDomain.CurrentDomain.BaseDirectory
Eso devuelve la ruta al directorio desde el que se ejecuta el servicio.
obteniendo el directorio de la ruta completa:
var location = System.Reflection.Assembly.GetEntryAssembly().Location;
var directoryPath = Path.GetDirectoryName(location);
un problema bastante tonto cuando se compara con escribir un servicio de Windows :)
string applicationDir = AppDomain.CurrentDomain.BaseDirectory;