DocumentFormat.OpenXml en el servidor de Ubuntu
nginx mono (1)
Tengo una aplicación básica de C # donde se usa Open XML SDK. Quiero que funcione en mi servidor Nginx & Ubuntu y Digital Ocean.
La aplicación compila y funciona bien en Windows, y mi Mac con mono . Entonces, instalé mono en el servidor de Ubuntu, y scp el archivo .exe en el servidor, y mono ConsoleApplication2.exe
, devolvió el siguiente error:
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly ''DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies.
File name: ''DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35''
at ConsoleApplication2.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly ''DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies.
File name: ''DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35''
at ConsoleApplication2.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
He encontrado este enlace , parece que el problema proviene de la versión de DocumentFormat.OpenXml
. Pero, ¿cómo podría instalar su versión correcta en un servidor Ubuntu?
¿Alguien podría ayudar?
Actualización 1: Entonces, traté de instalar Open XML SDK 2.6.1
, pero no hay un archivo MAKE . De lo contrario, para Open XML SDK 2.5
, no sé dónde encontrar una distribución de lanzamiento.
Actualización 2: debería haber intentado build.open-xml-sdk.sh
... Traté de ejecutarlo en el servidor, pero da un error . ¿Alguien sabe lo que está mal aquí?
Actualización 3: desinstalé mono y seguí este enlace :
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mono-complete
mono fue reinstalado exitosamente. Luego probé build.open-xml-sdk.sh
nuevamente, pero devolvió el mismo error .
Actualización 4: Siguiendo el comentario de ZagNut, traté de agregar archivos DLL a GAC. Noté dos cosas:
1) Descargué el código fuente y System.IO.Packaging.dll
DocumentFormat.OpenXml.dll
y System.IO.Packaging.dll
, hicieron que mi programa compilara bien en Visual Studio. Sin embargo, cuando intenté agregarlos al GAC por medio de gacutil
, me dice que necesitan un nombre fuerte .
2) Luego traté de agregarle un nombre fuerte al seguir esta página , me di cuenta de que los nuevos 2 dlls ya no funcionarían correctamente en Visual Studio:
simplemente coloque los binarios que necesita junto con su aplicación ejecutable.
para los binarios, puede compilarlo usted mismo: https://github.com/OfficeDev/Open-XML-SDK
o descárguelo desde abajo y simplemente extraiga los binarios usando Universal Extractor o instalándolos y encontrándolos.
2.0: https://www.microsoft.com/en-us/download/details.aspx?id=5124
2.5: https://www.microsoft.com/en-us/download/details.aspx?id=30425