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 элемент конфигурации.

Другие вопросы по тегам