FSLab模板项目在运行时出错

时间:2016-04-16 01:25:11

标签: f# fslab

FSLab模板提供错误"类型提供商' RProvider.RProvider'报告错误:类型提供程序构造函数抛出异常:无法在20秒内启动R.NET服务器"

我正在使用VS2015和fslab.org的最新模板

任何人都知道如何解决此错误?使用VS2013时出现同样的错误,所以我认为它与VS无关。

2 个答案:

答案 0 :(得分:1)

RProvider.Server.exe期待FSharp.Core v4.3.0.0但与4.4捆绑在一起,如果你运行RProvider.Server.exe,你应该看到异常。解决方法是使用绑定重定向将RProvider.Server.exe.config文件添加到同一目录。

答案 1 :(得分:1)

这是一种痛苦。我假设您从NuGet添加了FsLab并尝试构建项目。正如@kev所说,当前稳定版本的FsLab(0.3.18)捆绑了错误版本的FSharp.Core.dll。要查看@kev的含义,请转到$YOUR_PROJECT_DIR/packages/RProvider.1.1.17/lib/net40目录,在那里打开命令窗口,然后运行RProvider.Server.exe以查看自己的异常。

解决方法是创建一个绑定重定向,告诉运行时查找实际捆绑的程序集版本(4.4.0.0)而不是它期望的程序集版本(4.3.0.0)。为此,请在上述目录中创建一个名为RProvider.Server.exe.config的文件,并将以下内容粘贴到其中...

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="4.3.0.0" newVersion="4.4.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

......你应该好好去。要检查,请从命令行运行RProvider.Server.exe(它应该提供与之前不同的输出)或重建项目以检查错误消息是否停止显示。

显然,当FsLab NuGet包被整理出来时,这肯定会消失。