BundleTransformer для меньшего количества жалоб "Не удалось найти фабрику, которая создает экземпляр движка JavaScript"
Если вы обновляете BundleTransformer с версии 1 до версии 2, вы можете получить следующее сообщение:
Не удалось найти фабрику, которая создает экземпляр движка JavaScript с именем
MsieJsEngine
,
Как и я, вы, возможно, даже не поняли, что обновили больше, чем просто точечный релиз.
Как исправить?
2 ответа
Версия 2 больше не использует WEB.CONFIG для конфигурации
Итак, начните с удаления и прочитайте остальную часть этой ссылки
https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/How-to-upgrade-applications-to-version-2.X
В основном вы будете делать следующее:
- Удаление существующих узлов web.config для движка javscript
- Добавление к чему-то вроде global.asax некоторого кода инициализации
- Установите пакеты Nuget для движков, которые вы хотите использовать
- Обязательно добавьте
using
заявление, чтобы иметь возможность использовать методы расширения (если вы выберете этот путь)
Я закончил с чем-то вроде этого:
using JavaScriptEngineSwitcher.Core;
using JavaScriptEngineSwitcher.Msie;
using JavaScriptEngineSwitcher.V8;
....
public class JsEngineSwitcherConfig
{
public static void Configure(JsEngineSwitcher engineSwitcher)
{
engineSwitcher.EngineFactories
.AddMsie(new MsieSettings
{
UseEcmaScript5Polyfill = true,
UseJson2Library = true
})
.AddV8();
engineSwitcher.DefaultEngineName = MsieJsEngine.EngineName;
}
}
Я следую инструкциям, но мой код теперь не работает на BundleConfig
var cssTransformer = new StyleTransformer ();
в
name
атрибут/configuration/bundleTransformer/less/jsEngine
В элементе конфигурации не указано имя движка JavaScript.Если у вас не установлен движок JavaScript, то для корректной работы этого модуля рекомендуется установить один из следующих пакетов NuGet: * JavaScriptEngineSwitcher.Msie * JavaScriptEngineSwitcher.V8 * JavaScriptEngineSwitcher.ChakraCore
После установки пакета необходимо установить имя движка JavaScript (например,
MsieJsEngine
) кname
атрибут/configuration/bundleTransformer/less/jsEngine
элемент конфигурации.