在.NET Core 2.0 Preview 1中使用R.NET.Community

Phi*_*all 17 c# r .net-core

有一段时间,我一直希望在.NET Core应用程序中使用R.NET.Community.显然虽然NuGet包没有移植到.NET Core,但这是一个非首发.但是,随着.NET Core 2.0 Preview 1的发布,你可以从.NET Core引用.NET Framework库,我又说了一遍:

using RDotNet;

namespace RDotNetCore2
{
    class Program
    {
        static void Main(string[] args)
        {
            REngine.SetEnvironmentVariables();
            var engine = REngine.GetInstance();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在新的Visual Studio 2017预览版中将其创建为.NET Core 2.0应用程序,至少可以进行编译和运行,但GetInstance调用时出现错误:

无法加载文件或程序集'System.Security.Permissions,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'.该系统找不到指定的文件.

有什么我可以做的来解决这个问题,或者这只是.NET Core中不支持的那些内容之一(我怀疑可能是由于.NET Core不支持CAS的事实)?

Bob*_*ers 1

您确定这是框架版本问题吗?

.net 4.x 版本中没有System.Security.Permissions文件(尽管有一个命名空间)。不过,.net Core 2.0 中有一个具有此名称的 dll(例如,包含该类PrincipalPermissions。在 .net 4.7 中,该类在 中实现mscorlib.dll)。

在您得出这行不通的结论之前,可能值得查看一下您的项目参考资料。如果您可以在其中添加对该 dll 的引用(大概您应该已随 Core 2.0 运行时一起安装),则可能会解决问题。