DocumentFormat.OpenXml 在 Ubuntu 服务器中

DocumentFormat.OpenXml in Ubuntu server

我有一个基本的 C# 应用程序,其中使用了 Open XML SDK。我想在我的 Nginx & Ubuntu & DigitalOcean 服务器中实现 运行。

应用程序在 Windows 和 my Mac with mono 中编译并运行良好。然后,我在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: 我卸载了 mono,然后按照 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给他们添加strong name,我发现新的2个dll不能在[=68=中正常工作] 再:

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

对于二进制文件,您可以自己构建它: 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