3

我正在使用 MPXJ,这是一个允许在 Java 和 .Net 中操作项目信息的库。(更多信息在http://mpxj.sourceforge.net/)我正在使用 Visual Studio 2012。当我将 VSTO 项目模板用于控制台应用程序或 windows.forms 应用程序时,我的程序运行没有任何错误。

但是,当我使用 sharepoint webpart 模板时,我看到以下错误消息:

System.IO.FileNotFoundException:无法加载文件或程序集“IKVM.OpenJDK.Core,Version=7.0.4335.0,Culture=neutral,PublicKeyToken=13235d27fcbfff58”或其依赖项之一。指定的模块无法找到。
文件:“IKVM.OpenJDK.Core,版本=7.0.4335.0,文化=中性,PublicKeyToken=13235d27fcbfff58”
在 MA_SQL_Workload.MppTaskController..ctor()
在 MA_SQL_Workload.UpdateStarter.startDBUpdate()

所以它找不到程序集“IKVM.OpenJDK.Core”。

MppTaskController.cs 类是唯一使用 MPXJ 库的类。当我实例化 MppTaskController 时发生错误。

当我在控制台或表单应用程序中使用完全相同的类时,它运行良好。如果您愿意,我可以将 windows.form 应用程序发送给您。

我想发布项目资源管理器的图片,但我需要至少 10 个声望才能发布图片。也许失败可能是项目文件夹中某些东西的错误路径。

如果您愿意,我想向您展示更多信息或将项目文件夹发送给您。

你怎么看,失败在哪里?

以下是文件夹 ...\ProjectName\WebpartName\bin\Debug\ 中的所有 *.dll 文件

IKVM.OpenJDK.Beans.dll
IKVM.OpenJDK.Charsets.dll
IKVM.OpenJDK.Core.dll
IKVM.OpenJDK.Jdbc.dll
IKVM.OpenJDK.Security.dll
IKVM.OpenJDK.SwingAWT.dll
IKVM.OpenJDK.Text.dll
IKVM.OpenJDK.Util.dll
IKVM.OpenJDK.XML.API.dll
IKVM.OpenJDK.XML.Bind.dll
IKVM.OpenJDK.XML.Parse.dll
IKVM.Runtime.dll
junit.dll
MA_SQL_Workload.dll
MA_SQL_Workload.pdb
MA_SQL_Workload.wsp
Microsoft.Office.Interop.MSProject.dll
mpxj.dll
poi-3.7-20101029.dll
4

2 回答 2

1

确保您已使用它们的可执行文件在服务器上安装了 Saxon 组件。我遇到了同样的错误,虽然我的依赖项存在于服务器上的正确位置,但在我通过可执行文件安装 Saxon 组件之前,我得到了这个错误。祝你好运。HTH。

于 2014-03-28T12:49:30.547 回答
0

我猜安装程序会将所需的 dll 加载到 GAC 中,但是如果没有安装程序,您应该能够通过将以下 dll 加载到使用 Saxon HE 的每台机器上的 GAC 中来使其工作:

saxon9he.dll
saxon9he-api.dll
IKVM.OpenJDK.Charsets.dll
IKVM.OpenJDK.Core.dll
IKVM.OpenJDK.Text.dll
IKVM.OpenJDK.Util.dll
IKVM.OpenJDK.XML.API.dll
IKVM.Runtime.dll

以管理员权限运行以下命令会将单个 dll 加载到 GAC

"<Path To GACUtil>\GACUtil.exe" /if <Path to dll>\IKVM.OpenJDK.Charsets.dll

我正在使用 .Net 4.5,所以在我的机器上 GACUtil.exe 位于 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\

于 2017-08-15T08:59:19.223 回答