【问题标题】:Run IronPython script with .netStandard 2.1 without any manual dependencies使用 .netStandard 2.1 运行 IronPython 脚本,无需任何手动依赖
【发布时间】:2021-01-19 17:07:57
【问题描述】:

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

问题是,当我的类库 .netStandard 版本为 2.0 或更低时,它可以正常运行, 但如果版本是 .netStandard 2.1,它会要求 netStandard.dll 未找到。

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

我不明白为什么专门使用 .netStandard v2.1 带有 Iron python 的 DLR 没有检测到 netStandards dll。还是有什么我遗漏的步骤?

【问题讨论】:

  • 您能否提供更多关于您如何推动 Ironpython 执行的详细信息?嵌入某物?通过ipy.exe?
  • 是的@SimonOpelt,我已经下载了ipy 2.7.11版本并使用了ipy.exe。我在这样的命令行上运行:'ipy runnableScript.py'

标签: c# ironpython .net-standard .net-standard-2.1


【解决方案1】:

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

如果您执行托管自 dotnet core 3.x 或 dotnet 5 应用程序(使用 NuGet 包)的 Python 代码,您将能够执行它。

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

【讨论】:

  • 我明白这一点,但有一个困惑。检查这个 git 发布链接:'github.com/IronLanguages/ironpython2/releases/tag/ipy-2.7.10'。在这里,他们写道“此版本增加了对 .NET Core 3.1 的支持。”并检查此链接:'ironpython.net/download'。他们在这里提到“IronPython 也可以在 .NET Core 2.0 和 2.1 上运行。”所以我的疑问是我可以从 ipy 脚本调用 .net core 3.1 的 dll 吗?
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 2015-07-29
  • 2020-12-05
  • 2019-05-29
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多