Как включить Intellisense моей собственной библиотеки.Net для приложения Python в Visual Studio 2017?

Я использую pythonnet ( https://github.com/pythonnet/pythonnet) и ссылаюсь на библиотеку.Net в том же пространстве решения, но, похоже, она не извлекает какую-либо информацию для использования в Intellisense. На самом деле, VS выдает ошибку: "Невозможно разрешить"ReferenceLibarary". Для этого модуля может отсутствовать Intellisense. Так как же добавить Intellisense в мой" модуль "?

Даже если есть ошибка, скрипт все равно может быть запущен (в или из VS). Я полностью настроил XML, так как есть также проект sandcastle для вывода chm. Может ли проект sandcastle вывести соответствующий контент, который отсутствует?

2 ответа

Мне кажется, что ответ Питера Стивенса устраивает. Его решение использует IronPython для создания заглушек. Эти заглушки, в свою очередь, используются механизмом автозаполнения CPython, например, в Visual Studio Code.

Предположим, у вас есть библиотека c# dll, расположенная в каталоге c:\dev\HTL\bin\release\HTL.dll, к которой вы хотите получить доступ из Python, и вам нужно автозаполнение, чтобы помочь коду. Установив IronPython и загруженный модуль ironpython-stubs, вы можете сделать следующее:

      ipy -m ironstubs make HTL --path="c:\\dev\\HTL\\bin\\release\\HTL.dll" -output stubs.min

Затем, как в ответе Питера выше, в VS Code используйте File | Предпочтения | Настройки для добавления полного пути stubs.min к "python.autoComplete.extraPaths". Импортировав целевую dll в ваш * .py файл в редакторе VS Code, теперь вы должны иметь возможность расставлять точки до автозаполнения для классов, содержащихся в этой dll.

Используйте модуль ironpython-stubs.

Убедитесь, что ваша dll находится в sys.path, а затем запустите с Ironpython ipy -m ironstubs make --output stubs.min

затем установите для "python.autoComplete.extraPaths" значение \ironpython-stubs\release\stubs.min

Работает как шарм

Другие вопросы по тегам