web-dev-qa-db-de.com

Datei oder "DocumentFormat.OpenXml" der Assembly konnte nicht geladen werden

Ich bekomme immer wieder diesen Fehler ist VS2013

Could not load file or Assembly 'DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken = 31bf3856ad364e35 'oder eine seiner Abhängigkeiten.

In meiner 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>

Ich habe versucht, Windowsbase und viele andere Dinge einzufügen.

Ich habe suchen und nach einer Lösung suchen. Weiß jeder Körper, wie er diese beheben kann? 

9
SanderDk

Ich hatte dieses Problem, weil auf meinem Computer auf localhost eine neue Version der DLL installiert war und auf dem Server eine alte Version derselben DLL ausgeführt wurde

Ich habe es gerade aktualisiert und alles funktioniert danach gut.

Installieren Sie in Ihrem Fall die DocumentFormat.OpenXml-Version 2.5, die in diesem Microsoft-Link verfügbar ist

9
Lucas

Zum Zeitpunkt der Erstellung dieser Antwort gibt es drei Versionen von Open XML SDK:

Sie haben höchstwahrscheinlich in Ihrem Projekt DLL Version 2.5, die auf Ihrem Computer installiert war, verwiesen.
Um die erforderliche v2.0-Assembly zu erhalten, schlage ich vor, NuGet I zu verwenden.

4
HRKoder

Sie können dieses Beispiel anschauen.

http://www.aspsnippets.com/Artikel/Lösung-ASPNet-GridView-Export-to-Excel-The-file-you-mit-automaten-mit-open-is-in-a-different-format- als von der Dateiendung angegeben-Erweiterung.aspx

Ich lade das Beispiel herunter und importierte das 

  • ClosedXML.dll
  • DocumentFormat.OpenXml.dll

dlls (realted dlls ist bereits im Projekt. Und ich habe sie verwendet). Danach ist mein Fehler verschwunden. Sie können es versuchen. Ich weiß nicht warum. Aber das Wichtigste ist, dass mein Projekt gerade arbeitet.

1
Mahmut EFE

Hatte vor kurzem das gleiche Problem. 

Ich habe ClosedXML in einer Bibliothek referenziert, und wenn ich die Bibliothek in einer Konsolenanwendung verwende, erhalte ich einen Referenzfehler.

Dies liegt daran, dass DocumentFormat.Excel, ExcelNumberFormat und FastMember.Signed nicht in den Ausgabeordner meiner Konsolenanwendung kopiert werden. 

2 Lösungen: 

1) Installieren Sie das closedXML-Nuget-Paket und alle zugehörigen Abhängigkeiten im Client (in diesem Fall das Konsolenanwendungsprojekt). 

2) Damit die DLL kopiert werden kann, müssen Sie sie in der Bibliothek referenzieren. Fügen Sie der Bibliothek die folgende Funktion hinzu und rufen Sie sie vom statischen Konstruktor aus auf: 

    /// <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);
    }
0
Thomas Pfrimmer

Überprüfen Sie die Packages.config-Dateien in allen Ihren Projekten mit dieser Lösung. Sie sollte in allen Projekten innerhalb einer Lösung gleich sein. zu Referenzzwecken

0