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软件包得到解决时,这种情况有望消失。