Не удалось загрузить файл или сборку 'DocumentFormat.OpenXml - снова - PullRequest
0 голосов
/ 08 мая 2018

Кажется, что эта проблема очень популярна, и я уже прочитал почти дюжину подобных вопросов, но все предлагают одно и то же решение (установите и обратитесь к 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, версия = 2.7.2.0, культура = нейтральная, PublicKeyToken = 8fb06cb64d019a17 'или одна из его зависимостей. определение манифеста расположенной сборки не соответствует сборке ссылка. (Исключение из HRESULT: 0x80131040)

Я в недоумении, почему возникает эта ошибка. Если я напишу DocumentFormat.OpenXml. в моем коде я получаю список предлагаемых функций в этой библиотеке, поэтому ссылки должны быть загружены правильно.

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 08 мая 2018

Вы заметили, что на снимке экрана вы используете версию 2.5 в ссылках для сборки OpenXml, но сообщение об исключении ссылается на более новую версию 2.7.2? Это может быть вашей проблемой. Возможно, вы ссылались на 2.5, но «ClosedXML» ожидает 2.7.2, а когда не находит, выдает ошибку?

Я бы получил 2.7.2, обновил бы вашу ссылку и посмотрел, работает ли она.

...