[VS2010] Publicando aplicaciones con ClickOnce en Codeplex (sistema de distribución gratis como el aire !!!)

image47dd1de4

Buenas,

hoy veía una herramienta de Jose Manuel para analizar el tráfico en Twitter colgado en CodePlex, y recordé que tenía pendiente un post sobre una capacidad que tiene CodePlex  desde hace un tiempo que nos permite publicar y distribuir nuestras aplicaciones con ClickOnce directamente desde CodePlex.

El siguiente tutorial muestra un ejemplo sobre como crear y publicar un proyecto en CodePlex, como para que sirva de referencia.

Tutorial

1. Pues lo primero es acceder al site de Codeplex: www.codeplex.com, para esto tienes que tener una cuenta de acceso y si bien es posible utilizar Windows Live Id, luego necesitarás una cuenta de CodePlex para poder utilizar el Source Control.

2. A continuación creamos un proyecto, en este caso llamado El Bruno ClickOnce Demo. La url de este proyecto será http://elbrunoclickoncedemo.codeplex.com y utilizaré las opciones por defecto: Team Foundation Server y Team Explorer.

image

3. Una vez creado el proyecto, ya podemos comenzar a trabajar con el mismo. Debemos actualizar información de proyecto, actualizarlo, etc. CodePlex nos guía bastante bien en el paso a paso necesario para ponerlo en marcha.

image

4. Lo siguiente es subir un proyecto al Source Control de CodePlex. Para conectarme desde Visual Studio 2010 a CodePlex, utilizo los siguientes datos:

image

El paso a paso para conectarse utilizando Team Explorer 2010 puede accederse desde aquí.

5. El proyecto de ejemplo que he elegido es bastante simple. Se trata de una aplicación WPF que muestra el número de versión en el título de la ventana, con las simples líneas que escribí hace un par de años y otro par de datos de publicación utilizando las capacidades de System.Deployment.Application.

El siguiente código muestra como se actualiza el título con el número de versión y en un TextBlock se muestra un poco más de información.

   1: private void DisplayPublishData()

   2: {

   3:     if (!ApplicationDeployment.IsNetworkDeployed) return;

   4:     var ad = ApplicationDeployment.CurrentDeployment;

   5:     var data = string.Format(@"ActivationUri: {0}

   6: stUpdateCheck: {1}

   7: cation: {2}", ad.ActivationUri, ad.TimeOfLastUpdateCheck, ad.UpdateLocation);

   8:     lblData.Text = data;

   9: }

  10:  

  11: private void DisplayCurrentPublishVersion()

  12: {

  13:     Title = "El Bruno - ClickOnce Demo [N/A]";

  14:     if (!ApplicationDeployment.IsNetworkDeployed) return;

  15:     var ad = ApplicationDeployment.CurrentDeployment;

  16:     Title = string.Format(@"El Bruno - ClickOnce Demo [{0}]", ad.CurrentVersion);

  17: }

6. El siguiente paso, es configurar la aplicación para que pueda ser distribuida y actualizada con ClickOnce desde CodePlex. Este punto es muy importante, ya que la publicación no es un proceso automático, sino que debemos hacerla manualmente.

Para este post, he configurado el directorio de publicación en local en un directorio llamado “publish”, y la url de actualización es la de codeplex: http://elbrunoclickoncedemo.codeplex.com/releases/clickonce/, que se habilita cuando se crea el proyecto en CodePlex.

image

7. Una vez creada una versión de la aplicación, debemos acceder al directorio de publicación y comprimir el mismo para crear un nuevo Release en CodePlex. Es importante respetar la estructura que crea ClickOnce ya que será la defina la actualización.

image

8. Si vemos el zip creado para la distribución, el mismo debe poseer en la raíz el archivo *.application que define las actualizaciones con ClickOnce.

image

8. Una vez creada la publicación de ClickOnce en un directorio local, ya podemos crear un nuevo Release en CodePlex. En el mismo, tenemos la capacidad de marcar esta publicación como una distribución de ClickOnce, y en este caso, debemos seleccionar el zip que hemos creado en el paso anterior.

image

9. cuando se crea el release correctamente, ya podemos conectarnos y acceder al mismo desde la página de distribuciones de codeplex. En este caso http://elbrunoclickoncedemo.codeplex.com/releases/view/57041

image

10. Cuando lanzamos la aplicación, veremos que la misma sigue los pasos usuales de una aplicación publicadad en ClickOnce.

image

image

image

11. La aplicación en ejecución nos muestra el número de versión correspondiente a la publicación, y como soy un poco lento de neuronas, la información de publicación, no está alineada correctamente. Esto es la excusa perfecta para crear y publicar una nueva versión con esta información en el formato correcto.

image

12. Ajusto un poco el layout de la aplicación, publico una nueva versión en local, creo un zip con los archivos de la publicación y creo un nuevo release en CodePlex, asociado a los cambios de la ultima versión y a la publicación en ClickOnce.

image

13. Cuando lanzo la aplicación, veo que existe una nueva versión para actualizar mi aplicación.

image

14. Y cuando actualizo la misma, ya puedo ver los cambios y la información de despliegue

image

15. Finalmente, como estamos trabajando de forma organizada, podemos ver como cada release de clickonce se asocia a un changeset del Source Control.

image

Espero que les sea de utilidad Risa

 

Saludos @ Home

El Bruno

   

Referencias: http://codeplex.codeplex.com/wikipage?title=ClickOnce

2 comentarios en “[VS2010] Publicando aplicaciones con ClickOnce en Codeplex (sistema de distribución gratis como el aire !!!)”

  1. Hasta aquí todo muy bien, pero porque cuando instala en el cliente, se crea 2 carpetas, en una esta el app.config con la cadena de conexión encriptada y en la otra esta sin encriptar, si borro uno funciona de maravilla, pero el tema es que a un cliente final no se le va a decir que lo borre, así cualquiera ve la cadena de conexión y se conecta al servidor de BD, ¿como evitar esto?

Deja un comentario

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