Я продолжаю получать эту ошибку VS2013
Could not load file or assembly 'DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neut
ral, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей.
В моем web.config
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="hjkom_med_web_udvConnectionString" connectionString="Data Source=M95;Initial Catalog=hjkom-med_web;Persist Security Info=True;User ID=HJkom-MED_web;Password=bvkeB7hh" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
**<add assembly="DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>**
</assemblies></compilation>
</system.web>
</configuration>
Я попытался вставить windowsbase и многое другое.
У меня есть поиск и поиск решения, а кто-нибудь знает, как его исправить?
У меня была эта проблема, потому что у меня была установлена новая версия .dll на моем компьютере, запущенном на localhost, и на моем сервере была запущена старая версия той же DLL
Я только что обновил его, и после этого все хорошо работает.
В вашем случае установите версию DocumentFormat.OpenXml версии 2.5, доступную в этой ссылке Microsoft
Во время написания этого ответа есть 3 версии Open XML SDK:
Скорее всего, вы указали в своей DLL версии проекта, которая была установлена на вашем компьютере.
Чтобы получить требуемую сборку v2.0, я предлагаю вам использовать NuGet I, указанный выше.
Вы можете посмотреть этот пример.
Загрузите пример и я импортировал
dlls (реальные dlls уже в проекте, и я использовал их). После этого моя ошибка исчезла. Вы можете попробовать. Я не знаю, почему. Но важно, что мой проект работает прямо сейчас.
Была такая же проблема в последнее время.
Я ссылаюсь на ClosedXML в библиотеке, и когда я использую библиотеку в консольном приложении, я получаю ошибку отсутствующей ссылки.
Это связано с тем, что DocumentFormat.Excel, ExcelNumberFormat и FastMember.Signed не копируются в выходную папку моего консольного приложения.
2 решения:
1) установить пакет закрытого XML nuget и все его зависимости в клиенте (проект консольного приложения в данном случае).
2) Чтобы скопировать dll, вы должны ссылаться на них в библиотеке. Добавьте в библиотеку следующую функцию и вызовите ее из статического конструктора:
/// <summary>
/// This code is here to embeed the following libraries :
/// - DocumentFormat.Excel
/// - ExcelNumberFormat
/// - FastMember.Signed
/// </summary>
private static void EmbeedNeededLibraries()
{
Action<Type> noop = _ => { };
var lib1 = typeof(DocumentFormat.OpenXml.OpenXmlAttribute);
var lib2 = typeof(ExcelNumberFormat.NumberFormat);
var lib3 = typeof(FastMember.ObjectAccessor);
noop(lib1);
noop(lib2);
noop(lib3);
}
Проверьте файлы Packages.config во всех ваших проектах в этом решении. Оно должно быть одинаковым во всех проектах внутри решения. для справки