Ubuntu服务器中的DocumentFormat.OpenXml

Sof*_*mur 10 ubuntu mono nginx openxml openxml-sdk

我有一个基本的C#应用​​程序,其中使用了Open XML SDK.我想让它在我的Nginx和Ubuntu和DigitalOcean服务器上运行.

该应用程序在Windows中编译并运行良好,而我的Mac在单声道中运行良好.然后,我在Ubuntu服务器上安装了mono,并将.exe文件scp到服务器,然后运行mono ConsoleApplication2.exe,它返回了以下错误:

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 
Run Code Online (Sandbox Code Playgroud)

我找到了这个链接,似乎问题来自于版本DocumentFormat.OpenXml.但是我怎么能在Ubuntu服务器上安装正确的版本呢?

有人可以帮忙吗?

更新1:然后,我尝试安装Open XML SDK 2.6.1,但没有makefile.否则,对于Open XML SDK 2.5,我不知道在哪里可以找到发布版本.

更新2:我应该尝试build.open-xml-sdk.sh...我试图在服务器中运行它,但它给出了一个错误.有谁知道这里有什么问题吗?

更新3:我卸载了mono,并点击此链接:

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
Run Code Online (Sandbox Code Playgroud)

mono已成功重新安装.然后我build.open-xml-sdk.sh再次尝试,但它返回了同样的错误.

更新4:在ZagNut的评论之后,我尝试将DLL添加到GAC.我注意到两件事:

1)我下载的源代码和生成DocumentFormat.OpenXml.dllSystem.IO.Packaging.dll,他们让我的程序在Visual Studio编译好.但是,当我尝试将它们添加到GAC时gacutil,它告诉我他们需要一个强名称.

2)然后我尝试通过以下页面向他们添加强名称,我意识到新的2个dll在Visual Studio中无法正常工作:

在此输入图像描述

Zag*_*Nut 1

只需将您需要的二进制文件与您的应用程序可执行文件放在一起即可。

对于二进制文件,您可以自己构建: https://github.com/OfficeDev/Open-XML-SDK

或者从下面下载并使用Universal Extractor提取二进制文件或安装它并找到它们。

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