C# Azure中的函数应用程序无法加载文件或程序集';Microsoft.Extensions.Logging.Abstractions';

C# Azure中的函数应用程序无法加载文件或程序集';Microsoft.Extensions.Logging.Abstractions';,c#,azure,C#,Azure,海亚 我们最近完成了所有项目的升级,从.NETCore3.0升级到3.1,以及大部分相关的NuGet软件包。项目本身作为服务和功能应用程序托管在portal.azure.com上,并通过Bitbucket存储库进行传输(从开发中推高,由azure自动拉低) 这对三分之二的服务来说非常有效,但最后一个服务被证明是困难的。该服务本身工作正常,在通过localhost对其进行测试时(似乎)正在做它应该做的事情,但相关的函数应用程序抛出“System.Private.CoreLib:无法加载文件或程序集

海亚

我们最近完成了所有项目的升级,从.NETCore3.0升级到3.1,以及大部分相关的NuGet软件包。项目本身作为服务和功能应用程序托管在portal.azure.com上,并通过Bitbucket存储库进行传输(从开发中推高,由azure自动拉低)

这对三分之二的服务来说非常有效,但最后一个服务被证明是困难的。该服务本身工作正常,在通过localhost对其进行测试时(似乎)正在做它应该做的事情,但相关的函数应用程序抛出“System.Private.CoreLib:无法加载文件或程序集'Microsoft.Extensions.Logging.Abstractions,Version=5.0.0.0>”。系统无法找到指定的文件

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

功能应用程序的目标版本是
~3
(只有
~3
~1
可用,而不是
~2
),在此之前它已经运行过。AzureFunctionVersion(在项目的配置文件中提供)是
v3
。在门户上重新创建函数应用程序似乎没有任何区别。

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

这意味着,您的项目中有一个Nuget软件包,它需要Microsoft.Extensions.Logging.Abstractsversion
5.0.0
,但Azure Function最新版本现在安装的是version
2.1.1

因此,解决方案是将Microsoft.Extensions.Logging.Abstractions升级到
5.0.0.0
,因为SDK支持
2.1.1


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

在过去两周内,我每天都在回答这个问题。还没有答案。请看:我们今天也遇到了同样的问题,但是明确地使用了3.1.14而不是依赖关系的5.0.0为我们解决了一些问题。这种情况经常发生在Azure函数中:@AlexAIT尝试了其他解决方案,并且将一些包降级到3.1.14似乎成功了。现在似乎找不到System.ComponentModel.Annotations 5.0.0.0,但至少它正在进步。因此,选项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连接服务。