Ubuntu服务器中的DocumentFormat.OpenXml

时间:2016-09-12 03:57:33

标签: ubuntu nginx mono 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 

我找到this link,问题似乎来自DocumentFormat.OpenXml的版本。但是我怎么能在Ubuntu服务器上安装正确的版本呢?

有人可以帮忙吗?

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

更新2:我应该尝试build.open-xml-sdk.sh ...我尝试在服务器中运行它,但它提供了an error。有人知道这里有什么问题吗?

更新3 :我已卸载单声道,然后关注this link

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已成功重新安装。然后我再次尝试build.open-xml-sdk.sh,但它返回了the same error

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

1)我下载了源代码并生成了DocumentFormat.OpenXml.dllSystem.IO.Packaging.dll,他们使我的程序在Visual Studio中编译得很好。但是,当我尝试通过gacutil将其添加到GAC时,它告诉我他们需要强名称

2)然后我尝试按照this page向他们添加强名称,我意识到新的2个dll在Visual Studio中无法正常工作:

enter image description here

1 个答案:

答案 0 :(得分: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