Использование R.NET.Community в .NET Core 2.0 Preview 1

Некоторое время я надеялся использовать R.NET.Community в приложении .NET Core. Очевидно, что если пакет NuGet не был перенесен на .NET Core, это было бы не стартером. Тем не менее, с объявлением .NET Core 2.0 Preview 1, которое вы можете ссылаться на библиотеки .NET Framework от .NET Core, я дал следующее:

using RDotNet;

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

Создавая это как приложение .NET Core 2.0 в новом представлении Visual Studio 2017, это, по крайней мере, доходит до компиляции и работы, но ошибки при вызове GetInstance:

Не удалось загрузить файл или сборку 'System.Security.Permissions, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = cc7b13ffcd2ddd51'. Система не может найти указанный файл.

Есть ли что-нибудь, что я могу сделать, чтобы исправить это, или это только один из этих битов, который не поддерживается в .NET Core (который, как я подозреваю, может быть вероятным из-за того, что CAS не поддерживается в .NET Core )?

Ответы

Ответ 1

Вы уверены, что это проблема с версией Framework?

В версии 4.x версии .NET нет версии System.Security.Permissions (хотя существует пространство имен ). Существует DLL с этим именем в .net Core 2.0, хотя (содержащий, например, класс PrincipalPermissions. В .net 4.7, этот класс реализуется в mscorlib.dll).

Возможно, стоит взглянуть на ваши ссылки на проекты, прежде чем вы сделаете вывод, что это не сработает. Если вы можете добавить ссылку на dll (который предположительно должен был быть установлен с средой выполнения Core 2.0), это может решить проблему.