我有一个基本的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.dll
和System.IO.Packaging.dll
,他们使我的程序在Visual Studio中编译得很好。但是,当我尝试通过gacutil
将其添加到GAC时,它告诉我他们需要强名称。
2)然后我尝试按照this page向他们添加强名称,我意识到新的2个dll在Visual Studio中无法正常工作:
答案 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