Pues eso… seguimos con los «problemitas» de Visual Studio 2022 y .NET MAUI. Después del fallo que te comenté anoche, me puso en la labor de crear un nuevo proyecto de .NET MAUI en Visual Studio 2022, con idea de comentar otro de los fallos con los que me encontré y es que en los controles Entry no se cambia el valor que hayas asignado (en diseño o por código).
Creé un nuevo proyecto de .NET MAUI, pero… nada de nada… el error que me mostraba (después de varios «cleanings» y «rebuilds» era que: XamlCTask «nosequénosecuántos» y ahí se quedaba.
Esto ya me pasó otra vez, lo solucioné (pero no recordaba como lo hice), por eso estoy escribiendo esto… por si lo soluciono lo tendré a mano 😉
Lo que ahora estoy haciendo (o el Windows 11 está haciendo) es esto:
Paso 1: Ejecutar maui-check.
En la línea de comandos (yo he abierto el terminal de Windows 11) escribe:maui-check
.
Esto comprueba si el «.NET MAUI» está correctamente instalado.
Nota:
Si esa utilidad no la tienes instalada… pues… tendrás que instalarlo, tal como te dije hace unos meses.
dotnet tool install -g redth.net.maui.check
Paso 2: Descargar e instalar todo lo que necesita .NET MAUI.
Escribe en la línea de comandos o la terminal de Windows 11: dotnet workload install maui
Esto descargará e instalará lo que necesite tu equipo.
Ver la captura 1 con los dos comandos comentados.
Aunque esto no soluciona el error ese de Error MSB4018 The «XamlCTask» task failed unexpectedly. 🙁
Paso 3: Crear un nuevo proyecto.
Yo lo he creado desde la línea de comandos:dotnet new maui -n MauiApp3
MauiApp3 es el nombre del proyecto que le he dado.
Pero también lo puedes crear desde el propio Visual Studio 2022.
En nuevo proyecto escribe MAUI en la búsqueda y pulsa INTRO y te mostrará los proyectos de .NET MAUI. Selecciona el primero tal como te muestro en la captura 2.
Paso 4: Editar el proyecto en Visual Studio 2022 e indicar que admita aplicaciones de Windows.
Lo abro con Visual Studio 2022, (o lo creo, tal como te he indicado en el paso anterior), edito el fichero del proyecto (en el explorador de soluciones pulsa con el botón secundario en el proyecto y selecciona Edit Project File) y quito el comentario en la línea:
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net6.0-windows10.0.19041</TargetFrameworks>
En el valor TargetFrameworks que está justo encima de esa línea con los «frameworks» incluidos en el proyecto: net6.0-ios;net6.0-android;net6.0-maccatalyst.
Si ahora ejecutas el proyecto te dará error, ya que el «framework» que usará será el primero de la lista: net6.0-ios. Aunque arriba esté indicado que será en Windows Machine.
Para solucionarlo, debes cambiar el target framework indicado en la aplicación de Windows y seleccionar el de Windows (ver la captura 3):
Abajo, en la lista de errores más o menos te da pistas.
Y si después de eso (y tienes suerte) al pulsar F5 debería mostrarte la aplicación de ejemplo (ver la captura 4).
Nota interna pal Guille:
El proyecto que funciona (sin añadir código propio) es: MauiApp2 y MauiApp3 que están en «C / source / repos».
Una cosa a tener en cuenta:
Si pruebas con Android (emulador o dispositivo), y supongo que para iOS también, el framework se asignará correctamente, pero si vuelves a querer usar la aplicación en Windows, tendrás que volver a indicar el net6.0-windows10.0.19041.
Ahora no se te ocurra añadir tu propio código… jajaja porque es cuando empieza el espectáculo del error ese que te dije antes en el paso 2: Error MSB4018 The «XamlCTask» task failed unexpectedly.
A ver si consigo solucionarlo, porque ni haciendo todo lo anterior me ha funcionado.
Porque funcionar (aunque regulín-regulán) me ha funcionado, pero ya no recuerdo qué hice. A ver si doy con lo que fue… y te voy contando, porque ya son cerca de las 4 de la tarde del nuevo horario y hay hambre 😉
*** Seguimos…
A ver… creo que era lo que comentaban en este «reporte de error»: VS 2022 MAUI project templates missing.
Ejecutando este código: dotnet new -i Microsoft.Maui.Templates
indica que está todo instalado (otra cosa es que añadas una nueva página al proyecto, en ese caso, como es Xamarin.Forms te dará errores por todos lados, pero básicamente es cambiar las definiciones de los «usings» y cambiar los xmlns del diseñador).
En mi caso, al ejecutar ese código (ver la captura 5) dice que está todo instalado (y que ya lo estaba).
*** Seguimos (2)…
Yo qué sé… tengo un proyecto que funciona (mal, pero funciona con mi propio código), pero no consigo que los nuevos proyectos tengan el código que yo quiera (que de eso se trata, ¿no?).
Bueno, ahora sí, si lo soluciono, y sé/recuerdo cómo lo he solucionado, lo pondré aquí o en un post nuevo…
Solo me queda añadir una nueva página y ahí escribir el nuevo código…
Actualizado el 1 de noviembre de 2021.
Pues resulta que he conseguido crear un nuevo proyecto desde el propio Visual Studio 2022, añadirle código propio y hacer que funcione, y de paso comprobar que eso de los controles Entry falla.
Pero solo he tenido 3 oportunidades, desde la cuarta, ya no funciona… vuelve a salir el error de: The «XamlCTask» task failed unexpectedly.
Y ya… pues casi que lo dejo, hasta ver si es casualidad o es que se puede hacer algo para solucionar ese «dichoso» error.
Lo mandaré a esta gente a ver qué dicen… seguro que a ellos nunca les pasa 😉
¡¡¡Resulta que todo el problema eran las «tildes»!!!
Pues eso… he quitado una tilde que tenía en «número» y ahora funciona bien… jajajaja, como se suele decir: ¡pa mearse y no echar gota!
Es decir, el error de The «XamlCTask» task failed unexpectedly es porque hay caracteres «no normales».
Nos vemos.
Guillermo