C# pythonnet导入自定义.net代码

C# pythonnet导入自定义.net代码,c#,python,.net,python.net,C#,Python,.net,Python.net,我试图使用pythonnet从python调用.NET代码,但在编译的程序集上出现导入错误。我能够制作以下mwe 文件夹结构: pynet/ TestPyCS/ TestPyCS/ bin/ Debug/ TestPyCS.dll TestPyCS.pdb TestCs.cs test.py C#项目只包

我试图使用pythonnet从python调用.NET代码,但在编译的程序集上出现导入错误。我能够制作以下mwe

文件夹结构:

pynet/
    TestPyCS/
        TestPyCS/
            bin/
                Debug/
                    TestPyCS.dll
                    TestPyCS.pdb
            TestCs.cs
    test.py
C#项目只包含一个文件(TestCs.cs):

我用target.NETFramework 4.7.2构建的

Python代码(在test.py中):

我得到的结果是:

D:\path\to\pynet\TestPyCS\TestPyCS\bin\Debug\TestPyCS.dll
TestPyCS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Hello world!
['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
Traceback (most recent call last):
  File ".\test.py", line 21, in <module>
    from TestPyCS import TestCS
ImportError: cannot import name 'TestCS'
D:\path\to\pynet\TestPyCS\TestPyCS\bin\Debug\TestPyCS.dll
TestPyCS,版本=1.0.0.0,区域性=中立,PublicKeyToken=null
你好,世界!
[“文档”、“加载程序”、“名称”、“包”、“路径”、“规范”]
回溯(最近一次呼叫最后一次):
文件“\test.py”,第21行,在
从TestPyCS导入TestCS
ImportError:无法导入名称“TestCS”
我已经研究了以下问题:

但我没能解决这个问题

import clr
import os
import sys

abshere = os.path.dirname(os.path.abspath(__file__))
dlldir = os.path.join(abshere, "TestPyCS", "TestPyCS", "bin", "Debug")

sys.path.append(dlldir)

print(clr.FindAssembly("TestPyCS"))
print(clr.AddReference("TestPyCS"))

# this is just for testing pythonnet
from System import Console
Console.WriteLine("Hello world!")


import TestPyCS
print(dir(TestPyCS))

from TestPyCS import TestCS

t = TestCS()

print(t.Test())
D:\path\to\pynet\TestPyCS\TestPyCS\bin\Debug\TestPyCS.dll
TestPyCS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Hello world!
['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
Traceback (most recent call last):
  File ".\test.py", line 21, in <module>
    from TestPyCS import TestCS
ImportError: cannot import name 'TestCS'