参考:https://github.com/cefsharp/CefSharp/issues/601
https://gist.github.com/BlackBooth/19ce027c4f68c1eb4fc1144988ca6662

关键点:
(1)设置CefSettings的BrowserSubprocessPath属性为对应的CefSharp.BrowserSubprocess.exe的路径;
(2)在Program.cs中加载相关程序集;

  1. 将Cefsharp相关库放到bin\Debug\cefLib目录中

  2. 添加CefSharp类库引用,并把相关库的属性(复制本地)设置为false,这样VS就不会自动复制相关库到运行目录下;

  3. 修改Program.cs的代码如下, 注:在Program.cs中不能引用相关的Cefsharp相关库,否则会加载Cefsharp程序集失败;

static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){AppDomain.CurrentDomain.AssemblyResolve += OnResolveAssembly;CefSettingClass.InitializeCefSetting();Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MainForm());}//解析程序集失败,会加载对应的程序集private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args){Assembly executingAssembly = Assembly.GetExecutingAssembly();AssemblyName assemblyName = new AssemblyName(args.Name);var assemblyAllName = assemblyName.Name + ".dll";//加载CefSharp相关库if (args.Name.StartsWith("CefSharp")){string assemblyPath = Path.Combine(Application.StartupPath, CefSettingClass.CefLibName, assemblyAllName);return File.Exists(assemblyPath) ? Assembly.LoadFile(assemblyPath) : null;}//判断程序集的区域性if (!assemblyName.CultureInfo.Equals(CultureInfo.InvariantCulture)){assemblyAllName = string.Format(@"{0}\{1}", assemblyName.CultureInfo, assemblyAllName);}using (Stream stream = executingAssembly.GetManifestResourceStream(assemblyAllName)){if (stream == null) return null;var assemblyRawBytes = new byte[stream.Length];stream.Read(assemblyRawBytes, 0, assemblyRawBytes.Length);return Assembly.Load(assemblyRawBytes);}}}
  1. 新增CefSettingClass类,用于初始化CefSharp;
class CefSettingClass{public const string CefLibName = "cefLib"; //cef目录名称/// <summary>/// 初始化CEF的配置/// </summary>public static void InitializeCefSetting(){string appPath = Application.StartupPath;CefSettings settings = new CefSettings{Locale = "zh-CN", //中文BrowserSubprocessPath = Path.Combine(appPath, CefLibName, "CefSharp.BrowserSubprocess.exe"), //设置浏览器子程序启动路径};Cef.Initialize(settings);}}
  1. 主窗口代码如下,初始化并添加浏览器控件到主窗口中:
public partial class MainForm : Form{private ChromiumWebBrowser browser;public MainForm(){InitializeComponent();}private void MainForm_Load(object sender, EventArgs e){browser = new ChromiumWebBrowser("https://www.baidu.com"){Dock = DockStyle.Fill};this.Controls.Add(browser);this.Closing += OnClosing;}private void OnClosing(object sender, CancelEventArgs e){Cef.Shutdown();}}
  1. 最终的程序运行目录和运行结果如下:

Cefsharp——将Cefsharp相关库集中放到程序的子目录下相关推荐

  1. linux开发板添加qt库文件_QT程序怎么移植到开发板并运行

    需要的条件: 1.上位机编译好的可执行文件,以hello为例 在虚拟机的Ubuntu下,写好代码之后,定位到当前目录,执行命令 $ qmake -project //生成工程文件.pro $ qmak ...

  2. conda tensorflow_TensorFlow笔记1——补充附录(1) 机器学习相关库安装、使用中遇到的报错情况...

    本文内容汇总 Anaconda(python3.7)和原生python3.7安装tensorflow 警告 AVX2 FMA 报错 'tensorflow' has no attribute 'xxx ...

  3. python下载的库要放到哪里-python库在哪里下载?怎么安装?

