【问题标题】:Microsoft.Extensions.Configuration, Version=2.1.1.0 - exception could not load file or assemblyMicrosoft.Extensions.Configuration,Version=2.1.1.0 - 异常无法加载文件或程序集
【发布时间】:2018-07-31 13:37:28
【问题描述】:

背景:我为依赖于 Microsoft.Extensions.Configuration, Version=2.1.1.0 的类库开发了一个 .NET Standard 2.0 Nuget 包(本地)。当从 .NET Core 2.0 控制台应用程序调用时,它通过了单元测试并且运行良好。但是,当我将包添加到 Azure Function 项目时,每当我尝试从 VS2017 调试器运行 azure 函数时都会引发异常。

  • System.Private.CoreLib:无法加载文件或程序集“Microsoft.Extensions.Configuration, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60

问题:我该如何解决这个问题?

【问题讨论】:

  • 2.1.1 需要 .NET Core 2.1,因此如果 Azure Functions 尚不支持该功能,这将解释问题及其在本地工作的原因(假设您已安装 2.1.3xx SDK)。
  • 考虑编辑您的帖子以包含一个问题并将您的发现/解决方案作为答案发布。
  • 为 Microsoft.Extensions.Configuration v2.1.1 提供的依赖项是 .NETStandard、version=v2.0 和 Microsoft.Extensions.Configuration.Abstractions (>= 2.1.1)。但是,您可能是对的,原因与缺乏 Core 2.1 支持有关。如果我的 Azure Function 项目不支持我添加的包的依赖项,包管理器不应该报告吗?
  • 我现在添加了一个 wiki 答案,并从您的问题中删除了答案。如果您想添加自己的答案,请告诉我,我将删除我在下面添加的答案。

标签: c# nuget


【解决方案1】:

复制自 OP 问题:

答案:当我降级到 Microsoft.Extensions.Configuration,Version=2.0.0 时问题就消失了。在我的包中,重新发布它,然后在我的 Azure Function 中重新安装它。这似乎是packages-dependency-crisis 的另一个例子。当我的包被添加到 Azure Function 项目时,Nuget 包管理器应该已经发现了 v2.1.1 的任何依赖问题,但它没有,所以它只在运行时变得明显。这是次优的。

我提供上述信息是希望其他人不会浪费一天的时间来追踪同样的问题。它还提出了一个问题,即您如何决定要添加哪个版本的包。显然,在 Microsoft.Extensions.Configuration 的情况下,添加最新的稳定版本并不总是最好的主意。

【讨论】:

    【解决方案2】:

    我知道这是一个较老的问题,但在将项目从 2.2 降级到 2.1 时遇到了同样的问题。并将 ASPNetCore.All 的用户移除到 ASPNetcore.App。这向我展示了我们真正必须依赖多少包,以及这个问题最终出现了。我的错误来自 Usersecrets 检索。因为我失踪了:Microsoft.Extensions.Configuration.UserSecrets

    希望这可以帮助像我这样陷入困境的人。应该知道它会是一个丢失的包。

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 2022-11-11
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      相关资源
      最近更新 更多