无法加载文件或程序集' DocumentFormat.OpenXml - 再次

时间:2018-05-08 16:40:07

标签: vb.net closedxml

似乎这个问题非常受欢迎,而且我已经阅读了近十几个类似的问题,但都提供了相同的解决方案(安装和参考DocumentFormat.OpenXml 2.5),我已经这样做了,它还没有用。

我正在使用Visual Studio 2012,在我的项目中引用ClosedXML版本0.93及其依赖DocumentFormat.OpenXML版本2.5。两个.dll文件都存储在我项目的.exe文件旁边。 Visual Studio似乎看到了这些引用:

enter image description here

在我的代码顶部,我也有:

Imports DocumentFormat.OpenXml
Imports ClosedXML

但是,当我调用一个简单的测试代码时,

Dim workbook = New ClosedXML.Excel.XLWorkbook()
Dim worksheet = workbook.Worksheets.Add("Sample Sheet")
worksheet.Cell("A1").Value = "Hello World!"
workbook.SaveAs("HelloWorld.xlsx")

我收到错误,说:

  

未处理的类型' System.IO.FileLoadException'发生了   在System.Windows.Forms.dll

中      

其他信息:无法加载文件或程序集   ' DocumentFormat.OpenXml,Version = 2.7.2.0,Culture = neutral,   公钥= 8fb06cb64d019a17'或其中一个依赖项。该   定位程序集的清单定义与程序集不匹配   参考。 (HRESULT异常:0x80131040)

我不知道为什么会出现这种错误。如果我写DocumentFormat.OpenXml。在我的代码中,我得到了该库中建议函数的列表,因此必须正确加载引用。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您是否注意到在屏幕截图中您在OpenXml程序集的引用中使用的是2.5版,但是异常消息引用了较新的2.7.2?那可能是你的问题。可能是你引用了2.5,但是“ClosedXML”期望2.7.2,当它没有找到它时会抛出一个错误?

我会得到2.7.2,更新您的参考,然后看看是否有效。