web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'DocumentFormat.OpenXml

Je continue à avoir cette erreur est VS2013

Could not load file or Assembly 'DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken = 31bf3856ad364e35 'ou l'une de ses dépendances.

Dans mon 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>

J'ai essayé d'insérer windowsbase et beaucoup d'autres choses.

J'ai une recherche et une recherche de solution, est-ce qu'un organisme sait comment y remédier? 

9
SanderDk

J'ai eu ce problème parce qu'une nouvelle version du fichier .dll était installée sur mon ordinateur et qu'elle fonctionnait sur localhost et que mon serveur exécutait une ancienne version du même fichier .dll

Je viens de le mettre à jour et tout fonctionne bien après cela.

Dans votre cas, installez DocumentFormat.OpenXml version 2.5 disponible dans ce lien Microsoft

9
Lucas

Au moment de la rédaction de cette réponse, il existe 3 versions de Open XML SDK:

Vous avez probablement référencé dans votre projet DLL version 2.5 qui a été installée sur votre ordinateur.
Pour obtenir l'assembly v2.0 requis, je vous suggère d'utiliser NuGet I fourni ci-dessus.

4
HRKoder

Vous pouvez regarder cet exemple.

http://www.aspsnippets.com/Articles/Solution-ASPNet-GridView-Export-to-Excel-The-file-you-are-trying-to-open-is-en-different-format- que-spécifié-par-le-fichier-extension.aspx

Je télécharge l'exemple et j'ai importé le 

  • ClosedXML.dll
  • DocumentFormat.OpenXml.dll

dlls (dll realted est déjà en projet. Et je les ai utilisés). Après cela mon erreur est partie. Vous pouvez essayer .. Je ne sais pas pourquoi. Mais l'important est que mon projet fonctionne en ce moment ..

1
Mahmut EFE

A eu le même problème récemment. 

J'ai ClosedXML référencé dans une bibliothèque et lorsque j'utilise la bibliothèque dans une application console, l'erreur de référence est manquante.

En effet, les documents DocumentFormat.Excel, ExcelNumberFormat et FastMember.Signed ne sont pas copiés dans le dossier de sortie de mon application console. 

2 solutions: 

1) installez le paquet nuget closedXML et toutes ses dépendances dans le client (projet d’application console dans ce cas). 

2) Pour que les dll soient copiées, vous devez les référencer dans la bibliothèque . Ajoutez la fonction suivante à la bibliothèque et appelez-la à partir du constructeur statique: 

    /// <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

Vérifiez dans les fichiers Packages.config, dans tous vos projets avec cette solution. Il devrait être identique dans tous les projets d'une solution. pour référence

0
Derangula Suresh