You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IronPython 3.4调用.NET 6 DLL遇System.Runtime加载失败求助

解决IronPython调用.NET Core 6 DLL时的System.Runtime加载错误

问题背景

使用VS2022创建的.NET Core 6类库(实现整数相加功能),在IronPython 3.4.1中调用时,出现FileNotFoundError,提示找不到System.Runtime, Version=6.0.0.0依赖。

核心原因

IronPython 3.4.1默认依赖的.NET运行时版本与.NET Core 6不兼容,无法自动定位到.NET Core 6的核心依赖集。

解决方案

方案1:将.NET Core类库发布为自包含部署

  1. 在VS2022中打开类库项目,右键选择「发布」
  2. 选择「文件夹」作为发布目标,点击「下一步」
  3. 在发布设置中,将部署模式改为「自包含」,选择与当前系统匹配的目标运行时(如win-x64)
  4. 完成发布后,发布文件夹会包含所有.NET Core 6的依赖库
  5. 修改Python代码,将sys.path指向发布后的文件夹:
import clr
import os
import sys

# 指向自包含发布的文件夹路径
sys.path.append(os.path.abspath("NewTest\bin\Release\publish"))

clr.AddReference("NewTest")
from NewTest import Class1

# 测试调用
calc = Class1()
print(calc.Get_sum(2, 3))

方案2:手动添加.NET Core 6运行时路径

  1. 找到本地.NET Core 6的安装目录,通常位于C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.x(x为具体版本号,可通过dotnet --list-runtimes命令查看)
  2. 在Python代码中先添加该路径,再引用目标DLL:
import clr
import os
import sys

# 添加.NET Core 6运行时依赖路径,替换为你的实际版本路径
dotnet_core_runtime_path = r"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.25"
sys.path.append(dotnet_core_runtime_path)

# 添加目标DLL所在路径
sys.path.append(os.path.abspath("NewTest\bin\Release\net6.0"))

clr.AddReference("NewTest")
from NewTest import Class1

# 测试调用
calc = Class1()
print(calc.Get_sum(2, 3))

方案3:改用.NET Framework类库(兼容性更好)

如果不需要.NET Core的特定特性,可以将项目改为.NET Framework类库(推荐.NET Framework 4.8):

  1. 在VS2022中重新创建「.NET Framework类库」项目,编写相同的相加代码
  2. 编译生成DLL后,直接在IronPython中引用,无需额外配置依赖路径:
import clr
import os
import sys

sys.path.append(os.path.abspath("NewTest\bin\Release"))
clr.AddReference("NewTest")
from NewTest import Class1

calc = Class1()
print(calc.Get_sum(2, 3))

注意事项

  • 确保IronPython的位数(32/64位)与编译的类库位数一致,避免因位数不匹配导致加载失败
  • 使用自包含部署时,目标运行时必须与当前操作系统匹配(如Windows选win-x64,Linux选linux-x64)

内容的提问来源于stack exchange,提问作者Rajesh Swain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:37:54