You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 Azure Function自定义启动类配置构建失败求助

.NET 8 Azure Functions自定义Startup类加载程序集错误

我在使用.NET 8版本的Azure Function,按照微软官方文档实现了自定义Startup类,代码如下:

using System;
using System.IO;
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System.Xml.Linq;

[assembly: FunctionsStartup(typeof(Startup))]

namespace Function;

public class Startup : FunctionsStartup
{
    private IConfiguration Configuration { get; set; }

    public override void Configure(IFunctionsHostBuilder builder)
    {
        builder.Services.AddHttpClient();
    }

    public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
    {
        var context = builder.GetContext();

        builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "function.json"), optional: true, reloadOnChange: false)
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"function.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false)
            .AddEnvironmentVariables();
    }
}

运行函数时出现以下错误:

Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation '2fff8edb-0e76-4789-b51b-bdcbea0ad107'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Value cannot be null. (Parameter 'provider')
Press any key to continue....[2023-12-20T21:35:26.832Z] Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation 'e8145c61-4903-402b-b164-3f9c3866817e'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation '7b68f1b4-7d74-4221-afe2-13ec1ab77ef7'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation '9c04f584-294b-4f01-9c70-ba1df345ce13'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation '2f294885-00a4-46a1-b4f8-5cb7c55ac9b0'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation '0b2168d4-efdc-4cdc-8100-2575c5b0a77a'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Error building configuration in an external startup class.
Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
A host error has occurred during startup operation 'd2ba0a10-bbe7-4dea-a11d-ca64de26ea84'.
Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. Function: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.

我的项目包引用如下:

<PackageReference Include="Microsoft.Azure.AppConfiguration.Functions.Worker" Version="7.0.0" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Abstractions" Version="1.3.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues" Version="5.2.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.2.2" />
<PackageReference Include="Microsoft.Extensions.Azure" Version="1.7.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.2.0" />

host.json配置:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      },
      "enableLiveMetricsFilters": true
    }
  }
}

我查阅了相关问题但未找到解决方案,希望得到帮助。


解决方案建议

1. 升级核心SDK包版本

Microsoft.NET.Sdk.Functions 4.2.0版本默认依赖.NET 6/7相关的扩展包,和你手动引用的.NET 8版本包存在兼容性冲突。建议升级到兼容.NET 8的最新稳定版本(如4.3.0及以上),它会自动管理依赖的Microsoft.Extensions系列包版本:

<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.3.0" />

2. 移除手动引用的冲突包

升级核心SDK后,删除所有手动添加的Microsoft.Extensions.Configuration.*、Microsoft.Extensions.Http、Microsoft.Extensions.Logging.*等包引用,这些依赖会由Microsoft.NET.Sdk.Functions自动引入匹配版本,避免版本不一致问题。

3. 清理并重建项目

  • 删除项目目录下的bin和obj文件夹
  • 执行命令:dotnet clean && dotnet restore
  • 重新生成并运行项目

4. 确认目标框架设置

检查项目文件(.csproj)中目标框架是否为net8.0:

<TargetFramework>net8.0</TargetFramework>

5. 添加程序集绑定重定向(可选)

如果升级后仍存在加载问题,可添加app.config文件配置绑定重定向:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

内容的提问来源于stack exchange,提问作者Saeid Mirzaei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:19:51