我使用.NET的开源Saxon XSLT processor来执行2.0变换。
我像其他任何dll一样引用saxon9api.dll,并且可以针对此编译代码。但是,Visual Studio不会显示任何智能感知,使IDE与记事本一样有用。
saxon9api.dll正在使用IKVM Java for .NET平台,我想知道这是否会导致VS出现问题。 Reflector可以毫无问题地检查DLL,但我怀疑VS出于某种原因不满意。
有什么想法吗?
修改
感到惊讶的是,没有其他人遇到过这种行为,因为微软recommends (链接已经死了)在框架中缺乏内置功能时使用Saxon。
我想我会重新提出关于在IKVM下运行的程序集没有显示智能感知的问题,尽管我需要找到另一个基于IKVM的项目来证明首先是这种情况......
答案 0 :(得分:1)
要在Visual Studio中进行编译,运行和智能感知工作,您需要执行以下操作:
saxon9api.dll
,就像您已经做过的那样IKVM.OpenJDK.Core.dll
IKVM.Runtime.dll
(不确定是否需要,但我总是包含它)如果你也引用vjslib
,你可能会遇到问题,因为它使用了很多相同的命名空间和类名,导致歧义,导致Visual Studio的智能感知得到陷入困境。也许存在显示相同命名空间冲突的其他库。在这种情况下,首先在一个新项目上尝试这个,然后逐个添加引用,首先从Saxon的依赖项开始。
执行此操作后,至少在Visual Studio 2010,2012和2013中,您会发现上下文相关帮助正在运行(图片是VS 2012,{{3 }}):
注意:由于这篇文章很旧,它当时可能只适用于Visual Studio 2008,我没有测试过,因为我没有使用它。