【发布时间】:2016-09-14 08:15:53
【问题描述】:
我已下载 Saxon-HE source code 并尝试在 .NET Framework 4.5.2 上构建它,但它正在寻找我不知道从何处获取的程序集。
以下是显示的一些错误:
已经引用的程序集如下:
我还需要添加哪些其他程序集,从哪里获得这些程序集?我的 google-fu 已经失败了一个小时。
【问题讨论】:
标签: c# .net .net-assembly saxon
我已下载 Saxon-HE source code 并尝试在 .NET Framework 4.5.2 上构建它,但它正在寻找我不知道从何处获取的程序集。
以下是显示的一些错误:
已经引用的程序集如下:
我还需要添加哪些其他程序集,从哪里获得这些程序集?我的 google-fu 已经失败了一个小时。
【问题讨论】:
标签: c# .net .net-assembly saxon
我用谷歌搜索了这些包,发现使用 Maven 存储库以及从 Saxon documentation 找到这些 jar 并下载了它们。还发现我不能直接将jar文件加载为dll程序集。所以我寻找一种将 jar 转换为 C# dll 的方法。
先下载saxon jar文件后,我从Sourceforge下载了IKVM bin文件,并使用IKVM.NET字节码编译器ikvmc在windows power shell中使用以下命令从saxon jar文件生成dll文件:
.\ikvmc saxon9he.jar -target:library
然后将生成的 dll 添加到项目引用中。
【讨论】:
.NET 上的 Saxon 基本上有两个组件。有 saxon9he.dll,它是交叉编译为 .NET 程序集的 Java 代码,还有 saxon9api.dll,它是提供 .NET API 的 C# 代码。普通应用程序只需要引用 saxon9api DLL(它本身引用 saxon9he DLL)。但是如果你想深入挖掘,或者如果你想重新编译 saxon9api 的源代码,那么你需要在你的项目中包含 saxon9he DLL。如果您想更进一步并修改核心 Saxon 代码,那么您需要从 Java 源代码重新构建 - 但您不太可能真的需要这样做。我看不出有什么理由要重新运行 JAR 到 DLL 的 IKVMC 转换,除非您更改了 Java 代码 - 只需使用 Saxonica 发布的 DLL。
【讨论】: