我需要访问在.net核心(.NETCore版本= v1.1)中内置的C#dll。我以下面的方式尝试过,但是出现导入错误。
import clr
clr.AddReference("dllname") - No error
from dllname import *
Got Import Error异常,提示没有名为 dllname 的模块。
注意:我尝试使用Iron python和python都给了我相同的异常。
答案 0 :(得分:1)
我正在尝试使用Mono 5.18,python3.7和netcore 3.0.100-preview-009812的Fedora 29, 如果使用绝对路径来解析netcore dll,似乎可以正常工作
import clr
import os
clr.AddReference(os.path.abspath('./bin/Debug/netstandard2.0/sample.dll'))
import sample
p = sample.Person(name='Peter')
netcore项目就是这样生成的
dotnet new classlib -o sample
人员班
using System;
namespace sample
{
public class Person
{
public string Name { get; set; }
}
}
更新
基于@SMHP提供的数据,似乎在主要.NET Framework / mono(pythonnet运行时)与面向.netcoreapp 2.0的库之间不兼容。
答案 1 :(得分:0)
您收到导入错误,因为您在导入语句中使用了 dllname。而不是使用 dllname 使用 dll 的命名空间。 P.S:不要对dll和命名空间使用相同的名称,它会在python中导入时抛出错误
import clr
clr.AddReference("dllname") - No error
from namespace import *