Файлы Clearscript не могут быть найдены на хосте
Как и многие другие, я получаю следующую ошибку при развертывании моего приложения ASP.Net MVC:
Невозможно загрузить сборку интерфейса V8; убедитесь, что в вашем приложении установлены следующие файлы: ClearScriptV8-32.dll, ClearScriptV8-64.dll, v8-ia32.dll, v8-x64.dll
Clearscript был установлен как часть усилий по преобразованию меньших файлов "на лету" для запросов страниц.
Я тестировал свое приложение локально в ISS Express и ISS без затруднений.
Как предложено здесь http://clearscript3.rssing.com/chan-14849437/all_p12.html Я также включил недостающие библиотеки кода в качестве ресурсов в свой проект.
ClearScriptV8-32.dll
, ClearScriptV8-64.dll
, v8-ia32.dll
, v8-x64.dll
все они включены в папку ClearScript.V8 в папке bin. Удаление этой папки не решит проблему.
В конце моего ума. Любая помощь приветствуется.
Ответы
Ответ 1
причина в том, что asp.net мгновенно загружает все библиотеки в каталог /bin.
Я добавил следующее правило, чтобы игнорировать сборки Cleararscript, и он работал
<configuration>
<system.diagnostics>
<trace autoflush="true" />
</system.diagnostics>
<system.web>
<compilation>
<assemblies>
<remove assembly="ClearScriptV8-64" />
<remove assembly="ClearScriptV8-32" />
....
</assemblies>
</compilation>
...
Ответ 2
Чтобы быть ясным, это исключение не всегда вызвано отсутствующими ClearScriptV8-32.dll
, ClearScriptV8-64.dll
, v8-ia32.dll
или v8-x64.dll
. Часто проблема заключается в том, что dll, на который ссылается одна из вышеупомянутых dll, не может быть найдена. В случаях, когда соответствующие DLL-серверы на сервере, устанавливающие соответствующий распространенный V С++, обычно решают эту проблему транзитивной зависимости.
Согласно дискуссионному форуму проекта ClearScript больше не поддерживает Visual Studio 2012. Это означает, что версия распространяемого Visual С++, который должен быть установлен на вашем сервере, зависит от версии ClearScript, которую использует ваш проект:
Ответ 3
Возможно, будет немного поздно, но это может помочь другим людям прийти на этот пост.
Это обычная ошибка, если на сервере хостинга на Visual Studio 2012 или выше не установлена версия Visual С++ Redistributable.
http://www.microsoft.com/en-gb/download/details.aspx?id=30679
Ответ 4
Если вы развертываете на Windows Server 2012 с ролью IIS, вам нужно сделать две вещи, чтобы запустить ClearScriptV8:
вам нужно установить на сервер хостинга Visual С++ Redistributable для Visual Studio 2012 или выше: http://www.microsoft.com/en-gb/download/details.aspx?id=30679
- Обязательно размещайте ClearScript.dll в папке bin\folder и ClearScriptV8-64.dll и v8-x64.dll в bin\ClearScript.V8.
Дополнительно, для 32-разрядных приложений/платформ:
- Если вы используете 32-битную платформу, поместите ClearScriptV8-32.dll и v8-ia32.dll в папку bin\ClearScript.V8 \.
Кроме того, в диспетчере IIS щелкните правой кнопкой мыши на пуле приложений и выберите "Дополнительные настройки...". Установите для свойства "Включить 32-разрядные приложения" значение true.
Ответ 5
Ни один из ответов не работал у меня. Это приложение Windows Service.
На основе принятого ответа;
Я удалил v8-ia32.dll и ClearScriptV8-32.dll (поскольку мое приложение нацелено на x64)
Он решил проблему.