ubicacion startuppath ruta proyecto obtener net directorio carpeta asp application aplicacion actual c# .net windows-services

c# - startuppath - Obteniendo la ruta completa para el servicio de Windows



vb net obtener directorio actual (7)

Esto debería darle la ruta en la que reside el ejecutable:

Environment.CurrentDirectory;

Si no, puedes intentar:

Directory.GetParent(Assembly.GetEntryAssembly().Location).FullName

Una forma más hacky, pero funcional:

Path.GetFullPath("a").TrimEnd(''a'')

:)

¿Cómo puedo encontrar la carpeta donde está instalado dinámicamente el archivo .exe del servicio de Windows?

Path.GetFullPath(relativePath);

devuelve una ruta basada en el directorio C:/WINDOWS/system32 .

Sin embargo, parece que el método XmlDocument.Load(string filename) está trabajando contra la ruta relativa dentro del directorio donde está instalado el archivo .exe de servicio.


Esto funciona para nuestro servicio de 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);

Esto debería darle la ruta absoluta del ejecutable.


Otra versión de lo anterior:

string path = Assembly.GetExecutingAssembly().Location; FileInfo fileInfo = new FileInfo(path); string dir = fileInfo.DirectoryName;


Tratar

System.Reflection.Assembly.GetEntryAssembly().Location


Environment.CurrentDirectory devuelve el directorio actual donde se está ejecutando el programa. En el caso del servicio de Windows, devuelve la ruta% WINDIR% / system32 que es donde se ejecutará el ejecutable en lugar de donde se despliegue el ejecutable.


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