c# - 无法加载文件或程序集 'Microsoft.Data.Edm'

标签 c# .net azure dll

我们使用的是 Windows Azure 存储 NuGet 包版本 4.1.0,它依赖于 Microsoft.Data.OData,并且还添加了该包,其中包含 Microsoft.Data.Edm dll。当我们构建并运行应用程序时,我们偶尔会遇到以下错误:

Could not load file or assembly 'Microsoft.Data.Edm' or one of its dependencies. The
located assembly's manifest definition does not match the assembly reference. (Exception
from HRESULT: 0x80131040)

我们在 web.config 中有以下绑定(bind)重定向,并且还进行了检查,这是解决方案中的任何项目引用的 Microsoft.Data.Edm 的唯一版本。

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
  </dependentAssembly>

有时,当我查看 bin 文件夹时,我发现 Microsoft.Data.Edm 的 dll 版本是 v 5.6.0。我已经完成了所有项目,除了存储客户端之外,我找不到对 Microsoft.Data.Edm 的引用,而这肯定是 5.6.1。

尝试找出 5.6.0 版本来自何处的最佳方法是什么?当我们确实收到此错误时,我们删除 bin 和 obj 文件夹并重建,然后它工作正常,5.6.1 版本就在那里,一切正常,但最终它再次发生。

编辑:

我们已再次从 NuGet 升级到所有最新版本,但仍然没有成功,我运行了一个显示以下依赖项的工具:

Possible conflicts for Microsoft.Data.Edm:

Microsoft.Data.OData      references Microsoft.Data.Edm, Version=5.6.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.Data.Services.Client references Microsoft.Data.Edm, Version=5.6.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.WindowsAzure.Storage references Microsoft.Data.Edm, Version=5.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Possible conflicts for Microsoft.Data.OData:

Microsoft.Data.Services.Client references Microsoft.Data.OData, Version=5.6.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.WindowsAzure.Storage references Microsoft.Data.OData, Version=5.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

我不明白的是,我们设置了应用程序绑定(bind)重定向,但有时会复制 2.6.0 版本,有时会复制 2.6.2。有谁知道为什么会发生这种情况,以前从未遇到过这个问题。

最佳答案

我收到了相同的错误消息,但我的问题与任何 Azure 产品无关。就我而言,我将 OData 从版本 3 更新到版本 4,在我看来,Nuget 留下了已弃用的 dll 的绑定(bind)重定向。实际上一共有三个:Microsoft.Data.Edm、Microsoft.Data.OData 和 System.Spatial。

我的解决方案是删除已弃用的绑定(bind)重定向。如果您的构建过程不这样做,您还应该删除 bin 文件夹中的旧 dll。

关于c# - 无法加载文件或程序集 'Microsoft.Data.Edm',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25175525/

相关文章:

c# - 命令行解析器库 - bool 参数

c# - 为什么 ShowDialog 在我的 TextBox 中选择文本?

azure - 如何在 Azure PaaS 上的 Tomcat 中扩展 ErrorReportValve?

c# - Gridview PageIndex 在 page_Load 事件上未更改

C# 如何在命令行应用程序中接收系统关闭或退出事件

.net - Google Chrome浏览器在哪里存储我的主页?

javascript - 从node.js将文件上传到Azure后如何获取blob URL

c# - Azure webJob 中使用 ILogger 进行 DI

c# - 如何在嵌套字典上实现 IEnumerable<T>?

c# - 学习 C#、ASP.NET 3.5 - 我应该按照什么顺序学习/跳过什么?