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

.NET 6 Azure Function运行报错:无法加载指定程序集

解决.NET 6进程内Azure Function无法加载Microsoft.Extensions.Logging.Abstractions 8.0.0.0的问题

问题描述

运行基于.NET 6的进程内HttpTrigger Azure Function时,出现以下错误:

'Function1'函数存在错误:无法加载文件或程序集'Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60',系统找不到指定文件。

用户提供的函数代码为标准HttpTrigger实现:

public static class Function1
{
    [FunctionName("Function1")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");

        string name = req.Query["name"];

        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        dynamic data = JsonConvert.DeserializeObject(requestBody);
        name = name ?? data?.name;

        string responseMessage = string.IsNullOrEmpty(name)
            ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
            : $"Hello, {name}. This HTTP triggered function executed successfully.";

        return new OkObjectResult(responseMessage);
    }
}

问题原因

错误源于依赖包版本不匹配:.NET 6对应的Azure Functions Runtime v4依赖Microsoft.Extensions.Logging.Abstractions的6.x版本,但项目或本地环境中意外引入了8.0.0.0版本,导致运行时无法找到匹配的程序集。

解决方案

  • 修正NuGet包版本
    打开项目的.csproj文件,确保Microsoft.Extensions.Logging.Abstractions的版本与.NET 6对齐(选择6.x系列稳定版本,比如6.0.16)。若存在8.0版本引用,直接替换:

    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.16" />
    
  • 清理并重新还原依赖
    在项目根目录执行以下命令,清理旧缓存并重新还原依赖:

    dotnet clean
    dotnet restore
    

    若使用Visual Studio,可右键项目→选择「清理」,再右键项目→「还原NuGet包」。

  • 检查Azure Functions Core Tools版本
    确保使用的Core Tools版本与.NET 6兼容,推荐使用v4.x稳定版本。执行以下命令查看当前版本:

    func --version
    

    若版本不兼容,卸载后重新安装对应版本的Core Tools。

  • 确认本地.NET SDK环境
    运行以下命令验证是否安装了.NET 6 SDK:

    dotnet --list-sdks
    

    同时检查.csproj文件中的目标框架是否为net6.0:

    <TargetFramework>net6.0</TargetFramework>
    

内容的提问来源于stack exchange,提问作者Prasanjeet Debnath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:35:15