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

部署至Azure报错:无法加载Microsoft.Extensions.Logging.Abstractions程序集

.NET 7 Azure部署出现Microsoft.Extensions.Logging.Abstractions加载失败异常

运行在Azure上的应用已升级至.NET 7,此前部署均正常。昨日未修改或添加依赖的情况下部署应用,出现如下异常:

System.IO.FileNotFoundException: 无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”。系统找不到指定的文件。文件名:“Microsoft.Extensions.Logging.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60” at Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions.AddLogging(IServiceCollection services, Action`1 configure) at

该项目本地启动无报错,已确认Azure上的wwwroot文件夹中存在该dll。

已尝试的解决方案:

  • 添加缺失的.dll文件
  • 删除.vs、bin和obj文件夹后重新构建部署
  • 参考相关方案调整依赖版本

更新:已按照建议在.csproj和web.config中添加如下配置,但问题仍未解决:

.csproj配置

<ItemGroup>
    <Content Include="packages\microsoft.extensions.logging.abstractions\7.0.0\.signature.p7s" />
    <Content Include="packages\microsoft.extensions.logging.abstractions\7.0.0\microsoft.extensions.logging.abstractions.7.0.0.nupkg" />
    <Reference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" Culture="neutral" PublicKeyToken="adb9793829ddae60" processorArchitecture="MSIL">
        <HintPath>packages\microsoft.extensions.logging.abstractions\7.0.0\lib\net7.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
    </Reference>
</ItemGroup>

web.config配置

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

请问还有什么遗漏的操作可以尝试?


可尝试的额外解决方案

  1. 检查Azure应用服务的.NET版本设置
    登录Azure门户,进入对应应用服务的「配置」-「常规设置」,确认.NET版本设置为.NET 7 (STS),避免平台运行版本与应用目标版本不匹配。

  2. 修改.csproj的依赖引用方式
    移除手动添加的Reference节点,改用NuGet包引用的方式:

    <ItemGroup>
      <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />
    </ItemGroup>
    

    手动引用本地dll易出现路径或版本匹配问题,NuGet会自动处理依赖复制和版本一致性。

  3. 启用Azure应用服务的详细日志
    在Azure门户开启「应用服务日志」,设置日志级别为Verbose,部署后查看详细加载失败日志,确认是否存在版本冲突、权限问题或dll未被正确部署到运行目录(wwwroot可能不是应用实际运行目录)。

  4. 清理Azure部署缓存
    在Azure应用服务的「高级工具」-「Kudu」中,进入Site/wwwroot目录,手动删除bin和obj文件夹后重新部署;或在部署中心设置「清除目标目录」选项,确保每次部署为干净文件。

  5. 检查项目的发布配置
    右键项目选择「发布」,查看发布配置文件的「文件发布选项」,确认勾选「在发布前删除目标中的所有现有文件」,避免旧版本dll残留导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:30:35