FSLab模板项目在运行时出错



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

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

有人知道如何解决这个错误吗?我在使用VS2013时遇到了同样的错误,所以我认为它与VS无关。

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

这很痛苦。我假设你从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软件包得到解决时,这种情况有望消失。

最新更新