Azure Function fails to bind ILogger

For me, the problem was that I needed to explicitly declare the Azure Functions Version in my .csproj file.

I added <AzureFunctionsVersion>v2</AzureFunctionsVersion> after the <TargetFramework> element:

<PropertyGroup>
   <TargetFramework>netstandard2.0</TargetFramework>
   <AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>

Hope that helps someone :-)


I was somehow also having the same error, but it was the package version for Microsoft.EntityFrameworkCore.SqlServer what is causing the issue.

Downgrading Microsoft.EntityFrameworkCore.SqlServer v2.2.0 to v2.1.4 did the trick.

I assume that there is a version mismatch between logging.abstractions libraries for this package.


What is probably happening is that the SDK is binding to version X of the ILogger assembly and your user code is binding to version Y. The binding engine then doesn't recognize your parameter's type as being the same since they're from different assemblies. (this can happen with any other type too).

Generally the fix is to:

  1. See the nugget references used by the SDK
  2. Use those existing references and don't add the same dll with a different version.