Tenemos una aplicación .NET que distribuimos a nuestros usuarios a través de un paquete instalador MSI. Tenemos aplicaciones C++ que se ejecutan cada mañana para ver si la copia del usuario de la aplicación está desactualizada, y si es así, desplegamos la nueva MSI e instálala. Si la aplicación se está ejecutando, debemos eliminarla para que podamos realizar la actualización.Windows parece perder la pista de la aplicación .NET
Nuestro problema es que de vez en cuando, que parezca como ventanas "pierde" nuestra aplicación. No informará que el proceso se está ejecutando, aunque sí lo está. Nos permitirá sobrescribir, o incluso eliminar, el archivo ejecutable en uso sin quitar la aplicación.
Tal vez esto es algo que es común - pero no podemos averiguar lo que está pasando! ¿Alguien tiene alguna idea de esta situación?
Parece una copia temporal de nuestra aplicación es cada vez creado, y el programa se está RAN de eso. Pero si ese es el caso, ¿por qué no sucede todo el tiempo?
EDIT: En nuestro programa, estamos utilizando la función "EnumProcesses" de Platform SDK, PSAPI.dll, para enumerar todos los procesos en ejecución.
¿Qué se utiliza para detectar si la aplicación se está ejecutando? –
dice que no se está ejecutando * y * permite sobrescribir los ejecutables? Hay una explicación simple para eso: no se está ejecutando. –
No sé lo que hace tu aplicación, pero parece que ClickOnce sería una solución más limpia. – Walter