es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Colocando las dependencias de CefSharp en un directorio específico.

Estoy intentando crear una aplicación de formularios .net que use cefsharp, pero todas las dependencias de cefsharp se colocarán y utilizarán desde un directorio específico en la PC (por ejemplo, C:\Chromium).

He visto algunas entradas pero casi todas son antiguas y usando versiones muy viejas de cefsharp.

¿Cómo puedo lograr esto con cefsharp 96.0.142?

Ya lo intenté con el siguiente código:

pero no funcionó. También intenté agregar el directorio C:\Chromium a la variable de entorno PATH, pero tampoco funcionó. Siempre obtengo excepciones como:

System.IO.FileNotFoundException: No se puede cargar el archivo o ensamblado ‘CefSharp.WinForms’

Parece ser algo muy fácil de hacer, pero me quedé realmente atascado.

Cualquier idea sería realmente útil. Gracias de antemano.

EDIT#1 Fragmento de código

this.chromiumComponent = new CefSharp.WinForms.ChromiumWebBrowser();
this.SuspendLayout();
//
// chromiumComponent
//
this.chromiumComponent.ActivateBrowserOnCreation = false;
this.chromiumComponent.Dock = System.Windows.Forms.DockStyle.Fill;
this.chromiumComponent.Location = new System.Drawing.Point(0, 0);
this.chromiumComponent.Name = “chromiumComponent”;
this.chromiumComponent.Size = new System.Drawing.Size(800, 450);
this.chromiumComponent.TabIndex = 0;

Hago referencia a los dlls CefSharp, CefSharp.Core, CefSharp.WinForms desde el directorio C:\Chromium. Mi intención no es cargar los dlls desde una subcarpeta del proyecto. En su lugar, me gustaría colocar los dlls en un directorio genérico (como C:\Chromium) y que mi aplicación los utilice desde este directorio.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para utilizar CefSharp 96.0.142 desde un directorio específico en una aplicación .NET Forms, puedes seguir estos pasos:

    1. Descarga y extrae los archivos binarios de CefSharp 96.0.142 desde el sitio web oficial.
    2. Copia los siguientes archivos de la carpeta extraída a tu directorio deseado (en este caso, C:\Chromium):
      • CefSharp.Core.dll
      • CefSharp.dll
      • CefSharp.WinForms.dll
      • CefSharp.BrowserSubprocess.Core.dll
      • CefSharp.BrowserSubprocess.exe
      • libcef.dll
    3. En tu aplicación .NET Forms, añade referencias a los archivos DLL de CefSharp, CefSharp.WinForms y CefSharp.Core desde el directorio C:\Chromium.
    4. En el código de tu formulario, inicializa el control ChromiumWebBrowser y establece su BrowserSettings para deshabilitar la aceleración de GPU (lo cual puede causar problemas al ejecutarse desde un directorio específico). Aquí tienes un ejemplo de fragmento de código:
    this.chromiumComponent = new CefSharp.WinForms.ChromiumWebBrowser();
    this.chromiumComponent.BrowserSettings = new CefSharp.WinForms.BrowserSettings()
    {
        WindowlessRenderingEnabled = true,
        BackgroundColor = CefSharp.ColorSet.FromARGB(255, 255, 255, 255),
        OffScreenTransparentBackground = true,
        WebGl = CefState.Disabled,
        WebGL2 = CefState.Disabled,
        AcceleratedPaintingEnabled = false,
        SoftwareRenderingEnabled =true,
    };
    this.chromiumComponent.Dock = System.Windows.Forms.DockStyle.Fill;
    this.Controls.Add(this.chromiumComponent);
    

    Con estos pasos, tu aplicación .NET Forms debería poder utilizar CefSharp 96.0.142 desde el directorio C:\Chromium sin problemas.

Comments are closed.