有一段时间,我一直希望在.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上)?
答案 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并丢失了文件,现在一切正常。