    库可是我们在编程时,不可缺少的内容,在运行脚本时候,需要很多库的支持,因此学会基本的下载和安装库尤为重要,一起来看下吧~ Windows下python库的3种常用安装方法 1.pip安装(需要pip) ...

  4. 优美库图片小程序 Version1.0

    优美库图片小程序 version1.0 今天制作一个优美库图片小程序,网址http://www.umei.cc/bizhitupian/, 爬虫的相关流程:获取目标网址-获取数据-存储数据.下面使该网 ...

  5. 折腾词库,一个词库互转程序

    我在之前写过一个小程序,用于实现QQ拼音.搜狗拼音.谷歌拼音和百度手机拼音输入法词库的互转,文章地址是:http://www.cnblogs.com/studyzy/archive/2009/12/3 ...

  6. 附录3 pycoin库、ku程序和tx交易程序

    附录3 pycoin库.实用密钥程序ku和交易程序tx pycoin库起初由Richard Kiss 撰写和维护 ,基于 Python 脚本的处理交易密钥,不仅支持比特币交易,也支持其他非标准脚本语言 ...

  7. Ubuntu 18.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+SLAM相关库的安装

    文章目录 一.换源 二.安装三方库 2.1 安装必要的依赖项 2.2 安装Pangolin 2.3 安装OpenCV3 2.4 安装Eigen3 三.安装ORB-SLAM2 四.安装ORB-SLAM3 ...

  8. GitHub 十个最受欢迎的 React 相关库

    (翻译自 medium :Top 10 React Libraries on GitHub  原文地址) 由Facebook创建的 React 已经成为一个十分强大的 Javascript 框架,它使 ...

  9. 关于Python安装PyQT5相关库PyQT5-tools安装失败版本不适配的问题

    最近想要用Python做界面程序的开发,研究了下,主流是使用PyQT5相关库来开发,于是就开始了PyQT5相关库的安装.本以为安装一个库而已,这不是Python开发者手到擒来的事吗,so easy啦! ...

最新文章

  1. 两代“狗”开发者首次解答30多个问题,一定有你想了解的!(附论文下载)
  2. 你真的了解计算生物学和AI for Science吗?
  3. (转)oracle 11g安装后用户名忘记怎么办
  4. final,finally,finaliz的区别(Java)
  5. san框架计数的textarea
  6. WebRTC音视频引擎研究(2)--VoiceEngine音频编解码器数据结构以及参数设置
  7. Laravel 5无法打开所需的bootstrap /../ vendor / autoload.php
  8. 玛雅三维动画制作Maya 2022 for Mac
  9. 2020-06-28
  10. 如何将几个pdf合并成一个pdf?
  11. 超好用的mac虚拟机软件:VM虚拟机 mac中文版
  12. Hexo 搭建博客提交百度 sitemap 抓取失败
  13. [CF1603D] Artistic Partition——欧拉函数,线段树优化DP
  14. iPhoneX需求下滑对中国手机企业是好消息
  15. rt-thread 学习(二)外部中断 添加头文件 延时函数
  16. 12对胸椎对应体表标志_胸部体表标志详解.ppt
  17. 时隔一个月今日头条又宕机了 这个技术公司的“月经宕”有点频繁
  18. Kotlin学习(七):函数
  19. php 生成思维导图,一个用JavaScript生成思维导图(mindmap)的github repo
  20. 国土调查数据库管理系统及共享服务平台

热门文章

  1. VOLO Vision Outlooker for Visual Recognition论文分析
  2. GII全球创新指数2013-2020
  3. 三个线程轮流执行顺序打印ABC
  4. 民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?...
  5. 前端vue中实现文件下载的几种方法
  6. matlab解坐标方程,用MATLAB求解亥姆霍兹方程的方法
  7. 数据库IP网络切换问题
  8. js 随机选取动画_jquery实现随机运动动画
  9. 无线网络技术导论笔记(第二讲)
  10. zbrush插件布尔运算插件perfectbool安装方法