wybuild update net autoupdate application .net auto-update

update - Actualización automática de aplicaciones.NET



vb net autoupdate application (6)

Aquí hay una solución de código abierto que escribí para abordar las necesidades específicas que teníamos para las aplicaciones WinForms y WPF. La idea general es tener la mayor flexibilidad, con la menor sobrecarga posible.

Entonces, la integración es súper fácil, y la biblioteca hace casi todo por ti, incluyendo las operaciones de sincronización. También es muy flexible y le permite determinar qué tareas ejecutar y en qué condiciones: usted establece las reglas (o usa algunas que ya existen). Por último, no menos importante es el soporte para cualquier fuente de actualizaciones (web, BitTorrent, etc.) y cualquier formato de fuente : lo que no esté implementado, puede escribirlo usted mismo.

Las actualizaciones en frío (que requieren un reinicio de la aplicación) también son compatibles, y se realizan automáticamente a menos que se especifique "hot-swap" para la tarea.

Esto se reduce a una DLL, menos de 70kb de tamaño.

Más detalles en http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

El código se encuentra en http://github.com/synhershko/NAppUpdate (Licenciado bajo la licencia Apache 2.0)

Planeo extenderlo más cuando tenga más tiempo, pero honestamente, debería poder mejorarlo usted mismo rápidamente por lo que actualmente no es compatible.

Los servicios WCF de actualización automática y los sitios web ASP.NET deberían poder hacerlo también, utilizando el "intercambio en caliente" de archivos y la tarea "iisreset" cuando sea necesario.

Esta pregunta ya tiene una respuesta aquí:

Estamos en un proceso de desarrollo de un sistema realmente complejo que consta de varios servicios WCF, aplicaciones ASP.NET MVC, herramientas de administración (aplicaciones de Windows Forms) ... Algunas de ellas tendrán instancias que se ejecutarán en varios servidores. Estamos buscando una buena solución de actualización automática para dicho sistema. Lo más probable es que necesitemos una aplicación (servicio) de actualización automática por separado que haga el trabajo, o alguna aplicación de administración centralizada que conozca las versiones de todas las instancias instaladas y haga la actualización de forma remota. ¿Hay algún buen producto / biblioteca, hecho para este propósito, que conozca o tenga experiencia?


ClickOnce para tus herramientas de administración.


Investigamos un puñado de opciones y decidimos usar la biblioteca de actualizaciones de AppLife para nuestro proyecto de empresa.

La actualización de AppLife puede agregar rápida y fácilmente la funcionalidad de actualización automática para sus aplicaciones .NET, pero también es flexible debido a su API completa.

Vea la lista completa de características y algunos videos de demostración en su sitio web.


Para aplicaciones WPF simples, aquellas que quizás usen la instalación de Xcopy, puede usar este módulo AppUpdater . Es un módulo de origen, solo unas pocas líneas de código, para agregar la capacidad de actualización a una aplicación WPF simple.

Es gratis.


Permítanme comenzar diciendo que soy el fundador de la compañía que tiene una solución de actualización completa que incluye:

wyUpdate maneja todos los problemas de UAC de Vista / Windows 7 y todos los problemas de permisos de archivos que inevitablemente surgen cuando intenta actualizar software complejo.

También ofrecemos licencias gratuitas a wyBuild para proyectos de código abierto , pero si está buscando construir su propio actualizador, puede canibalizar nuestro código fuente libremente.

Dicho esto, si desea construir su propio actualizador, aquí hay algunos consejos:

Construyendo tu propio actualizador

Un buen lugar para comenzar es el código fuente de wyUpdate y AutomaticUpdater que mencioné anteriormente. Puedes canibalizarlo y usarlo para tus propios fines. Algunos de los algoritmos que contiene:

  • Soporte completo de Windows Vista / Windows 7 UAC
  • Capacidad para usuarios limitados para verificar y actualizar si tienen credenciales
  • Apoyo a la inernet corporativa wonky. (Si alguna vez has trabajado con una corporación, este es un problema real).
  • Rápida extracción, parcheo e instalación de archivos.
  • Soporte de registro.
  • Deshacer archivos y registro por error o cancelación por parte del usuario
  • Auto-actualización (no quedan archivos)

También tenemos las especificaciones del archivo aquí .

Actualización automática

Dado que ser automático es un requisito, permítame decirle cómo lo hacemos con nuestro control AutomaticUpdater .

Usamos canalizaciones con nombre para comunicarnos entre el actualizador independiente (wyUpdate) y el control del Actualizador automático que se encuentra en el formulario de su programa. wyUpdate informa del progreso al Actualizador automático, y el Actualizador automático puede indicarle a wyUpdate que cancele el progreso, comience la descarga, comience a extraer, etc.

Esto mantiene al actualizador separado de su aplicación.

De hecho, el código C # de tuberías con nombre exacto que utilizamos se incluye en un artículo que escribí hace un tiempo: la aplicación C # de procesos múltiples como Google Chrome .


Personalmente estoy usando una metodología muy simple para cualquier tipo de actualización automática:

  • Tener un instalador
  • Verifique la nueva versión (WebClient simple y compare los números con su versión actual de AssemblyVersion)
  • Si la versión es más alta, descargue el instalador más reciente (debe estar sobre SSL por razones de seguridad)
  • Ejecute el instalador descargado y cierre la aplicación. (en esta etapa, debe tener privilegios de administrador si su instalador requiere que usted sea un administrador)

El instalador debe hacerse cargo del resto. De esta manera siempre tendrás la última versión y un instalador con la última versión.