4

我正在使用用于 .NET 的开源Saxon XSLT 处理器来执行一些 2.0 转换。

我像引用任何其他 dll 一样引用 saxon9api.dll,并且可以针对它编译代码。但是,Visual Studio 没有显示任何智能感知功能,使 IDE 与记事本一样有用。

saxon9api.dll 使用IKVM Java for .NET平台,我想知道这是否是导致 VS 问题的原因。Reflector 可以毫无问题地检查 DLL,但我怀疑 VS 出于某种原因不高兴。

有任何想法吗?

编辑:

令人惊讶的是,没有人遇到过这种行为,因为 Microsoft建议 (链接现已失效)在框架中缺少内置功能的情况下使用 Saxon。

我想我会将问题改写为关于在 IKVM 下运行的程序集没有显示智能感知,尽管我需要找到另一个基于 IKVM 的项目来证明首先是这种情况......

4

1 回答 1

1

要在 Visual Studio 中进行编译、运行和智能感知,您需要执行以下操作:

  • 参考saxon9api.dll,就像你已经做过的那样
  • 参考IKVM.OpenJDK.Core.dll
  • 参考IKVM.Runtime.dll(不确定是否需要,但我总是包含它)

如果您引用vjslib,则可能会遇到问题,因为它使用许多相同的命名空间和类名,从而导致歧义,从而导致 Visual Studio 的智能感知出现问题。也许存在其他显示相同命名空间冲突的库。在这种情况下,首先在一个新的项目上尝试这个,并一个一个地添加引用,首先从 Saxon 的依赖项开始。

执行此操作后,至少在Visual Studio 201020122013中,您会发现上下文相关的帮助正在工作(图像是带有R#的 VS 2012 ):

IntelliSense 在 Visual Studio 中与 Saxon EE 一起工作


注意:由于这篇文章很旧,它可能当时只适用于 Visual Studio 2008,我没有测试过,因为我不再使用它了。

于 2015-09-06T13:52:47.823 回答