Visual Studio 2017 Ошибка инициализации VroomJs.JsEngine - PullRequest
0 голосов
/ 03 июля 2018

В моем проекте используется Reactjs, и я использую Visual Studio 2017. Недавно я сделал обновление программного обеспечения на VS 2017, но без изменений кода / конфигурации.

Однако, когда я запускаю свой проект локально в режиме отладки, я обнаружил ниже ошибку:

No JavaScript engines were registered, falling back to a default config! It is recommended that you configure JavaScriptEngineSwitcher in your app. See https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/Registration-of-JS-engines for more information.
Error initialising JavaScriptEngineSwitcher.V8.V8JsEngineFactory: JavaScriptEngineSwitcher.Core.JsEngineLoadException: During loading of V8JsEngine error has occurred. 
See more details:

Cannot load V8 interface assembly. Load failure information for v8-ia32.dll:
C:\Users\user1\AppData\Local\Temp\Temporary ASP.NET Files\vs\77655ce5\ca0bb6d0\assembly\dl3\300b733a\003cadac_c3f4d201\v8-ia32.dll: The specified module could not be found
C:\Code\project1\branches\apps\src\DotNet\COMP.project1.Web\v8-ia32.dll: The specified module could not be found
C:\Code\project1\branches\apps\src\DotNet\COMP.project1.Web\bin\v8-ia32.dll: The specified module could not be found ---> System.TypeLoadException: Cannot load V8 interface assembly. Load failure information for v8-ia32.dll:
C:\Users\user1\AppData\Local\Temp\Temporary ASP.NET Files\vs\77655ce5\ca0bb6d0\assembly\dl3\300b733a\003cadac_c3f4d201\v8-ia32.dll: The specified module could not be found
C:\Code\project1\branches\apps\src\DotNet\COMP.project1.Web\v8-ia32.dll: The specified module could not be found
C:\Code\project1\branches\apps\src\DotNet\COMP.project1.Web\bin\v8-ia32.dll: The specified module could not be found
   at Microsoft.ClearScript.V8.V8Proxy.LoadNativeLibrary()
   at Microsoft.ClearScript.V8.V8Proxy.LoadAssembly()
   at Microsoft.ClearScript.V8.V8Proxy.GetAssembly()
   at Microsoft.ClearScript.V8.V8Proxy.GetImplType(Type type)
   at Microsoft.ClearScript.V8.V8Proxy.CreateImpl[T](Object[] args)
   at Microsoft.ClearScript.V8.V8IsolateProxy.Create(String name, V8RuntimeConstraints constraints, Boolean enableDebugging, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8Runtime..ctor(String name, V8RuntimeConstraints constraints, V8RuntimeFlags flags, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8ScriptEngine..ctor(V8Runtime runtime, String name, V8RuntimeConstraints constraints, V8ScriptEngineFlags flags, Int32 debugPort)
   at JavaScriptEngineSwitcher.V8.V8JsEngine..ctor(V8Settings settings)
   --- End of inner exception stack trace ---
   at JavaScriptEngineSwitcher.V8.V8JsEngine..ctor(V8Settings settings)
   at JavaScriptEngineSwitcher.V8.V8JsEngineFactory.CreateEngine()
   at React.JavaScriptEngineFactory.GetFactory(JsEngineSwitcher jsEngineSwitcher, Boolean allowMsie)
Error initialising React.VroomJsEngine+Factory: JavaScriptEngineSwitcher.Core.JsEngineLoadException: During loading of VroomJs JavaScript engine error has occurred.    
See more details:

The type initializer for 'VroomJs.JsEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'VroomJs.JsEngine' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'VroomJsNative': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at VroomJs.JsEngine.js_set_object_marshal_type(JsObjectMarshalType objectMarshalType)
   at VroomJs.JsEngine..cctor()
   --- End of inner exception stack trace ---
   at VroomJs.JsEngine..ctor(Int32 maxYoungSpace, Int32 maxOldSpace)
   at React.VroomJsEngine.<>c.<.cctor>b__23_0()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at System.Lazy`1.get_Value()
   at React.VroomJsEngine.get_Engine()
   at React.VroomJsEngine..ctor()
   --- End of inner exception stack trace ---
   at React.VroomJsEngine..ctor()
   at React.VroomJsEngine.Factory.CreateEngine()
   at React.JavaScriptEngineFactory.GetFactory(JsEngineSwitcher jsEngineSwitcher, Boolean allowMsie)

Эта ошибка не мешает мне запускать и тестировать код.

Как я уже говорил, все, что я недавно сделал, - это обновил программное обеспечение VS 2017 ... Я пытался выполнить дикий поиск в проекте для 'v8-ia32', но ничего не нашел.

1 Ответ

0 голосов
/ 10 апреля 2019

Чтобы исправить эти ошибки, я сделал следующее:

  1. Убедитесь, что вы установили JavaScriptEngineSwitcher.V8, JavaScriptEngineSwitcher.V8.Native.win-x86 и JavaScriptEngineSwitcher.V8.Native.win-x64. (Я не установил JavaScriptEngineSwitcher.V8.Native.win-x86)

  2. Согласно https://reactjs.net/getting-started/aspnet.html отредактируйте ReactConfig.cs, я просто добавил это

JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName;
JsEngineSwitcher.Current.EngineFactories.AddV8();
  1. Перестройте проект.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...