I recompiled using .NET 2.0 and now I can load the DLL.  Is there any support for frameworks after 2.0?  I'd hate to lose the ability to use LINQ.

Also, you mentioned Python.Runtime.dll.config.  I don't have this file.  What's in it?

thanks for your help

On Tue, Dec 14, 2010 at 8:06 PM, Laszlo Sebo <laszlo.sebo@primefocusworld.com> wrote:
When you import the assembly it will be referenced by the assembly name defined in the project settings (which is what the dll will be named as). GAC isn't required ( i never do that ).

I just did a quick test here. Made an empty Class project via Visual Studio 2008.

Then tweaked the source to add 2 functions:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
   public class Class1
   {
       public string Function1()
       {
           return "Test Function Called";
       }
       public void Function2()
       {
           Console.WriteLine("Hello World");
       }
   }
}

I built it with all default settings (as a class library), then copied the dll to the python / lib / site-packages folder, along with the clr.pyd, Python.Runtime.dll and Python.Runtime.dll.config files

Then from python:

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import clr
>>> clr.AddReference('ClassLibrary1')
<System.Reflection.Assembly object at 0x01DF5580>
>>> import ClassLibrary1
>>> myObject = ClassLibrary1.Class1()
>>> myObject.Function1()
u'Test Function Called'
>>> myObject.Function2()
Hello World
>>>

Note that the "import ClassLibrary1" is the namespace not the assembly (it just happens to be the same since its all default values).
I wonder if your issue is somehow related to VS2010? Could it be adding some default references? What references are listed in VS?


cheers,
laszlo




On 14/12/2010 5:47 PM, Jason Awbrey wrote:
Thanks.  I tried creating a test assembly with just a default constructor and no other dependencies, and I get the same error when I try to import it.

I also tried setting the path variable, through windows as well as in code, and get the same result.

Assuming my dll is named "TestLib.dll", I should be able to do clr.AddReference("TestLib"), correct?

Do I have to strong name my assemblies, or put them in the GAC?  Or is that optional?

Any other suggestions of how to track this down?

_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
http://mail.python.org/mailman/listinfo/pythondotnet