我正在使用ReactJs。. NET中的ASP。NET MVC 4项目。我通过在应用程序启动时调用的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 c++ Redistributable for Visual Studio 2015位于这里:https://www.microsoft.com/en-us/download/details.aspx?id=48145,但抛出了相同的异常。
这里有什么明显的我错过了吗?是错误的Visual c++运行时,我已经安装?
这些DLL文件在ClearScript中吗?V8文件夹吗?例如,它们需要在binClearScript.V8ClearScriptV8-64.dll
。
或者,你可以尝试一下ReactJS的候选版本。. NET 3.0,它使用了一个更新版本的JavaScriptEngineSwitcher,它改变了V8的加载方式,不再需要手动复制DLL文件。目前还没有关于ReactJS的文档。NET 3.0,但它与当前的2.0非常相似。x版本。我将很快为最终版本编写文档。
在我的情况下,我设法通过安装Visual c++ 2013运行时来解决这个问题,这是在这种情况下实际工作的唯一版本。我在2012年和2015年都没有运气。
我在这里找到了答案:
https://github.com/reactjs/React.NET/issues/80和帮助我的注释是:
只是另一个注意,ClearScript 5.4.4自述说VS2015或2013 c++运行时可以工作,但根据我的经验,它只在2013年起作用是礼物。