У меня проблемы с использованием CefSharp. Ну, не совсем так. CefSharp хорошо установлен и настроен в моем приложении (с несколькими процессорами) и работает очень хорошо. Это приложение winform, и я использую CefSharp для отображения некоторой статистики для моих конечных пользователей, которая рассчитывается через webApi. Но это очень маленькая часть моего приложения, и не у всех моих пользователей есть эта опция. Но проблема в том, что CefSharp использует VC ++ Redistribuable, и некоторые из моих пользователей не установили его (и иногда мы не можем установить его на компьютере, потому что системный администратор не позволяет нам это делать). Но дело в том, что если я запускаю мое приложение в этом случае, оно зависало !!!
Я поместил подтверждение в первую строку моего Program.cs (чтение первой строки при запуске приложения) в проверьте, установлен ли VC ++ или нет, чтобы отключить эту опцию, но я не могу достичь этой точки, приложение до sh до этого пыталось загрузить DLL-библиотеку CefSharp, даже если бы я ее не использовал.
static void Main(string[] args)
{
isVC2015to2019x86Installed = CRedistributableChecker.CRedistributablePackage.IsInstalled(CRedistributableChecker.RedistributablePackageVersion.VC2015to2019x86) ||
CRedistributableChecker.CRedistributablePackage.IsInstalled(CRedistributableChecker.RedistributablePackageVersion.VC2015x86) ||
CRedistributableChecker.CRedistributablePackage.IsInstalled(CRedistributableChecker.RedistributablePackageVersion.VC2017x86);
if (isVC2015to2019x86Installed)
{
//Need to start the assembly with the right environment(x32 or x64) because this dll does not support any cpu compilation
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += OnAssemblyResolve;
var settings = new CefSharp.WinForms.CefSettings()
{
BrowserSubprocessPath = System.IO.Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
Environment.Is64BitProcess ? "x64" : "x86",
"CefSharp.BrowserSubprocess.exe")
};
CefSharp.CefSharpSettings.ShutdownOnExit = false;
CefSharp.Cef.Initialize(settings);
}
else
MessageBox.Show("test");
И я знаю, что это комбинация CefSharp и VC ++, потому что, если я удаляю все ссылки на него или если я устанавливаю VCC ++, приложение запускается отлично.
Есть ли способ условно загрузить CefSharp, если VC ++ установлен или нет? Или хотя бы способ запуска приложения ...
Заранее спасибо.