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

时间:2017-05-12 13:51:57

标签: c# r .net-core

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

using RDotNet;

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

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

  

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

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

3 个答案:

答案 0 :(得分:1)

您确定这是一个Framework 版本问题吗?

.x版本的.net版本中没有System.Security.Permissions文件(尽管有namespace)。但在.net Core 2.0中具有此名称的dll(例如,包含PrincipalPermissions类。在.net 4.7中,此类在mscorlib.dll中实现)。

在得出结论认为这不起作用之前,可能值得查看一下您的项目参考。如果你可以在dll中添加一个引用(可能你应该已经安装了Core 2.0运行时),这可能会解决问题。

答案 1 :(得分:0)

从NuGet获取最新的System.Security.Permissions在新的2.1控制台应用程序中为我解决了此问题。

答案 2 :(得分:0)

请检查您的依赖关系。您仍然需要安装R.Net R.Net。这将安装丢失的安全文件。我收到了与您收到的错误相同的错误消息,然后我安装了R.Net并丢失了文件,现在一切正常。