Error depurando una Azure Function de .NET Core 3
El pasado 4 de Noviembre, Microsoft anunció la versión preliminar del soporte de .NET Core 3 en Azure Functions.
Encontrarás más información en este enlace y en este otro enlace.
Pongámonos en el caso de que partes de tener instalado correctamente .NET Core 3.0 SDK y Visual Studio 2019 actualizado a su última versión.
Inicia un nuevo proyecto de Azure Functions.
Asegúrate que tienes la versión de .NET Core correcta y modifica el proyecto de forma correcta en su caso.
Esto lo lograremos modificando de esta forma parte del fichero de proyecto de nuestra Azure Function:
<TargetFramework>netcoreapp3.0</TargetFramework> <AzureFunctionsVersion>v3-preview</AzureFunctionsVersion>
De igual forma, deberemos indicar dentro del proyecto el paquete NuGet correcto de Microsoft.NET.Sdk.Functions.
En el momento de escribir esta entrada, el paquete que he utilizado es la versión 3.0.0-preview2, con lo que en el fichero del proyecto debería indicar lo siguiente:
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.0-preview2" />
Si has seguido correctamente todo lo anterior, al ejecutar el proyecto es posible que Visual Studio 2019 te devuelva un error al depurar nuestra Azure Function.
El mensaje de error que te devolverá será similar a:
There is no functions runtime available that matches the version specified in the project
Hasta que no esté definitivamente todo el paquete de desarrollo de Azure Functions con .NET Core 3.0 completo (no en modo preview como está actualmente), deberemos hacer un workaround que más o menos funciona.
Lo primero a tener en cuenta es que deberemos instalar Azure Functions Core Tools.
En mi caso, he abierto una línea de comandos y he ejecutado el comando:
npm install -g azure-functions-core-tools
Nota: deberás tener instalado npm en tu entorno
npm instalará Azure Functions Core Tools en el path:
C:\Users\<USER>\AppData\Local\AzureFunctionsTools\Releases\<VERSION>\
Dónde <USER> es el usuario nuestro en la máquina local, y <VERSION> la versión de Azure Functions Core Tools instalada o que queremos utilizar.
Una vez hecho esto, iremos a las propiedades de nuestra Azure Function y seleccionaremos la solapa Debug.
Seleccionaremos la opción Launch y elegiremos Executable.
En Executable agregaremos el path del CLI (func.exe) de nuestra Azure Function Core Tools, por ejemplo:
C:\Users\<USER>\AppData\Local\AzureFunctionsTools\Releases\2.43.0\cli\func.exe
En Application arguments indicaremos start como argumento a utilizar en el CLI.
Guardaremos los cambios y pulsaremos F5 para probar nuestra Azure Function.
Ahora, nuestra Azure Function debería ejecutarse en modo Debug sin problemas.
Happy Coding!