【问题标题】:Function app in Azure could not load file or assembly 'Microsoft.Extensions.Logging.Abstractions'Azure 中的函数应用无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions”
【发布时间】:2021-04-30 14:34:44
【问题描述】:

嘿嘿,

我们最近将所有项目从 .NET Core 3.0 升级到 3.1,以及大多数相关的 NuGet 包。这些项目本身作为服务和功能应用托管在 portal.azure.com 上,并通过 Bitbucket 存储库进行传输(从开发中推送,由 Azure 自动下拉)。

这对三分之二的服务非常有效,但最后一项被证明是困难的。该服务本身运行良好,并且它(似乎)在通过 localhost 测试它时正在做它应该做的事情,但相关的 Function-app 正在抛出“System.Private.CoreLib:无法加载文件或程序集'Microsoft.Extensions.Logging。抽象,版本=5.0.0.0>'。系统找不到指定的文件。”在我们这里。

经过一番调查,根据我们的 NuGet 管理器,似乎根本没有安装 Microsoft.Extensions.Logging.Abstractions 包,但代码中 ILogger 仍在使用它(对此的解释非常欢迎)。尽管如此,我们还是强制降级到 Microsoft.Extensions.Logging.Abstractions 版本 3.1.10,在部署之前通过 localhost 测试了应用程序,这次我们得到了完全相同的错误消息,在 Program.cs 中抛出。即使我们尝试将其推高,猜测这也不会使事情变得更好。

函数应用的目标版本是~3(只有~3~1可用,~2不可用),在此之前它已经工作了。 AzureFunctionVersion(在项目的配置文件中可用)是v3。在 Portal 上重新创建功能应用似乎没有任何区别。

【问题讨论】:

  • 过去两周我每天都在回答这个问题。还没有答案。请参阅:stackoverflow.com/questions/67316994/…
  • 我们今天遇到了同样的问题,但是明确地使用 3.1.14 而不是 5.0.0 的依赖为我们解决了问题。 Azure Functions 经常发生这种情况:github.com/Azure/Azure-Functions/issues/1729
  • @AlexAIT 尝试使用其他解决方案进行试验,并将某些软件包降级到 3.1.14 似乎已经成功了。现在貌似没有找到 System.ComponentModel.Annotations 5.0.0.0,但至少是进步

标签: c# azure


【解决方案1】:

当一个 Nuget 包版本在内部被不同的 nuget 包使用并且至少与其中一个不兼容时,通常会发生这种情况。

这意味着,您的项目中有一个 Nuget 包需要 Microsoft.Extensions.Logging.Abstractions 版本 5.0.0.0,但 Azure Function 最新版本目前安装版本 2.1.1

所以,解决方案是升级Microsoft.Extensions.Logging.Abstractions版本到5.0.0.0,因为SDK支持>2.1.1

降级依赖的 nuget 包,使其使用 2.1.1(或您项目中安装的任何版本)

【讨论】:

  • 所以,选项 1 是在开发环境中安装 Microsoft.Azure.WebJobs 3.0.27 和 Microsoft.NET.Sdk.Functions 3.0.11,推起来,它应该可以工作就是你的'在说什么?还是我在这里误会了什么?
  • 不,正如我上面所说,将 Microsoft.Extensions.Logging.Abstractions 升级到 5.0.0,因为它被另一个 nuget 包(SDK 除外)使用
  • 这有帮助吗?
  • 完全理解您的回复。在将任何事情标记为已解决之前,我想让它工作到 100%,但很有可能你的答案是“那个”
  • 我们现在已经启动并运行了该服务。解决方案是(很大程度上基于您和其他人的建议)将一些软件包降级到 3.1.14,并实际确保安装了所有必需的软件包。我们还必须在 Visual Studio 中安装 ApplicationInsights 连接服务。
猜你喜欢
  • 2020-02-18
  • 1970-01-01
  • 2018-10-13
  • 2018-11-29
  • 1970-01-01
  • 2018-09-10
  • 2020-11-01
  • 2018-09-12
  • 1970-01-01
相关资源
最近更新 更多