暫不管功能實現,我們先來了解一下程序輸出了些什么。
Cef輸出
輸出目錄中包括了CEF必選和可選的類庫和資源文件(加粗的為必選),它們的主要功能如下:
│ CefSharp.dll:CefSharp基礎類庫,定義了相關接口;
│ CefSharp.Core.dll:CefSharp核心類庫;
│ CefSharp.WinForms.dll:CefSharp組件類庫,如果是其他平台,可能是CefSharp.Wpf.dll、CefSharp.OffScreen.dll
│ CefSharp.BrowserSubprocess.Core.dll:加載多進程類庫,如果缺少,瀏覽器無法正常運行。
│ CefSharp.BrowserSubprocess.exe:同上
│ cef.pak:CEF資源文件,如果缺少,可能導致某些組件顯示或使用異常。
│ cef_100_percent.pak:同上。
│ cef_200_percent.pak:同上。
│ cef_extensions.pak:擴展應用資源文件,如果缺少,Chrome擴展將無法運行。
│ chrome_elf.dll:崩潰報告類庫,如果缺少,Chrome瀏覽器將無法正常運行。
│ d3dcompiler_47.dll:Windows Vista及以后系統需要文件。
│ debug.log:調試的日志,即Console輸出。
│ devtools_resources.pak:開發者工具資源文件,如果缺少,Chrome開發者工具將無法運行。
│ icudtl.dat:支持unicode文件。
│ libcef.dll:CEF的核心庫,包括js引擎、網頁加載渲染邏輯等,Release版有111M,有點大,沒辦法。
│ libEGL.dll:Direct3D支持文件,如果缺少,HTML5在渲染2D畫布,3D CSS,WebGL時失效。
│ libGLESv2.dll:同上
│ natives_blob.bin :V8引擎快照數據,不必深究
│ snapshot_blob.bin:同上
│ v8_context_snapshot.bin:同上
│ README.txt :開源協議文件,CefSharp遵循BSD協議。
├─GPUCache: GPU緩存目錄,自動生成。
│ data_0
│ data_1
│ data_2
│ data_3
│ index
├─locales 本地化資源,如果沒有,區域設置將配置默認語言環境"en-US"
│ am.pak
│ ……
│ en-US.pak
│ ……
│ zh-CN.pak
│ zh-TW.pak
└─swiftshader 在 CPU 上進行高性能圖形渲染的類件庫,OpenGL的替代者。
如果運行時顯示異常或報缺少依賴項,請對照檢查。
開源協議
CefSharp遵循BSD協議,它的規則相當比較自由,基本上可以"為所欲為",可任意修改源碼和發布,但不可:
(1)如果再次發布的產品中包含源代碼,則需要在源代碼中必須帶有原來代碼中的BSD協議;
(2)如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議;
(3)不可以用開源代碼的作者、機構等名義來做市場推廣。
輸出目錄
一大堆文件放在根目錄下,有點亂,可以把它放在新建的CefSharp文件夾下,然后通過修改配置來讀取它們。
在App.config中添加如下內容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="CefSharp" />
</assemblyBinding>
</runtime>
</configuration>
當然也可以用代碼來實現,其中CPUCache和delug.log是運行是產生的,只能和應用程序exe在一個目錄。
參考
https://blog.csdn.net/evil_119/article/details/78751310
Readme.txt