Шаблон проекта FSLab выдает ошибку при запуске
Шаблон FSLab выдает ошибку "Поставщик типа 'RProvider.RProvider' сообщил об ошибке: конструктор поставщика типа выдал исключение: не удалось запустить сервер R.NET в течение 20 секунд"
Я использую VS2015 и последний шаблон от fslab.org
Кто-нибудь знает, как обойти эту ошибку? Я получаю ту же ошибку при использовании VS2013, поэтому я не думаю, что это связано с VS.
2 ответа
RProvider.Server.exe ожидает FSharp.Core v4.3.0.0, но в комплекте с 4.4, если вы запустите RProvider.Server.exe, вы должны увидеть исключение. Обходной путь - добавить файл RProvider.Server.exe.config в тот же каталог с перенаправлением привязки.
Это боль. Я предполагаю, что вы добавили FsLab из NuGet и попытались создать проект. Как говорит @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 будет отсортирован.