Ошибка в сборке CefSharp.Example.dll

Ошибка в сборке CefSharp.Example.dll

Попробовал создать Release проекта сделанного на CefSharp для WPF.

CefSharp Quick-Start

Все работало в VisualStudio, однако когда я попробовал запустить скомпилированные файлы в другой папке, то возникла следующая ошибка(не находит папку с ресурсами):

System.IO.DirectoryNotFoundException не обработано
Message: Необработанное исключение типа "System.IO.DirectoryNotFoundException" в CefSharp.Example.dll

Потратив некоторое время я нашел решение. Идем в проект CefSharp.Example, там находим класс CefExample.cs находим там такой код:
settings.RegisterScheme(new CefCustomScheme
{
SchemeName = "localfolder",
SchemeHandlerFactory = new FolderSchemeHandlerFactory(rootFolder: @"..\..\..\..\CefSharp.Example\Resources",
schemeName: "localfolder", //Optional param no schemename checking if null
hostName: "cefsharp", //Optional param no hostname checking if null
defaultPage: "home.html") //Optional param will default to index.html
});

Ошибка здесь в задании пути к ресурсам, в итоге проект ищет ресурсы там где их нет. Заменим код на следующий (замена красным цветом):

string exePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
settings.RegisterScheme(new CefCustomScheme
{
SchemeName = "localfolder",
SchemeHandlerFactory = new FolderSchemeHandlerFactory(rootFolder: Path.Combine(exePath, "Resources"),
schemeName: "localfolder", //Optional param no schemename checking if null
hostName: "cefsharp", //Optional param no hostname checking if null
defaultPage: "home.html") //Optional param will default to index.html
});

Осталось еще установить в свойствах файлов (html, css, js файлы) ресурсов (папка /Resources ) значение “Копировать в выходной каталог” в значение “Копировать всегда”.

Теперь код ищет ресурсы в папке с нашим приложением. Осталось перекомпилировать проект (в папке проекта теперь есть папка /Resources).

Теперь все будет работать.

P.S. Считаю что CefSharp самое адекватное решение для работы с chromium на данный момент.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре − 3 =