在C#中使用Saxon-HE的ClassNotFoundException

时间:2016-08-11 06:52:18

标签: c# exception-handling saxon

我在使用.NET版Saxon-HE时遇到了问题。我们有一个引用Saxon-HE 9.7.0.7的.NET Core项目。如果我尝试运行以下代码:

private static readonly Processor Processor = new Processor();

它为ClassNotFoundException提供了cli.System.Xml.XmlDocument

这是完整的错误消息:

  

ClassNotFoundException:cli.System.Xml.XmlDocument at   IKVM.NativeCode.ikvm.runtime.AssemblyClassLoader.LoadClass(对象   classLoader,Assembly assembly,String name)

即使我制作一个针对.NET 4.6.1的blanco ConsoleApplication并在该项目中引用Saxon,它也会给我ClassNotFoundException

我已经尝试清理包缓存,我尝试重新安装Java。

其他人遇到过这个问题吗?这是一个已知的问题吗?我该怎么做才能解决它?

谢谢!

2 个答案:

答案 0 :(得分:0)

我不知道您是否使用过SaxonHE9-7-0-7N-setup.exe安装程序或NuGet包。我更喜欢后者。

doc中所述,项目中的saxon9he-api引用需要Saxon库(saxon9he.dll),IKVM交叉编译器(IKVM.Runtime.dll)和十字架编译Java OpenJDK类库(IKVM.OpenJDK.*.dll)。您可能缺少某些依赖项。

IKVM.NativeCode.ikvm.runtime.AssemblyClassLoader位于IKVM.Runtime.dll

答案 1 :(得分:0)

我担心坏消息是IKVMC的首席开发人员Jeroen Frijters告诉我们,目前IKVMC目前不支持.NET Core作为目标平台,并且支持它是很多工作并赢得了'很快就会发生。 Saxon on .NET完全依赖于IKVMC,因此不支持此平台。