运行 IronPython 脚本与 .netStandard 2.1 没有任何手动依赖

Run IronPython script with .netStandard 2.1 without any manual dependencies

我创建了一个 py 脚本,它导入我的 .netStandard class库并运行它的执行

问题是,当我的 class 库 .netStandard 版本为 2.0 或更低时,它可以正常运行, 但如果版本是 .netStandard 2.1,它会要求 netStandard.dll as not found.

现在我已经从 'C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App.1.5' 位置复制了 .netStandard 文件并粘贴了 Py 脚本位置,现在 运行 成功了。

我不明白为什么 .netStandard v2.1 的 DLR with Iron python 没有检测到 netStandards dll。还是我遗漏了任何步骤?

通过 MSI 软件包安装时,ipy.exe 是一个 dotnet 4.x 应用程序,因此仅与 2.0 版以下的 dotnet 标准兼容 here

如果您执行从 dotnet 核心 3.x 或 dotnet 5 应用程序(使用 NuGet 包)中托管的 python 代码,您将能够执行它。

正如所讨论的那样 here IronPython 没有发布 ipy.exe 使用 dotnet core 3.x/dotnet 5 现在但是使用 ZIP-distributon 你可以 dotnet ipy.dll (见netcoreapp3.1 文件夹)或使用 dotnet core 2.1 ipy.bat 启动您的代码。