[Ironpython-users] struggling with Intellisense and GAC

George Nychis gnychis at gmail.com
Thu Jul 9 20:09:55 CEST 2015


Hi Andy,

Thanks so much for your response.

The issue turned out to be something fundamental... my DLL was built as
"x64" and not as "Any CPU" (even though I was explicitly using 64-bit
ironpython).  As soon as I switch to "Any CPU" the intellisense started
working in the base cases!

I've now been struggling with another Intellisense related issue that I
think might be driven by IronPython using old-style Python classes?

In my C# code, assume I have a class "CSharpTest(string first, string
second)" that I want to inherit from my Python class AND I want the Python
class to not require parameters (i.e., it will explicitly call the
CSharpTest constructor)... I believe I have to do the following:

########################################
class Child (CSharpTest):
    def __new__(cls):
        instance = CSharpTest.__new__(cls, "one", "two")
        return instance
#########################################

The issue seems to be that "instance" is of unknown type, which I think is
driven by old-style classes.  Am I doing inheritance the proper way here?

So when I go to do:
    c = Child()

"c" does not seem to have any Intellisensable class members, and I believe
this is because its type is unknown.

Is my understanding correct that this is due to old-style classes?  Or
might I be missing something else?


On Thu, Jul 9, 2015 at 2:01 PM Andrew Graham <andy at agraham.demon.co.uk>
wrote:

>   Is it Intellisense in  Python Tools for Visual Studio you are referring
> to?
>
> If so my experience is that to obtain Intellisense you don’t need your
> DLLs in the GAC.
>
> To see my custom DLL in my project I do four things.
>
> 1) Add the DLL or EXE Assemblies to References in your IronPython project
> (I’m not sure if this is essential)
>
> 2) Add the folder where the Assemblies are located to Search Paths in your
> IronPython project. This does seem to be essential.
>
> 3) Add “clr.AddReference(MyDllName”) to your code where the DLL path is in
> sys.path
>
> 4)Add “import ANamespaceInMyDll” or “from ANamespaceInMyDll import *” or
> similar.
>
> Note that the C# namespace containing the Class definitions maps to an
> IronPython module.
> You should now get Intellisense for each class in the imported Namespaces
>
>
> Andy Graham
>
>
>
>  *From:* George Nychis <gnychis at gmail.com>
> *Sent:* Wednesday, July 08, 2015 4:33 PM
> *To:* ironpython-users at python.org
> *Subject:* [Ironpython-users] struggling with Intellisense and GAC
>
>  I am struggling to get Intellisense working with some DLLs that I have
> built.  I do not want the C# code to be included directly in the project, I
> only want the functionality to be accessible through a pre-built DLL.
>
> First, I am able to run my IronPython code successfully linking to the
> DLLs by adding where they exist to my search path and then using
> clr.AddReference()
>
> However, using that method I cannot get Intellisense to work.  So then I
> did some searching and found multiple discussions around the DLLs needing
> to be in the GAC for them to be accessible by Intellisense.
>
> Therefore I signed my DLLs (making them strong typed) and added them to
> the GAC using gacutil.exe.  I can verify this by listing the installed
> modules:
>
>  $ gacutil.exe -l | grep Utils
>   Utils, Version=1.0.0.0, Culture=neutral,
> PublicKeyToken=6c2b3719154e5544, processorArchitecture=AMD64
>
> Despite doing that, it is not accessible by the GAC.  Additionally, I
> assumed that I could now drop my search path and the modules would be found
> using clr.AddReference() in the GAC instead.  However, once I drop the
> search path it does not work again.
>
> Could somebody point me in the right direction, here?  I'm feeling lost.
>
> Thanks much!
>
> - George
>
> ------------------------------
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users at python.org
> https://mail.python.org/mailman/listinfo/ironpython-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20150709/3ea9233a/attachment.html>


More information about the Ironpython-users mailing list