Saltar al contenido

¿Cómo actualizar automáticamente una aplicación sin ClickOnce?

Solución:

Ya hay muchas preguntas sobre esto, así que te referiré a ellas.

Una cosa que debe asegurarse para evitar la necesidad de desinstalar es que use el mismo potenciar código en cada versión, pero cambie el producto código. Estos valores se encuentran en las propiedades del proyecto Installshield.

Algunas referencias:

  • Actualización automática de aplicaciones .NET

  • ¿Biblioteca de actualización automática para .NET?
  • Actualización automática para la aplicación WinForms
  • Sugerir un método para actualizar automáticamente mi programa C #
  • Actualización automática de una aplicación de Windows

Creo que debería consultar el siguiente proyecto en codeplex.com http://autoupdater.codeplex.com/

Esta aplicación de muestra está desarrollada en C # como una biblioteca con el nombre de proyecto “AutoUpdater”. La DLL “AutoUpdater” se puede utilizar en una aplicación de Windows C # (WinForm y WPF).

Hay ciertas características sobre AutoUpdater:

  1. Fácil de implementar y usar.
  2. La aplicación se vuelve a ejecutar automáticamente después de verificar la actualización.
  3. Proceso de actualización transparente para el usuario.
  4. Para evitar bloquear el hilo principal mediante la descarga de varios subprocesos.
  5. Posibilidad de actualizar el sistema y también el programa de actualización automática.
  6. Un código que no necesita cambios cuando es usado por diferentes sistemas y podría compilarse en una biblioteca.
  7. Fácil para que el usuario descargue los archivos de actualización.

¿Cómo utilizar?

En el programa que desea que se pueda actualizar automáticamente, solo necesita llamar a la función AutoUpdate en el procedimiento principal. La función AutoUpdate verificará la versión con la leída de un archivo ubicado en un Sitio Web / FTP. Si la versión del programa es inferior a la que se lee, el programa descarga el programa de actualización automática y lo inicia y la función devuelve True, lo que significa que se ejecutará una actualización automática y el programa actual debería cerrarse. El programa de actualización automática recibe varios parámetros del programa a actualizar y realiza la actualización automática necesaria y luego inicia el sistema actualizado.

  #region check and download new version program
  bool bSuccess = false;
  IAutoUpdater autoUpdater = new AutoUpdater();
  try
  {
      autoUpdater.Update();
      bSuccess = true;
  }
  catch (WebException exp)
  {
      MessageBox.Show("Can not find the specified resource");
  }
  catch (XmlException exp)
  {
      MessageBox.Show("Download the upgrade file error");
  }
  catch (NotSupportedException exp)
  {
      MessageBox.Show("Upgrade address configuration error");
  }
  catch (ArgumentException exp)
  {
      MessageBox.Show("Download the upgrade file error");
  }
  catch (Exception exp)
  {
      MessageBox.Show("An error occurred during the upgrade process");
  }
  finally
  {
      if (bSuccess == false)
      {
          try
          {
              autoUpdater.RollBack();
          }
          catch (Exception)
          {
             //Log the message to your file or database
          }
      }
  }
  #endregion

La forma más común sería colocar un archivo de texto simple (XML / JSON sería mejor) en su servidor web con la última versión de compilación. A continuación, la aplicación descargará este archivo, comprobará la versión e iniciará el actualizador. Un archivo típico se vería así:

Archivo de actualización de la aplicación (Una cadena única que permitirá que su aplicación reconozca el tipo de archivo.)

versión: 1.0.0 (Última versión de ensamblaje)

descargar: http: //yourserver.com / … (Un enlace a la versión de descarga.)

redireccionamiento: http: //yournewserver.com / … (Usé este campo en caso de un cambio en la dirección del servidor.)

Esto le permitiría al cliente saber que necesita buscar una nueva dirección.

También puede agregar otros detalles importantes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *