Actualizar versión del SDK de Windows Azure para .NET en proyecto CloudService

Si trabajás con Windows Azure seguramente ya estás acostumbrado a tener que actualizar SDK’s, herramientas y librerías para mantenerte actualizado con las últimas novedades. Y realmente, después de varias actualizaciones el asunto puede volverse bastante «sucio». Yo actualmente tengo instaladas 3 versiones distintas del SDK de Windows Azure para .NET:

upgrade-cs-4

Recientemente, tuve que realizar unas modificaciones en una aplicación que contenía un proyecto de tipo CloudService. Después de haber hecho los cambios, ejecuté el CloudService para hacer el Debug y me saltó el siguiente mensaje de error:

upgrade-cs-2

El enorme grado de detalle del mensaje de error me forzó a tener que abrir la ventana de Output para tratar de entender cual era realmente el problema y por suerte ahí encontré un poco mas de información:

Windows Azure Tools: Error: The installed Windows Azure Emulator does not support the role binaries. Please install the latest Windows Azure Emulator and try again.
Windows Azure Tools: Warning: The role binaries in your package are using an older version of the Windows Azure SDK. Please consider upgrading.
Windows Azure Tools: The system is missing a prerequisite to execute the service. Please see the release notes.

En ese momento me di cuenta de cual era el problema: instalé una nueva versión del SDK de Windows Azure y el proyecto que estaba intentando abrir había sido creado usando una versión anterior. Excelente! Pero… ¿cómo lo corrijo?

Me acordaba que en ocasiones anteriores me había pasado algo similar: había intentado abrir una solución que contenía un CloudService y me apareció un mensaje de advertencia indicándome que no tenía instalado el SDK de Windows Azure y me había dado las opciones de bajarlo o de cambiar la versión del SDK del proyecto. Por suerte pude conseguir una captura del mensaje:

upgrade-cs-1

Aquella vez tuve suerte y seleccionando la opción para bajar el SDK, solucioné el problema al instante. Pero ahora, la historia es diferente, ya no es una advertencia al abrir la solución sino que es un mensaje de error al intentar hacer el Debug del proyecto, y sin ninguna ayuda de como arreglarlo… ¿Por qué esta vez es diferente?

Resulta ser que la diferencia está en que ésta vez, la versión del SDK que utiliza el CloudService sí está instalada, pero existe una versión más actualizada instalada, y al parecer la nueva versión reemplazó «algo» de la versión anterior dejándola inutilizable.

Afortunadamente, la manera de solucionar este problema resultó ser bastante simple:

  1. Abrir normalmente la solución que contiene el/los proyecto/s de tipo CloudService.
  2. Clic derecho en el/los proyecto/s de tipo CloudService y seleccionar la opción Properties.
  3. Clic en la pestaña Application. Allí debería de aparecer un mensaje como el de la imagen que muestro debajo.
  4. Clic en el botón «Upgrade…». El VS realizará una actualización del proyecto (en algunos casos aparecerá un Wizard para realizar la actualización, preguntando si se desea hacer un backup, etc).
  5. Listo!

upgrade-cs-3

Después de la actualización, el mensaje que aparecía en la pestaña Application debería haber desaparecido y debería aparecer simplemente el nombre de la versión del SDK de Windows Azure. Y obviamente, el proyecto debería compilarse y ejecutarse sin ningún error.

NOTA: Igualmente, recomiendo verificar que la actualización no haya roto nada en nuestro proyecto y/o solución.

Espero que les haya sido de utilidad. Se agradece mucho compartir/comentar o regalarme un café :)!

2 comentarios en “Actualizar versión del SDK de Windows Azure para .NET en proyecto CloudService

  1. Hola Mati,

    Gracias por el post. Al momento de hacer estas migraciones también es necesario checar los .config que no tengan un assembly antiguo de azure registrado. Por ejemplo el Diagnostics. Hace poco hicimos esta migración al SDK 2.3 y nos estaba tronando porque un .config estaba invocando a Diagnostics 1.8 jeje.

    Saludos!

Deja un comentario