【发布时间】:2017-01-19 11:15:29
【问题描述】:
我有一个使用 Open XML SDK 的基本 C# 应用程序。我想让它在我的 Nginx & Ubuntu & DigitalOcean 服务器上运行。
该应用程序在 Windows 和 我的带有单声道的 Mac 中编译和运行良好。然后,我在Ubuntu服务器上安装了mono,scp .exe文件到服务器,运行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.dll 和System.IO.Packaging.dll,它们使我的程序在Visual Studio 中编译得很好。但是,当我尝试通过gacutil 将它们添加到 GAC 时,它告诉我它们需要一个强名称。
2)然后我尝试通过关注this page向它们添加strong name,我意识到新的2个dll在Visual Studio中无法正常工作了:
【问题讨论】:
-
我试过
build.open-xml-sdk.sh,但它返回了一个错误。请看我的操作... -
对不起,您给的链接无效...
-
请看我的更新3
标签: ubuntu nginx mono openxml openxml-sdk