【发布时间】: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,但至少是进步