1

我在 ASP.NET MVC 4 项目中使用 ReactJs.NET。我通过在应用程序启动时调用的 ReactConfig.cs 中指定它来禁用对 MSIE javascript 引擎的回退:

ReactSiteConfiguration.Configuration.SetAllowMsieEngine(false);

这适用于我的开发人员机器,但不适用于生产。抛出的异常是:

Failed to initialise ClearScript V8. This is most likely caused by the native libraries (ClearScriptV8-64.dll and v8-x64.dll) missing from your app's Bin directory, or the Visual C++ runtime not being installed

我已确保将 ClearScript.V8 文件夹(带有 ClearScriptV8-64.dll 和 v8-x64.dll)复制到生产服务器和 bin 文件夹,因此我目前正在查看 Visual C++ 运行时是否丢失。我下载并安装了位于此处的 Visual Studio 2015 的 Visual C++ Redistributable : https ://www.microsoft.com/en-us/download/details.aspx?id=48145但引发了相同的异常。

我在这里有什么明显的遗漏吗?我安装的 Visual C++ 运行时是否错误?

4

2 回答 2

1

这些 DLL 文件是否在 ClearScript.V8 文件夹中?例如,他们需要在bin\ClearScript.V8\ClearScriptV8-64.dll

或者,您可以试用 ReactJS.NET 3.0 的候选版本,它使用更新版本的 JavaScriptEngineSwitcher,它改变了 V8 的加载方式,不再需要手动复制 DLL 文件。目前没有关于 ReactJS.NET 3.0 的文档,但它与当前的 2.x 版本非常相似。我将尽快为最终版本编写文档。

于 2016-10-03T07:09:51.883 回答
1

就我而言,我设法通过安装 Visual C++ 2013 运行时解决了这个问题,这是在这种情况下实际工作的唯一版本。我在 2012 年和 2015 年都没有运气。

我在这里找到了答案:

https://github.com/reactjs/React.NET/issues/80

帮助我的评论是:

还有一点需要注意的是,ClearScript 5.4.4 自述文件说 VS2015 或 2013 C++ 运行时可以工作,但根据我的经验,它只在 2013 年出现时才有效。

于 2016-10-03T07:16:35.950 回答