una tiempo tareas servicio que programador programadas programa iniciar hora hacer gratis ejecute ejecutar determinada como cierto cada c# .net windows scheduled-tasks

c# - tiempo - Cómo obtener la carpeta de la aplicación cuando el Programador de tareas de Windows inicia el programa



programador de tareas windows 8 (7)

Tengo una aplicación de consola en c # que se inicia en tiempos programados por el programador de tareas de Windows. La aplicación necesita algunos archivos físicos de su propio directorio y utiliza System.IO.Directory.GetCurrentDirectory() para eso.

Normal cuando inicio la aplicación de consola, funciona perfectamente. Pero cuando se inicia con el Programador de tareas de Windows, devuelve C:/Windows/System32 .

¿Por qué este no es el directorio de la aplicación y hay otra manera de obtener el directorio de la aplicación?


¿Puedes probar lo que esto devuelve?

System.IO.Path.GetDirectoryName(Application.ExecutablePath)


Es un hilo viejo, pero para alguien que mira, mientras configura la tarea, puede asignar la ubicación en la Acción de la tarea, estableciendo el valor opcional: Comenzar en "a su carpeta exe. GetCurrentDirectory funcionará bien entonces.


Yo uso My.Application.Info.DirectoryPath es apuntar al directorio correcto lo que desea dentro del programador de tareas de Windows.



GetCurrentDirectory devuelve ese directorio porque cuando el programador inicia una aplicación de forma predeterminada. Si desea conocer el directorio en el que se encuentra su binario, puede usar

Assembly.GetExecutingAssembly().Location

También me gustaría saber si tiene un directorio de "Inicio en" establecido en su tarea programada, configuración que también debería establecer el directorio actual de la aplicación cuando se inicie.



Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

System.IO.Directory.GetCurrentDirectory() devolverá el directorio actual del proceso de ejecución que no es su aplicación en esta instancia. Lo anterior será suficiente para obtener el directorio de ejecución en el que se ejecuta su ejecutable.