Code Bye

C# Winform 使用cefsharp开发chrome浏览器项目(二)

本文主要介绍C#中如何搭建cefsharp开发环境,用cefsharp开发winform内嵌web应用程序。

一、使用VS中的nuget下载程序集dll或者nuget网站自行下载。

程序集下载地址在https://www.nuget.org/packages/CefSharp.WinForms/。目前版本已经更新到51.0 .可以通过nuget轻松获得所有的依赖库。下载后再在项目中添加引用。 主要dll如下图

二、把项目配置为x86或者x64目标平台

否则添加项目之后进行编译,会出现错误。

CefSharp.Common does not work correctly on “AnyCPU” platform. You need to specify platform (x86 / x64)。 这个错误其实是cefsharp的一个缺陷。暂时的解决方法就是将项目的目标平台改为x64 或者x86。

三、初始化cefsharp并创建添加ChromiumWebBrowser显示网页。

public partial class Form1 : Form

{

CefSharp.WinForms.ChromiumWebBrowser webCom = null;

public Form1()

{

InitializeComponent();

Load +=Form_Load;

}

protected void Form_Load(object sender, EventArgs e)

{

webCom = new CefSharp.WinForms.ChromiumWebBrowser(“www.baidu.com“);

webCom.Dock = DockStyle.Fill;

panel1.Controls.Add(webCom);

webCom.Load(“www.baidu.com“);

}

private void btn_multiChrome_Click(object sender, EventArgs e)

{             for (int i = 0; i < 5; i++)             {

childForm child = new childForm();

child.Show();

}

}

}

这样winfrom就可以显示百度首页了

 

四、首次搭建cefsharp环境可能遇到的问题。

1、没有在程序启动的时候初始化cefsharp导致添加ChromiumWebBrowser控件显示一片灰色空白。

2、bin目录下没有包含CefSharp.BrowserSubprocess.Core.dll、CefSharp.BrowserSubprocess.exe。关于这两个资源文件的作用,有兴趣可以了解

浏览器的多进程架构机制原理。当程序中多个ChromiumWebBrowser控件显示网页就会加载多个CefSharp.BrowserSubprocess.exe进程。多个进程可以在任务管理器中看到。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# Winform 使用cefsharp开发chrome浏览器项目(二)