c# - 无法加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0

标签 c# .net-core dependency-injection azure-functions

在我的 azure 函数应用项目中,我收到一个程序集未找到运行时错误 Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0。但是,该程序集包含在我从 NuGet 安装的多个包中。
视觉工作室:2019
目标框架:netcoreapp3.1
Azure 函数版本:v3
包含 Microsoft.Extensions.DependencyInjection.Abstractions (5.0.0) 的已安装包:

  • Microsoft.Extensions.Http (5.0.0)
  • Microsoft.Extensions.Logging (5.0.0)
  • Microsoft.Extensions.Logging.EventSource (5.0.0)

  • 错误:
    启动操作期间发生主机错误...
    无法加载文件或程序集“Microsoft.Extensions.DependencyInjection.Abstractions,Version=5.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。
    无效的修复尝试:
    从 NuGet 安装了 Microsoft.Extensions.DependencyInjection.Abstractions (5.0.0),但错误仍然存​​在。
    关注类似问题,Microsoft.Extensions #2931 , 和 StackOverflow question ,我在项目文件中添加了以下内容。
    <PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> 
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>
    
    我也关注了 article suggestion .安装 Microsoft.Azure.Functions.Extensions 后,错误仍然存​​在。
    我也关注了 another suggestion ,并将以下内容添加到我的项目文件中。但是,错误仍然存​​在。
    <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> 
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" 
    publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="5.0.0.0" 
    newVersion="5.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>
    
    我尝试了问题 #401 of ASP.NET Core Announcements 中建议的解决方法: 引用未能在我的应用程序中显式加载的程序集的包。但是,错误仍然存​​在。
    使用 ILSpy,我发现我从 NuGet 安装的 Microsoft.Azure.Functions.Extensions 引用了 Microsoft.Extensions.DependencyInjection.Abstractions,版本 2.1.0.0。

    最佳答案

    Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0 - 看起来您指的是一些用于 的父 nuget 包.net 5 这取决于这个。在撰写本文时,Azure Function 尚不支持 .net 5 (因此很有可能从强制 v5 nuget 引用中看到这样的问题,因为函数主机的工作方式与常规的 asp.net 核心应用程序略有不同)更新:现在支持 .跟踪 this以备将来更新。因此,在需要时,请仅使用任何相关 nuget 的 3.1.x 最新版本(还不是 5),例如 Microsoft.Extensions.*Microsoft.AspNetCore.* .
    注意理想情况下,除非您需要做一些特殊的事情,否则您不应在 Function 中明确要求任何这些包。

    关于c# - 无法加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions, Version=5.0.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64972721/

    相关文章:

    c# - 在 ASP.Net Web API Controller 中如何找到用户名?

    c# - 正则表达式 - 如果开始标签不存在,则匹配结束 html 标签

    java - 是否有可能以及如何在 Spring 进行辅助注入(inject)?

    php - 交响乐团 3 : can't overwrite repository

    c# - 如何将 Enumerable.ToList<>() 反序列化为 List<>

    c# - 迁移到 .NET Core 6 后 Blazor PageTitle 标签不起作用

    c# - 使用网络凭据在运行时更新 HttpMessageHandler 或创建类型化 HttpClient

    c# - 从 .Net Core 2.1 使用 WCF 服务器时出错,但在 .NET 上没问题

    php - Slim 3 框架 : mysql instance good practice

    c# - 跟踪生产中的 asp.net 网站