Hola a todos,
Bienvenidos a la 4º entrega de la serie sobre Windows 10. En este artículo haremos un parón en cuanto a las novedades. En su lugar vamos a ver… como reparar nuestros antiguos proyectos de Visual Studio 2015 CTPX para que continuen funcionando en Visual Studio 2015 RC. Pero antes, el índice de la serie:
-
Windows 10, Novedades para desarrolladores 4 de N: Visual Studio 2015 RC
Hace un par de semanas, durante el //Build 2015, Microsoft liberó la versión Release Candidate de Visual Studio 2015. Como suele ocurrir cuando trabajamos con versiones CTP de cualquier herramienta, los cambios introducidos por la versión RC han roto los proyectos anteriores de aplicaciones universales para Windows 10. Si intentas cargar un proyecto creado con la CTP5/6 de Visual studio verás el siguiente mensaje:
Puede llevar a equivocos, pues nos indica que necesitamos ¿actualizar? nuestro Visual Studio. Lo que ocurre es que en el CSPROJ de nuestro proyecto está indicada una versión de la plataforma de aplicaciones universales (UAP) más pequeña que la usada por Visual Studio 2015 RC. Lo que tenemos que hacer es presionar OK. El proyecto no se cargará y se mostrará como “Update required” en el explorador de soluciones. Vamos a solucionarlo.
En primer lugar necesitaremos editar el archivo CSPROJ. haz click derecho sobre el proyecto en el explorador de soluciones y escoge la opción “Edit XXXXXX.csproj”. En el XML del archivo de proyecto busca los nodos: TargetPlatformVersion y TargetPlatformMinVersion. Verás que su valor está establecido en 10.0.10030.0, que es el valor antiguo. Con la nueva versión de Visual Studio 2015 RC, este valor debería ser 10.0.10069.0. Sustituye el valor antiguo por el nuevo. guarda los cambios, cierra el archivo y haz click derecho sobre el proyecto de nuevo. En esta ocasión escoge la opción “Reload project”.
Enhorabuena, ahora tu proyecto ya se ha abierto en Visual Studio. Pero si intentas compilarlo te dará algunos errores de que le faltan packages de NuGet para compilar. La versión de ApplicationInsights usada en la CTP y la RC ha cambiado, así que lo primero será actualizar los paquetes de Application Insights a la última versión.
Haz click derecho sobre el nodo “References” del proyecto > Manage NuGet packages. En la ventana de NuGet selecciona el filtro “Upgrade available” y asegurate de tener marcado el check de “include prerelease”:
Se mostrarán varios resultados. Actualizando el primer paquete Microsoft.ApplicationInsights, ya descarga la versión actualizada del resto, por lo que es el único que necesitamos actualizar.
Otro paso más es actualizar el archivo applicationinsights.config. Este contiene los modulos que carga application insights al instanciarse y han cambiado. Lo más sencillo es crear un nuevo proyecto y copiar los que incluye allí por defecto:
<ApplicationInsights xmlns=»http://schemas.microsoft.com/ApplicationInsights/2013/Settings«>
<TelemetryModules>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights«/>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.Windows.SessionTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows«/>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.Windows.PageViewTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows«/>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.Windows.UnhandledExceptionTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows«/>
</TelemetryModules>
<TelemetryChannel Type=»Microsoft.ApplicationInsights.Channel.PersistenceChannel, Microsoft.ApplicationInsights.PersistenceChannel«/>
<ContextInitializers>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer, Microsoft.ApplicationInsights«/>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.DeviceContextInitializer, Microsoft.ApplicationInsights«/>
</ContextInitializers>
<TelemetryInitializers>
<Add Type=»Microsoft.ApplicationInsights.Extensibility.Windows.UserContextInitializer, Microsoft.ApplicationInsights.Extensibility.Windows«/>
</TelemetryInitializers>
</ApplicationInsights>
Ya solo nos queda añadir dos nuevos paquetes de NuGet a nuestra aplicación:
-
Microsoft.ApplicationInsights.PersistanceChannel
-
Microsoft.ApplicationInsights.WindowsApps
Una vez hecho esto, todo debería funcionar… o casi todo. Si hacemos un rebuild de la solución, pasará correctamente y se ejecutará también perfectamente.
Pero si miramos el panel de errores, veremos que muestra varios warnings referentes al certificado de la aplicación (nombreapp_TemporaryKey.pfx). Por ahora podemos eliminarlo y no afectará a la funcionalidad. Cuando el editor visual de appxmanifest esté disponible en próximas versiones podremos regenerarlo nuevamente.
Con estos pequeños trucos, deberías tener tu proyecto funcionando de nuevo en Visual Studio 2015 RC.
Un saludo y Happy Coding!