.net core Azure Functions v3应用程序导入.NET Core 3.1项目时出现问题

.net core Azure Functions v3应用程序导入.NET Core 3.1项目时出现问题,.net-core,azure-functions,asp.net-core-3.1,.net Core,Azure Functions,Asp.net Core 3.1,我在本地构建了一个.NET Core 3.1 Azure Functions应用程序,并试图将.NET Core 3.1类库导入Functions项目,但当我这样做时,在运行该应用程序时出现以下错误: Microsoft.Azure.Functions.Extensions:找不到方法:“Microsoft.Extensions.Configuration.IConfigurationBuilder Microsoft.Azure.WebJobs.Hosting.IWebJobsConfigur

我在本地构建了一个.NET Core 3.1 Azure Functions应用程序,并试图将.NET Core 3.1类库导入Functions项目,但当我这样做时,在运行该应用程序时出现以下错误:

Microsoft.Azure.Functions.Extensions:找不到方法:“Microsoft.Extensions.Configuration.IConfigurationBuilder Microsoft.Azure.WebJobs.Hosting.IWebJobsConfigurationBuilder.get_ConfigurationBuilder()”。值不能为null。(参数“provider”)

我正在功能项目中使用ConfigurationBuilder:

var config = new ConfigurationBuilder()
    .SetBasePath(context.FunctionAppDirectory)
    .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables()
    .Build();
然后,我还在我的库中的服务中使用配置:

public MyService(IConfiguration configuration)
{
    _configuration = configuration;
}
在我的Functions项目中,我添加了对Microsoft.Extensions.Configuration的引用,因为错误表明它找不到ConfigurationBuilder定义

我可以导入一个.NET标准2.0项目,没有任何错误。我听说Azure Funciton V3与.NET核心3.1类库兼容。我曾尝试过降级Microsoft.Azure.Functions.Extensions,并尝试过使用软件包版本,但没有任何效果


我在功能项目中所做的配置是否与.NET核心库不兼容?为什么会出现此错误。

如果您没有特殊需要,建议您不要使用自定义文件来存储设置。在azure function v2和v3中,
local.settings.json
的值部分中的设置将被读取为环境变量(因此我认为不需要使用自定义文件来存储设置)。只需使用
Environment.GetEnvironmentVariables()
即可获得该值。通常,我们只使用
local.settings.json
进行本地开发,在azure portal上我们使用配置设置:

您可以在Visual Studio部署期间快速添加:


因此,我完全删除了对环境变量的检索和对ConfigurationBuilder的使用,但仍然出现了错误。我还尝试删除有问题的库,创建一个空白的.NET Core 3.1类库,并作为依赖项导入,结果显示错误。我查看并尝试更改版本,但运气不佳。我发现了部分问题。我在为我的startup类扩展FunctionsStartup,而不是WebJobStartup。当我切换到WebStart时,我的项目被导入。然而,另一个问题出现了。我无法读取http触发器的请求头。我提出了一个新问题。如果你有任何建议,请告诉我。