N_tro_P
N_tro_P

Reputation: 693

How to enable Intellisense of my own .Net library for a Python application in Visual Studio 2017?

I am using pythonnet ( https://github.com/pythonnet/pythonnet ) and have referenced a .Net library within the same solution space but it does not seem to pull in any information to use for Intellisense. In fact, VS gives an error: "Unable to resolve "ReferenceLibarary". Intellisense may be missing for this module. So how do I add intellisense to my "module"?

Even though there is an error, the script can still be run (in or out of VS). I have thorough XML already set up as there is also a sandcastle project for a chm output. Can the sandcastle project output the appropriate content that is missing?

Upvotes: 3

Views: 2777

Answers (2)

user1467698
user1467698

Reputation: 21

Peter Stevens answer seems fine to me. His solution uses IronPython to generate stubs. These stubs are used in turn by the CPython auto-completion mechanism, in for example, Visual Studio Code.

Let's say you have a c# dll located in c:\dev\HTL\bin\release\HTL.dll you want to access from Python and need auto-completion to help code. With IronPython installed and the ironpython-stubs module downloaded, you can do the following:

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

Then, as in Peter's response above, in VS Code use File | Preferences | Settings to add the full stubs.min path to "python.autoComplete.extraPaths". Having imported the target dll into your *.py file in the VS Code editor you should now be able to dot to auto-completion for the classes contained in that dll.

Upvotes: 1

Peter Stevens
Peter Stevens

Reputation: 29

Use the ironpython-stubs module.

Make sure your dll is in sys.path, then run from ironpython ipy -m ironstubs make --output stubs.min

then set "python.autoComplete.extraPaths" to \ironpython-stubs\release\stubs.min

Works like a charm

Upvotes: 0

Related Questions