无法从R.NET获取引擎实例

本文关键字:获取 引擎 实例 NET | 更新日期: 2023-09-27 18:03:13

我正在尝试使用rnet v1.5.12进行设置,我运行此代码作为在潜入我的项目之前创建和初始化对象的测试。

string rHome = @"C:'Program Files'R'R-3.0.2";
string rPath = Path.Combine(rHome, @"bin'i386");
REngine.SetEnvironmentVariables(rPath, rHome);
REngine engine = REngine.GetInstance();
engine.Initialize();
Console.WriteLine("So far, so good.");
engine.Dispose();
Console.ReadKey();

代码不会产生异常,但是当它试图使用REngine.GetInstance()获取R实例时,会无声地失败。控制台不会写入任何内容,控制台也不会等待按键。Visual Studio告诉我XX.vshost.exe以代码2退出,但没有说明其他任何内容。

有人有什么见解吗?我想这不是路径的问题,因为我明确地设置了R路径。

无法从R.NET获取引擎实例

我遇到了同样的问题。调用REngine.GetInstance()将使整个进程静默退出,代码为2。

我调查了r。net和R3.2.2的源代码,然后发现:

  1. REngine.GetInstance()调用R.dll
  2. 中的本地函数setup_Rmainloop()
  3. setup_Rmainloop()在无法打开"base"库文件时调用exit()"%R_HOME%/library/base/R/base",退出代码为2。

我建议您检查fopen("%R_HOME%/library/base/R/base", "r")(或任何等效代码)是否失败。