似乎这个问题非常受欢迎,而且我已经阅读了近十几个类似的问题,但都提供了相同的解决方案(安装和参考DocumentFormat.OpenXml 2.5),我已经这样做了,它还没有用。
我正在使用Visual Studio 2012,在我的项目中引用ClosedXML版本0.93及其依赖DocumentFormat.OpenXML版本2.5。两个.dll文件都存储在我项目的.exe文件旁边。 Visual Studio似乎看到了这些引用:
在我的代码顶部,我也有:
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。在我的代码中,我得到了该库中建议函数的列表,因此必须正确加载引用。
有人可以帮忙吗?
答案 0 :(得分:2)
您是否注意到在屏幕截图中您在OpenXml程序集的引用中使用的是2.5版,但是异常消息引用了较新的2.7.2?那可能是你的问题。可能是你引用了2.5,但是“ClosedXML”期望2.7.2,当它没有找到它时会抛出一个错误?
我会得到2.7.2,更新您的参考,然后看看是否有效。