c# - La aplicación ClickOnce omite una actualización(o falla al iniciar si se selecciona omitir)
visual-studio-2008 .net-3.5 (5)
Además de la respuesta de David , simplemente instale el paquete de nuget AutoUpdateProjectsMinimumRequiredClickOnceVersion en su proyecto. Una vez que haya configurado su proyecto para buscar actualizaciones y usar una versión mínima requerida, esto se asegurará de que la versión mínima requerida siempre coincida con su versión actual (es decir, el usuario siempre estará obligado a actualizar a la versión más reciente).
Actualicé mi aplicación ClickOnce y luego, cuando el usuario se ejecuta, se les pregunta si desean instalar la nueva versión.
Estoy trabajando en un ambiente altamente controlado. Cuando hay una actualización disponible, debe instalarse (la compatibilidad con versiones anteriores no está garantizada con versiones anteriores).
Otra opción es fallar la ejecución si se presiona omitir (eso también funciona bien).
Necesito alguna forma de evitar que ejecuten una versión anterior de la aplicación.
Este artículo responde a su pregunta. Le señalo el artículo en lugar de solo publicar una respuesta porque vale la pena saber todo lo que contiene el artículo.
http://www.sayedhashimi.com/CategoryView,category,ClickOnce.aspx
El siguiente es el extracto relevante del artículo:
Forzando Actualizaciones de ClickOnce
Uno de los grandes puntos de venta de ClickOnce son las actualizaciones automáticas. Una de las preguntas comunes que recibo con respecto a las actualizaciones es "¿Cómo puedo forzar una actualización en el usuario?"
Hay tres cosas que debe saber con respecto a forzar actualizaciones en los usuarios:
1) Si su aplicación es una aplicación en línea, sus usuarios siempre ejecutarán la última versión; Las aplicaciones en línea se descargan cada vez que se accede a la aplicación. Por lo tanto, con las aplicaciones en línea, obtienes actualizaciones forzadas por defecto.
2) Si su aplicación es una aplicación instalada, puede forzar las actualizaciones utilizando el atributo MinimumRequiredVersion. Si publica su aplicación utilizando Visual Studio, puede configurar esta propiedad desde el cuadro de diálogo Actualizaciones.
3) Lo último a tener en cuenta es que si su aplicación es una aplicación instalada (y no ha establecido el atributo MinimumRequiredVersion), ClickOnce le indicará al usuario un cuadro de diálogo "Actualizar disponible" SOLAMENTE si el usuario inicia la aplicación desde el acceso directo del Menú Inicio. . Es decir, si una aplicación es una aplicación instalada y el usuario inicia la aplicación desde una URL, ClickOnce obliga a la actualización.
También encontré otro buen artículo:
ClickOnce: Brindando facilidad y confiabilidad a la implementación de clientes inteligentes
Esto funcionó perfectamente para mí. Agregue lo siguiente al archivo de proyecto:
<UpdateRequired>true</UpdateRequired>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>
Tenga en cuenta que ApplicationVersion
no puede tener un valor como 1.0.0.*
En el archivo de proyecto y debe incrementarse en el momento de la compilación para que la actualización automática funcione.
Si usa TeamCity , para incrementar el número de versión, vaya a la página de configuración de la construcción para su proyecto y configure las siguientes propiedades del sistema :
system.ApplicationVersion = %build.number%
También puede hacer que MSBuild incremente la versión por tiempo con algo como esto:
<UpdateRequired>true</UpdateRequired>
<BuildNumber>$([System.DateTime]::Now.ToString(yyyyMMdd))</BuildNumber>
<RevisionNumber>$([System.DateTime]::Now.ToString(mmss))</RevisionNumber>
<ApplicationVersion>1.0.$(BuildNumber).$(RevisionNumber)</ApplicationVersion>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>
Me funcionó al desmarcar. La aplicación debería buscar actualizaciones y la aplicación comenzó a actualizarse sin preguntar al usuario después de dos versiones.
Para forzar una actualización en los clientes, debe establecer que el campo de versión mínima sea igual a la versión actual que está implementando, esto forzará la actualización cuando la opción "saltar".