Pregunta

¿Es posible introducir la funcionalidad ClickOnce a una aplicación existente?

El escenario es: la versión 1.0 ya está instalada en las instalaciones del cliente. Me gustaría enviarles un nuevo paquete de instalación que se actualizará a 1.1, que tiene la funcionalidad ClickOnce, haciendo así actualizaciones futuras & Quot; sin esfuerzo & Quot ;.

Salvo eso, ¿hay alguna otra solución para este tipo de problema?

PD: La aplicación original se desarrolló con Visual & nbsp; Studio & nbsp ; 2005 (es decir, .NET 2.0). Estoy usando Visual & Nbsp; Studio & Nbsp; 2008 ahora .

¿Fue útil?

Solución

No, no es posible con un escenario de implementación ClickOnce estándar.

ClickOnce es una instalación de espacio aislado en el lado del cliente. No sabrá sobre la versión 1.0 que ya está instalada. Simplemente va a verificar si su GUID ya se ha instalado a través de ClickOnce y, en caso afirmativo, actualícelo, pero solo si la versión anterior se implementó a través de ClickOnce.

En su caso, si el usuario instaló la Versión 1.1, ambas versiones se instalarán una al lado de la otra. La versión 1.0 no se actualizará porque ClickOnce no sabe que existe una asociación, ya que se implementó mediante un método diferente. Si ya no quieren la versión 1.0, deberán eliminarla manualmente. Una vez que haya implementado la versión 1.1 a través de ClickOnce, las actualizaciones posteriores funcionarán correctamente.

No pienses en ClickOnce como algo que eres " incluyendo " ;, piensa en ello como un método de implementación.

Alternativamente :

Debo aclarar que lo que está buscando no es posible con la implementación estándar de ClickOnce. Sin embargo, mencionó que les enviará un archivo de configuración inicial. En ese caso, puede tener una solución alternativa que sea posible:

  1. Script el archivo de configuración para eliminar la instalación de la versión 1.0 automáticamente
  2. Script el archivo de configuración para iniciar la instalación ClickOnce.

Para actualizaciones posteriores, simplemente apunte al usuario a " pure " Haga clic en el paquete de instalación y sus actualizaciones deberían funcionar bien.

Otros consejos

Asegúrese de probar su implementación ClickOnce a fondo en el entorno de su cliente. Estoy omitiendo detalles aquí, pero hay muchos problemas con ClickOnce. He estado apoyando una aplicación ClickOnce durante 3.5 años y he tenido muchos problemas con los manifiestos, teniendo que eliminar manualmente las carpetas de almacenamiento de sandbox para que las actualizaciones se instalen correctamente, etc. - si busca en línea los problemas de ClickOnce, encontrará bastante pocos problemas en los foros de MSDN y en otros lugares, muchos de los cuales MS no parece querer resolver ya que han estado abiertos desde Visual & nbsp; Studio & nbsp; 2005.

Además, tenga en cuenta un posible problema en ClickOnce antes de .NET 3.5 SP1. Si no tiene su propio certificado de implementación de software de un CA reconocido por las máquinas cliente, Visual Studio utiliza un & Quot; temporal & Quot; certificado (* .pfx) que caduca un año después de la creación. Después de ese tiempo, las versiones de actualización posteriores probablemente no se instalarán, y mostrarán a los usuarios mensajes de miedo sobre el vencimiento del certificado. Microsoft arregló esto en .NET 3.5 SP1, pero tuvo que examinar las notas de la versión para encontrar los comentarios de que los certificados temporales o permanentes ya no eran necesarios. Por lo tanto, si no tiene un certificado de CA público y admitirá esta aplicación durante algún tiempo, asegúrese de estar en .NET 3.5 SP1.

Dependiendo de la complejidad de su escenario, ya que pregunta sobre otras soluciones, terminamos usando un & "; rodar su propio &"; enfoque que va más o menos así.

Cada versión actualizada incrementa la versión del ensamblaje según sea necesario.

Build contiene un paso personalizado para generar automáticamente un archivo con la nueva versión de ensamblaje.

El proyecto de implementación copia el archivo de versión en el directorio de salida con MSI.

Cada vez que se ejecuta la aplicación instalada, compara su propia versión con la versión en el archivo de versión en la carpeta de implementación. Si difieren, salga de la aplicación e inicie el MSI, que configuramos para eliminar automáticamente las versiones anteriores de la aplicación.

Este es un & "; ClickOnce del hombre pobre &"; para un entorno donde no hay herramientas de implementación de aplicaciones de ningún tipo avl (ni siquiera publicidad de aplicaciones AD), así que lo hicimos. Nuevamente, este enfoque puede no ser lo suficientemente sofisticado para usted, pero funciona bien para nosotros.

La mejor de las suertes.

La mejor manera que sé sería enviarles un programa de instalación que:

  1. Desinstala la versión actual
  2. Inicia la aplicación ClickOnce que reside en la web.

Con esto, tendría una experiencia de actualización razonable y, a partir de ahí, ClickOnce puede manejar las actualizaciones por sí solo.

Creo que en este caso la & "; la más fácil &"; la solución sería usar la implementación ClickOnce para la versión 1.1 y, como parte de esa nueva versión de su aplicación, tener un archivo de configuración predeterminado con un indicador de primera ejecución de algún tipo que, cuando el usuario lo ejecute por primera vez y ve ese indicador de primera ejecución, busca la versión anterior, copia cualquier configuración de configuración existente y luego desinstala la versión anterior automáticamente.

Se requeriría algo de programación de su parte, pero es la solución que decidí en un trabajo anterior para hacer una tarea similar para actualizar una aplicación de utilidad para usar Clickonce donde no tenía eso antes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top