[Ironpython-users] [IronPython] Intellisense with imported dlls

Vardeman, Andrew [CSSM] andrewv at iastate.edu
Thu Jul 28 23:16:23 CEST 2011


-----Original Message-----
From: Dino Viehland [mailto:dinov at microsoft.com] 
Sent: Thursday, July 28, 2011 3:35 PM
To: Vardeman, Andrew [CSSM]; ironpython-users at python.org
Subject: RE: [Ironpython-users] [IronPython] Intellisense with imported dlls

Andrew wrote:
> 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 :)

=================================================================================

Yup, that sounds pretty involved.  Thanks for the reply and the information.

I actually did try copying the assemblies to another path, but as you guessed, I wanted them to be copied (and hopefully re-indexed) automatically on build, and my post-build event would fail just like the build did earlier.  Maybe I'll settle for manual copying for now.

Thanks for adding the feature request.  Learning enough to tackle it myself is, unfortunately, probably beyond the scope of my current project.  But thanks for the great tools and everything they already do.

Andrew


More information about the Ironpython-users mailing list