Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您的计算机中缺少Rlapack.dll-c#和R_C#_R - Fatal编程技术网

您的计算机中缺少Rlapack.dll-c#和R

您的计算机中缺少Rlapack.dll-c#和R,c#,r,C#,R,当我通过集成了R的Visual Studio 2010运行c#应用程序时,我得到一个错误:程序无法启动,因为您的计算机中缺少Rlapack.dll。尝试重新安装程序以解决此问题。 我试着重新安装程序,但没有成功。 我也试着把它放在有矩阵的文件夹里,但它不起作用。这一解决办法是在《公约》中提出的 我正在运行64位Windows 7!应用程序是32位的。 有两个dll。一个在名为i386的文件夹中,另一个在文件夹x64中 这是我的密码: using System; using System.Coll

当我通过集成了R的Visual Studio 2010运行c#应用程序时,我得到一个错误:
程序无法启动,因为您的计算机中缺少Rlapack.dll。尝试重新安装程序以解决此问题。
我试着重新安装程序,但没有成功。 我也试着把它放在有矩阵的文件夹里,但它不起作用。这一解决办法是在《公约》中提出的

我正在运行64位Windows 7!应用程序是32位的。 有两个dll。一个在名为i386的文件夹中,另一个在文件夹x64中

这是我的密码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using RDotNet;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {



        public Form1()
        {
            InitializeComponent();
            string dlldir = @"D:\Program Files\R-2.15.0\bin\i386";

            bool r_located = false;


            while (r_located == false)
            {
                try
                {
                    REngine.SetDllDirectory(dlldir);
                    REngine.CreateInstance("RDotNet");
                    r_located = true;
                }

                catch
                {
                    MessageBox.Show(@"Unable to find R installation's \bin\i386 folder.
                    Press OK to attempt to locate it.");


                }
            }
        }
    }
}

下面是我刚刚做的事情,它起了作用:我将dll放在应用程序的bin文件夹中。

在校准dll之前,尝试设置路径变量

     var envPath = Environment.GetEnvironmentVariable("PATH");
     string s = null;
     if (Environment.Is64BitProcess)
         s = @"C:\Program Files\R\R-2.15.0\bin\x64";
     else
         s = @"C:\Program Files\R\R-2.15.0\bin\i386";
     Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + s);

我知道这个问题已经得到了回答,但那是在2012年。对于2018年R版本3.4.3或更高版本仍然存在此问题的任何人,特别是在尝试从R.net主页上进行跟踪时,我做了以下工作来解决此问题:

  • 在代码中,在
    REngine engine=REngine.GetInstance()行之前,添加此行
    REngine.SetEnvironmentVariables(@“C:\Program Files\R\R-3.4.3\bin\x64”,@“C:\Program Files\R\R-3.4.3”)

  • 右键单击project,转到build并取消选中“首选32位”

  • C:\ProgramFiles\R\R-3.4.3\bin\i386

  • 粘贴在
    C:\Program Files\R\R-3.4.3\library\stats\libs\i386
    C:\Program Files\R\R-3.4.3\library\Matrix\libs\i386

  • C:\ProgramFiles\R\R-3.4.3\bin\x64复制
    Rlapack.dll

  • 粘贴到
    C:\Program Files\R\R-3.4.3\library\stats\libs\x64
    C:\Program Files\R\R-3.4.3\library\Matrix\libs\x64


  • 这是一种痛苦,但这就是它最终对我起作用的原因。

    您是否尝试将
    dlldir
    添加到
    PATH
    -环境变量中?您是否运行32位或64位Windows?您是否尝试运行64位应用程序,链接到32位DLL?不确定PATH变量如何工作。我应该使用特定的名称吗?另外,如果DLL是32位的,我该怎么办?我猜您正在尝试仅基于代码中列出的路径加载32位DLL。该DLL已存在于我的bin.i386文件夹中。我还将Path vairable设置为C://ProgramFiles/R/bin/i386。但是,对于Python rpy2,在使用Web应用程序而不是windows窗体时会出现相同的错误。只要3/4/5/6就足够了。。非常感谢,非常感谢。我遇到错误“无法加载共享对象'D:/Home/R/R-3.3.3/library/stats/libs/x64/stats.dll”,这就是修复方法