Cómo incluir la referencia de DocumentFormat.OpenXML.dll en Mono2. 10?


Estoy usando C#.net Aplicación de Escritorio de Windows.Quiero ejecutar estas aplicaciones con otra plataforma también. Por lo tanto, estoy usando Mono 2.10 como un compilador cruzado.Mientras se ejecuta,inesperadamente mi aplicación se termina diciendo el mensaje de error como

Error: No se pudo abrir la carpeta seleccionada.
No se pudo cargar un archivo o un formato de documento de ensamblado.OpenXML.dll, version = 2.0.5022.0, culture=neutral, PublicKeyToken = 31bf3856ad364e35' o una de sus dependencias.

No se cual es el problema aquí...He instalado openxml sdk2. 0 en c:\program files \ open xml sdk \ v2\lib\DocumentFormat.OpenXML.DLL.

Y también poner mi aplicación eXe en el mismo lugar para fines de prueba...

Por favor guíame para resolver este problema...

Author: Daniel Hilgarth, 2011-03-10

10 answers

También debe asegurarse de establecer una referencia a WindowsBase. Esto es necesario para utilizar el SDK como maneja System.IO.Packaging (que se utiliza para descomprimir y abrir el comprimido .docx/.xlsx/.pptx como documento OPC).

 20
Author: Todd Main,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-10 17:31:44

Siendo nuevo en esto, esto es lo que hice:

Estoy usando MS Visual Studio 2010 Pro.

  1. Descargue e instale el SDK de OpenXML
  2. Dentro de mi proyecto en Visual Studio, seleccione "Proyecto" y luego "Agregar referencia"
  3. Seleccione la pestaña" Examinar "
  4. En la opción" Buscar: "hacia abajo, navegue hasta: C:\Program Files (x86)\Open XML SDK\V2.0 \ lib y seleccione "DocumentFormat.OpenXML.dll
  5. Hit OK
  6. En el "Explorador de soluciones" (a la derecha para mí), el La carpeta "References" ahora muestra el DocumentFormat.Biblioteca OpenXML.
  7. Haga clic derecho sobre él y seleccione Propiedades
  8. En el panel Propiedades, cambie "Copiar local" a "Verdadero".

Debería estar apagado y funcionando ahora usando las clases DocumentFormat.

 16
Author: Imp1ety,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-03 22:25:22

Seleccione formato de documento.OpenXML en referencias, vea sus propiedades y establezca la opción Copiar local en True para que lo copie en la carpeta de salida. Eso funcionó para mí.

 6
Author: Som,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-06 20:58:05

Vaya al gestor de paquetes Nuget y busque openxml. E instale DocumentFormat.OpenXML

 6
Author: Hrishikesh T T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-05 05:44:49

Lo que funcionó para mí:

  1. Añade una carpeta al proyecto llámalo ThirdParty.
  2. Agregue en la carpeta ThirdParty ambos DocumentFormat.OpenXML.dll y WindowsBase.dll
  3. Asegúrese de que el proyecto utiliza el directorio ThirdParty como referencia para ambas DLL
  4. Compilar y publicar en un servidor externo.
 2
Author: Juliean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-08 07:20:47

Necesita tener DocumentFormat.OpenXML.dll en la misma carpeta que su aplicación - o en la ruta' bin ' si está desarrollando una ASP.NET solicitud. Sin embargo, no estoy seguro de que el SDK de OpenXML sea compatible con sistemas operativos que no sean Windows; es posible que deba buscar una solución de terceros.

Sí, esta respuesta es correcta, la única diferencia es que usted copia su .dll en la carpeta bin del proyecto.

 0
Author: Sean O'Brien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-06 11:46:10

Después de ver y cambiar las propiedades a DocumentFormat.OpenXML, también tuve que cambiar la Versión Específica a false.

 0
Author: Randal Hicks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-24 16:18:27

Bueno, en mis aplicaciones solo necesito agregar una referencia a "DocumentFormat.OpenXML " en la pestaña. Net y ambas referencias (DocumentFormat.OpenXML y WindowsBase) siempre se añaden automáticamente. Pero no están incluidos dentro de la carpeta Bin. Así que cuando la Aplicación se publica en un servidor externo siempre coloco DocumentFormat.OpenXML.dll debajo de la carpeta Bin manualmente. O establezca la propiedad de referencia "Copiar local" en true.

 0
Author: El Bayames,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-31 18:01:02

Descubrí que cuando se mezcla con las bibliotecas PCL, el problema anterior se presentó, y aunque es cierto que la biblioteca WindowsBase contiene System.IO.Packaging, estaba usando la biblioteca OpenXMLSDK-MOT 2.6.0.0 que a su vez proporciona su propia copia de la biblioteca física System.IO.Packaging. La referencia que faltaba para mí se podía encontrar de la siguiente manera en el proyecto csharp

<Reference Include="System.IO.Packaging, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <HintPath>..\..\..\..\packages\OpenXMLSDK-MOT.2.6.0.0\lib\System.IO.Packaging.dll</HintPath>
  <Private>True</Private>
</Reference>

Reduje mi versión de XMLSDK a 2.6, que luego parecía solucionar este problema para mí. Pero puedes ver que hay un montaje físico System.IO.Packaging.dll

 0
Author: The Senator,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-23 18:00:26

El problema para mí era que DocumentFormat.OpenXml.dll existía en la Caché de Ensamblaje Global (GAC) en mi caja de desarrollo de Win7. Así que al publicar mi proyecto en VS2013, encontró el archivo en el GAC y, por lo tanto, lo omitió de ser copiado a la carpeta de publicación.

Solución: elimine la DLL del GAC.

  1. Abra la raíz GAC en el Explorador de Windows (Win7: %windir%\Microsoft.NET\assembly)
  2. Buscar OpenXml
  3. Elimine las carpetas apropiadas (o para estar seguro, córtelas a su escritorio en caso de que debe querer restaurarlos)

Puede haber una forma más adecuada de eliminar un archivo GAC (abajo), pero eso es lo que hice y funcionó. gacutil –u DocumentFormat.OpenXml.dll

¡Espero que eso ayude!

 0
Author: Kidquick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-13 14:20:29