Использование Saxon .NET XSLT-процессор не работает с IntelliSense в Visual Studio - PullRequest
4 голосов
/ 15 апреля 2009

Я использую открытый исходный код Saxon XSLT-процессор для .NET для выполнения некоторых преобразований 2.0.

Я ссылаюсь на saxon9api.dll, как и любую другую DLL, и могу скомпилировать код против этого. Тем не менее, Visual Studio не показывает интеллигентности, делающей IDE такой же полезной, как блокнот.

saxon9api.dll использует IKVM Java для платформы .NET , и мне интересно, является ли это причиной VS проблемы. Reflector может проверять DLL без проблем, но я подозреваю, что VS почему-то не в восторге.

Есть идеи?

EDIT:

Удивлен, что никто другой не сталкивался с таким поведением, поскольку Microsoft рекомендует (ссылка теперь не работает) использование Saxon при отсутствии встроенной функциональности в рамках.

Думаю, я перефразирую вопрос о сборках, работающих под IKVM, не показывающих intellisense, хотя мне нужно будет найти другой проект, основанный на IKVM, чтобы доказать, что это именно так ...

1 Ответ

1 голос
/ 06 сентября 2015

Чтобы компиляция, запуск и intellisense работали в Visual Studio, вам необходимо сделать следующее:

  • Ссылка saxon9api.dll, как вы уже сделали
  • Ссылка IKVM.OpenJDK.Core.dll
  • Ссылка IKVM.Runtime.dll (не уверен, что это необходимо, но я всегда включаю его)

Если вы также ссылаетесь на vjslib, вы можете столкнуться с проблемами, поскольку он использует много одинаковых пространств имен и имен классов, что приводит к неоднозначностям, которые могут привести к intellisense, чтобы попасть в проблемы. Возможно, существуют другие библиотеки, которые показывают те же конфликты пространства имен. В таком случае, попробуйте сначала на новом проекте и добавьте ссылки одну за другой, начиная сначала с саксонских зависимостей.

После этого, по крайней мере в Visual Studio 2010 , 2012 и 2013 , вы обнаружите, что контекстно-зависимая справка работает (изображение от VS 2012 с R # ):

IntelliSense working in Visual Studio with Saxon EE


Примечание. Поскольку этот пост уже устарел, в то время он мог применяться только к Visual Studio 2008, я не проверял его, поскольку я его не использую.

...