R.NET 适用于 x86 但不适用于 x64

问题描述

我正在尝试在 the tutorial page at R.NET 构建和运行 Hello World 示例。当我强制程序在 x86 模式下运行时,它似乎没有问题。但是,当我在 x64 中运行时,它很早就停止并显示消息“[程序] 以代码 1073740791 退出” 我已经在 The R Project 安装了最新版本的 R 并运行了 troubleshooting steps。我从故障排除程序中得到的输出是:

  • 这个进程是 64 位的吗?真的
  • 信息:调用者提供了 rPath=null,rHome=null 信息:R.NET 寻找预设的 R_HOME 环境。变种发现空
  • 信息:找到 Windows 注册表项 RDotNet.NativeLibrary.WindowsRegistryKey
  • 信息:找到 Windows 注册表项 RDotNet.NativeLibrary.WindowsRegistryKey
  • 信息:在 RDotNet.NativeLibrary.WindowsRegistryKey 下找到子项 InstallPath
  • 信息:密钥 RDotNet.NativeLibrary.WindowsRegistryKey 的 InstallPath 值:C:\Program Files\R\R-4.0.3
  • 信息:R.NET 寻找特定于平台的方式(例如 win 注册表)。找到 C:\Program Files\R\R-4.0.3
  • 信息:R.NET 试图根据 rHome 查找 rPath;推导出 C:\Program Files\R\R-4.0.3\bin\x64
  • C:...\bin\x64\Debug\net5.0\ConsoleNet5R.exe (进程 33500)退出代码为 -1073740791。

我已经验证 IS一个文件 R.dll,它推断它应该是“C:\Program Files\R\R-4.0.3\bin\x64”。当我逐步使用我的反编译器时,它似乎在 REngine.cs 中显示为第 400 行的 this.GetFunction<setup_Rmainloop>()(); 处的“初始化”函数下被阻塞了它似乎没有抛出例外,它只是停止。老实说——我不确定这条线应该做什么......

知道发生了什么吗?如果需要,我可以在 x86 模式下运行,但如果可能,我想使用 x64。

解决方法

这个问题已经报告了一段时间了.. 我从 R-4.0.3 到 R-4.0.5 也经历了同样的事情。

R-4.0.2 和之前的版本 (4.0.1,4.0.0,3.6,3.5) 没有这个问题