无法加载文件或程序集'Microsoft.Extensions.Logging.Abstractions'

18

我正在部署一个函数,能够成功地从 Visual Studio 中构建和发布到 V2 函数应用程序中,但是在 Azure 门户中,我看到了以下消息。我已经添加了必要的包,但仍然没有用。是否有人遇到过这个错误并有任何反馈。Visual Studio 的输出窗口中也没有错误。

如果我删除这个抽象版本,那么它会说找不到版本为 3.1.5 的文件。当我添加版本 3.1.5 时,它又说找不到文件。不知道出了什么问题。在 GitHub 上有一些讨论,但该主题现在已经关闭,没有太多信息。

谢谢

System.Private.CoreLib: 无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = adb97829ddae60”。系统无法找到指定的文件。System.Private.CoreLib: 未能加载指定的文件。


随着 .NET 5 的发布,这个问题开始变得越来越普遍。以下是文档中的参考链接 - https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnetcore#extensions-package-reference-changes-affecting-some-nuget-packages。它还记录了推荐的操作。 - Gary Chan
5个回答

20

我刚遇到了一个类似的问题。对我来说,问题是我使用了带有Version="5.0.0"Microsoft.Extensions.xxx包,但我的目标框架是netcoreapp3.1

将所引用的扩展包版本更改为与我的目标框架相同即可解决错误。

例如:

更改为:

<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0" />

收件人:

<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.10" />

真正的问题在于我运行了dotnet add package Microsoft.Extensions.xxx,但没有指定版本,因此它只添加了最新可用的版本。


2
GitHub问题:https://github.com/Azure/azure-functions-core-tools/issues/2304 正如评论中提到的那样,有趣的是5.0.0包声称支持.NET Standard 2.0,但实际上并不能工作。 - Kim
感谢您的解决方案,问题已解决。 - codebrane

2

我通过更改函数运行时版本来解决了这个问题。它原本设置为 ~2 ,我将其更改为 ~3 ,这样错误就消失了。

您可以在“函数应用程序 -> 配置 -> 函数运行时”中进行更改。


1

我也遇到了这个问题,将版本更改为2.1.1后,它对我起作用。


0

卸载项目并编辑/更改sdk函数版本。 在我的情况下,我更改为最新版本:

示例:

<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.1" />

0
我通过安装NuGet包解决了这个问题,该包引起了错误Microsoft.Extensions.xxx,然后在.csproj中指定与目标框架相同的包版本,在我的情况下是3.1;然后我将.csproj文件中的xml属性AzureFunctionsVersionv2更改为v3

.csproj


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接