Visual StudioでWindowsフォームアプリを開発するとき、Webページの表示には WebBrowser クラスを利用するのが一般的だったが、WebBrowserクラスはIE ベースなので、最近では表示の不具合が増えてきた。拙作のEBWin4とKWIC Finder4 では、次の不具合が起きていた。
- KWIC Finder 4 の64bit版でPDFをブラウザビューで表示できない―WebBrowserのPDFの表示ではAdobe Readerのプラグインを使用しているが、Adobe Readerでは64bit版のプラグインが提供されていないためである。
- EBWin4のWeb検索で検索結果のWebページに表示が乱れる。特にGoogle Search では、検索結果が表示できない。
最近ではWebView2という Edge ベースのUI部品が提供されており、こちらだと上記の問題が解消できる。EBWin4とKWIC Finder4 も、遅ればせながらWebBrowserからWebView2へ移行を行った(64bit版のみ)。
WebView2の使用
WebView2を使用するには、まずNuGetパッケージマネージャで Microsoft.Web.WebView2をインストールする。
するとツールボックスにWebView2 コントロールが現れるので、Formにドラッグドロップで追加が可能になる。
WebBrowserとWebView2では若干メソッド名が異なるが、それほど苦労することなくWebView2に移行できた。
これにより、KWIC Finder4の64bit版でのPDFのブラウザ表示、およびEBWin4のWeb検索の正常な表示ができるようなった。
ただし、インストーラで配布ファイルを作成するとき、WebView2のランタイムを同梱しておく必要がある。特にARM版Windowsでx64エミュレータで実行するとき、x64用のランタイムがないと実行できない。
なお、M1 MacBook AirのVMWare上で動作するARM版Windowsで、EBWin4とKWIC Finder4 の64bit版が動作することを確認した。
実は、ARM64ネイティブのEBWin4とKWIC Finder4の開発も試みたが、C++/CLIで作成したDLLがARM64版だとどうしてもロードできず、断念した。.Net Frameworkの4.8.1ではARM64のネイティブサポートが入っているはずだが、どうも不完全な気がする。
Visual Studio 2026化
Visual Studio 2026 が正式版になったので、Visual Studio 2022 から移行してみた。
これまではVisual Studio のバージョンアップではプロジェクトファイルの更新がつきもので、必ず何らかの修正が必要になっていた。今回のVisual Studio 2026ではVisual Studio 2022と互換性が高く、拡張機能も含めてVisual Studio 2022 のプロジェクトがそのまま動き、2022と2026の共存も可能とのことである。
試しにVisual Studio 2026をインストールしてみたら、無修正で2022用のプロジェクトが動いた。起動も2026のほうが速く、2022を残しておく意味もないので、2022はアンインストールした。