開発環境:visual studio2015
開発言語:C#.net
1.概要
以前の記事で【WebBrowserコントロール】を使って
ブラウザを組み込んだアプリケーションを作成してみました。
ですが、デフォルト設定だと【IE7】になってしまったり
【IE11】で動かすにはレジストリをいじったりと
色々と面倒な設定があって使いにくかったので
今回は【CefSharp】を使って【chromium】ベースのブラウザを実装してみようと思います。
2.インストールする
NuGetからインストールを行います。
【ツール】→【NuGetパッケージマネージャー】→【ソリューションのNuGetパッケージの管理】をクリックします。
検索ボックスに【cef】と入力し
【CefSharp.WinForms】を選択し、インストールします。
【.NETFramework,Version=v4.5.2】が対象になっています。
3.【Any CPU】でも使えるようにする
インストールしたままだと下記のようなエラーが出ます。
CefSharp.Common contains unmanaged resoures, set your project and solution platform to x86 or x64. Alternatively for AnyCPU Support see https://github.com/cefsharp/CefSharp/issues/1714
これはプロジェクトのプラットフォームターゲットを【Any CPU】としている場合に発生します。
何かというとインストール時のデフォルトでは
【x86】【x64】のどちらかを選択しなければいけません。
これを【Any CPU】でも動作するように設定します。
一度プロジェクトを閉じます。
プロジェクトフォルダにある【csproj】を開きます。
<CefSharpAnyCpuSupport>true</CefSharpAnyCpuSupport>
次に【App.config】を開きます。
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="x86"/> </assemblyBinding> </runtime>
プロジェクトを起動し
CefSharpの参照エラーがなければ完了です。
4.スクリプト
とりあえず【yahoo】のページを表示してみました。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using CefSharp; using CefSharp.WinForms; namespace webViewerCef { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { ChromiumWebBrowser cefBrowser; CefSettings settings = new CefSettings(); Cef.Initialize(settings); cefBrowser = new ChromiumWebBrowser("https://yahoo.co.jp"); this.Controls.Add(cefBrowser); cefBrowser.Dock = DockStyle.Fill; } } }
下図のとおり【chromium】ベースのブラウザを実装出来ました。