如何通过rClr调试从R调用的c#代码?

时间:2017-09-04 13:21:05

标签: c# .net r visual-studio rclr

我正在尝试通过rClr调试从R调用的C#方法。在VS-project中,我设置了start action属性以使用R-script作为命令行参数启动Rscript.exe。 (类似于您将使用ExcelDNA调试从Excel调用的c#函数。)R脚本按预期运行,但执行不会在断点处停止。所以我无法从Visual Studio进行任何调试。

我做错了什么?

这是一个最小的例子:

VS-project RLib1中的C#代码 - Calculates.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RLib1
{
    public class Calculate {
        public static double Sum(double x1, double x2) {
            return x1 + x2;
        }
    }
}

RLib1.csproj中的属性
启动外部程序:c:\ R \ R-3.3.2 \ bin \ Rscript.exe
命令行参数:c:\ VSProjects \ RLib1 \ TestRLib1.R

TestRLib1.R中的R脚本

library(rClr)
clrLoadAssembly('C:/VSProjects/RLib1/RLib1/bin/Debug/RLib1.dll')
clrGetTypesInAssembly("RLib1")
clrCallStatic("RLib1.Calculate","Sum",2,5)

1 个答案:

答案 0 :(得分:0)

您可能希望使用visual studio的“附加到进程”功能,因为它在调试行为方面更加透明;有关详细信息,请参阅$unwind