studio - Quiero que mi servicio de Windows C#se actualice automáticamente
desactivar actualizaciones skype 8 (6)
¿Existe un marco que se pueda usar para permitir que un servicio de Windows C # compruebe automáticamente si hay una versión más nueva y se actualice por sí mismo? Ciertamente puedo escribir código para lograr esto, pero estoy buscando un marco que ya haya sido implementado y (lo más importante) probado.
[edit] Aquí hay un enlace a una pregunta similar con enlaces a proyectos modernos que ayudan a lograr esto: ¿ Biblioteca de actualización automática para .NET?
¿Podrías aclarar tu pregunta un poco? Estoy un poco confundido, porque hasta donde sé, siempre puede sobrescribir las DLL que usa el servicio. La copia y el reinicio del servicio pueden hacerse fácilmente parte de su proceso de compilación.
La única forma de descargar tipos es destruir el dominio de aplicación. Hacer esto requeriría la separación de su capa de alojamiento de su código de servicio en ejecución, esto es bastante complejo. (algo así como hacer cirugía de ojo de cerradura)
Puede ser más fácil a) a) ejecutar una tarea por lotes o b) detectar en el servicio las actualizaciones, a continuación, iniciar un proceso independiente que detiene el servicio, actualiza los ensamblajes, etc., y luego lo reinicia.
Si está interesado en lo primero, el personal de patrones y prácticas de MSDN escribió un bloque de actualización de la aplicación que usted adapta a su servicio.
No conozco ningún Frameworks que facilite soluciones a este problema específico.
Sin embargo, lo que podría intentar es separar la lógica comercial del servicio del código de servicio real en diferentes conjuntos. Haga que el conjunto de servicio compruebe las actualizaciones del ensamblaje de lógica de negocios a intervalos regulares, cópielo de una fuente remota si es necesario, descargue el antiguo ensamblaje BL (y quizás elimine) y luego cargue dinámicamente la nueva versión (la descarga del ensamblaje antiguo no es una tarea trivial).
Otra posible solución es tener un servicio independiente que se ejecuta, detiene el otro, si hay una actualización, y luego actualiza el servicio. No puede tener una actualización de servicio porque el .dll que se está ejecutando no se detendrá.
Separar la capa de lógica de negocios sería una buena opción. También podría reescribir el servicio principal para que se ejecute bajo reflexión por un maestro o servicio de control. Esto es similar a separar la lógica comercial, y solo requeriría detener un hilo y comenzarlo de nuevo.
No conozco ningún marco conocido que haga esto. Lo hice yo mismo, pero ese no es un marco público.
En caso de que alguien más esté buscando esto; Encontré este enlace interesante. No he implementado esta solución, pero parece que podría funcionar para mí
He estado usando WyBuild para actualizar mis aplicaciones (incluidos los servicios de Windows) y es bastante impresionante. Realmente fácil de usar, y realmente fácil de integrar con las aplicaciones existentes. Es un marco de actualización automática bastante bueno ...
http://wyday.com/wybuild/help/automatic-updates/windows-services-console-apps.php http://wyday.com/wybuild/help/silent-update-windows-service.php
Tenga en cuenta que es un marco pago (la licencia es por desarrollador, se incluye una versión de prueba gratuita)