[Ironpython-users] [IronPython] Intellisense with imported dlls
dinov at microsoft.com
Thu Jul 28 22:35:07 CEST 2011
> Hi. I'm replying to a thread I saw from May that discussed adding DLLs from
> the project search paths to the list of DLLs to index for Intellisense. This
> appears to be implemented in the most recent of PTVS, which I'm using.
> My problem is that I'm developing C# classes and their Python subclasses in
> tandem. I really want to be able to add my C# bin/Debug directory to the
> Python search path. I can do this, and when I do, I get the Intellisense I want
> in Python-land, but something (the Intellisense indexer?) locks all the DLLs in
> that directory so they can't be overwritten when I try to build the C# library.
> Are there any PTVS developers here who can say whether that can be easily
> fixed? Does the indexer really need to lock those files?
I don't think we can fix this for 1.0 as this is a little tricky and I think there are other
issues/features that would also need to be addressed to support this scenario. We're
also only taking small bug fixes at this point as we're locking down for 1.0 so it'll have
to wait for 1.1.
To fix the immediate issue of locking the files we could switch to reading the file in
as a byte array and then loading it that way. Or we could do a shadow-copy type
thing where we copy the assembly to another location. But doing so would
significantly change how the assembly is getting loaded potentially including what
CLR loader context it gets loaded into so it needs to be done carefully.
I also think you'd probably want us to re-load the assemblies when you re-build
them. And finally we're loading the assemblies into Visual Studio's process and
into the default app domain so we could eventually run out of memory if we keep
reloading the assemblies.
As a workaround could you copy the assemblies to a different path and tell VS
about that path?
I've opened a feature for this: http://pytools.codeplex.com/workitem/411 which
you can vote for. Or if you'd like to contribute a fix you could do that too :)
More information about the Ironpython-users