来自DocumentFormat.openxml的汇编负载错误



我使用Microsoft ClosedXmlDocumentFormat.OpenXml Nuget Utility软件包获取错误。在更新这些Nuget软件包(从2.7.2到版本2.8.1(之后,我现在得到此例外:

异常系统.io.fileleloadexception:无法加载文件或汇编 'documentformat.openxml,版本= 2.7.2.0,culture =中性, publicKeyToken = 8FB06CB64D019A17'或其依赖项之一。这 位于汇编的清单定义与组件不匹配 参考。(Hresult的例外:0x80131040(

当我查看解决方案项目中的相关组件时,它引用了正确的版本(2.8.1(。查看Nuget软件包管理器,没有对旧2.7.2版本的参考(4个项目有对新版本-2.8.1的引用(。我在任何项目2.7.2的项目引用中都没有提及。执行应用程序文件夹中的文件也是正确的文件(2.8.1((通过查看项目属性窗口的详细信息选项卡(。在我的解决方案中,该对旧版本编号(显然是导致此例外(的参考可能在哪里?

附加信息:我已经在应用程序目录中的所有文件(包括二进制文件(上完成了grep,该文件正在执行(包括子目录(,并且找不到字符串2.7.2

另外,当我在Visual Studio中进行调试时,它可以使用而不会引发例外。但是,当我在部署的构建文件夹中运行它时,我会得到fileloadexception。

我只是击中了相同的问题-Chintxml 0.94.0,使用documentFormat.openxml 2.10.0。
在Dev Machine上工作正常,当部署到服务器时,无法找到正确的汇编。我正在使用.NET 4.7.2
尝试了不同的事情,直到我添加绑定重定向从2.7.2到2.10.0

软件包是故障的。我升级到最近出现的2.10.0,与表现不匹配有关的所有问题都消失了。

使用documentformat.openxml.dll的nuget软件包版本2.10.0 Microsoft的最后一个稳定性意味着构建输出仅包含document.openxml.dll是在运行时所需的正确版本,并且不再需要文件document format.openxml.a.b.c.dll-请确保删除它。

2.10.0仍然支持.NET框架的较旧版本,并通过了所有测试,在我的情况下,您的里程可能会有所不同。

我只是简单的解决方法。

  • 删除"参考"中的参考在解决方案资源管理器
  • 通过project->添加参考 - 搜索引起错误的参考名称,选择并添加。

它像魅力一样为我解决。

最新更新