首页 > 解决方案 > 使用python访问.net core dll

问题描述

我需要访问一个内置在 .net 核心(.NETCore 版本 = v1.1)中的 C# dll。我尝试了以下方式,但出现导入错误。

import clr

clr.AddReference("dllname") - No error

from dllname import *

得到导入错误异常,说没有名为dllname的模块。

注意:我尝试过 Iron python 和 python 都给了我同样的例外。

标签: c#.netpython-2.7.net-corewindows-7

解决方案


我正在尝试使用 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 框架/单声道(pythonnet 运行时)与面向 .netcoreapp 2.0 的库之间似乎不兼容。

在此处输入图像描述

在此处输入图像描述


推荐阅读