Как включить распространяемые файлы VC ++, необходимые CEFSharp - PullRequest
0 голосов
/ 19 февраля 2019

Построение приложения с использованием браузера CEFSharp, отлично работает на моем компьютере, но вылетает на сервере со следующей ошибкой:

System.IO.FileLoadException: процедура, импортированная из «CefSharp.Core.dll»не удалось загрузить.

Я видел эту проблему по всему Интернету, и наиболее распространенным решением, похоже, является установка распространяемого VC ++.Однако у меня нет такого доступа на нашем производственном сервере.На сервере разработки я попытался установить redistrituable (x86, x64, 2017 и 2013), но ничего не изменилось.Компьютеры 64-битные, но приложение 32-битное, поэтому я попробовал все.

Может кто-нибудь сказать, какие конкретно файлы мне нужно добавить в каталог приложения для работы CEFSharp.В разделе 6 этого документа: https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#6-how-do-i-include-the-visual-studio-c-2012-redistributables-on-the-target-app перечислены необходимые каталоги файлов, но я использую Visual Studio 2017 и у меня нет этих каталогов на моем компьютере.

Дополнительная информация:

  • Машина разработки Windows 10, сервер 2016 Standard

  • Сборка установлена ​​на x86, не было никаких изменений конфигурации для режима Любой процессор

  • Приложение Windows Forms

  • CefSharp версии 71.0.0 от NuGet (и отдельно через Консоль управления пакетами В простом приложении CefSharp отсутствуют файлы во время выполнения )

  • Не используется пакет какого-либо типа или развертывание ClickOnce, вручную загружаются все файлы с моего компьютера на сервер

Обновление:

Хотя я все еще не могу заставить CEFSharp работать в моем проекте, я принял ответ Питера Ляпина, потому что он ответил на вопрос, который я задал.Теперь я знаю, какие файлы в распространяемом VC ++ нужно скопировать в папку моего приложения на сервере, у меня просто нет конкретных библиотек, которые он упоминал, на моем компьютере или на сервере.

Кроме того, я создал новыйпротестировать проект Windows формы с CEFSharp, и он работал на сервере без распространяемых библиотек VC ++.Однако мне нужен браузер CEFSharp для работы в пользовательском элементе управления, на который ссылается существующее приложение.

1 Ответ

0 голосов
/ 20 февраля 2019

Есть две библиотеки DLL, которые вам необходимо доставить вместе с проектом WinForms на основе CefSharp:

Если вы используете CefSharp v63.0.3 или ниже:

  • msvcp120.dll
  • msvcr120.dll

Если вы используете CefSharp v65.0.0-pre01 или выше:

  • msvcp140.dll или msvcp141.dll
  • msvcr140.dll или msvcr141.dll

Оба файла находятся на вашем компьютере разработчика в папке C:\Windows\System32 или C:\Program Files (x86)\Microsoft Visual Studio\[Version]\[Edition]\VC\Redist\MSVC\[Version]\[x64|x86]\Microsoft.VC150.CRT.

Обратите внимание, на вашем компьютере должна быть установлена ​​соответствующая версия Visual C ++, иначе вы не сможете их найти:

Обычно я копирую эти файлы в подпапку DLL в корневой папке решения, а затемскопируйте их в папку $(TargetDir) / output сборки, используя событие Post-build в настройках проекта.

...