ネタ探しの旅の途中で、(セキュリティに問題があった)Internet Explorerで使われていた昔のWebBrowserに代わって現在のEdgeで使われているWebView2コンポーネントのことを知りました。そこで、WebView2コンポーネントを使う簡単なサンプルを見つけてきてMSCompAssでコンパイルするとエラーが出ます。
最初はDLL読み込み文は書いたけど、
using Microsoft.Web.WebView2.Core;
using Microsoft.Web.WebView2.WinForms;
これらのDLLへのパスが通っていないのではないか、と考えました。
それでExplorerで調べて、WebView2SDKのパスをMSCompAssに与えてコンパイルすると今度は、
fatal error CS0009: '(略)Microsoft.Web.WebView2.Core.dll' メタデータ ファイルを開けませんでした -- '間違ったフォーマットのプログラムを読み込もうとしました。 '
というエラーが出てコンパイルすることが出来ません。
どうもこのコントロール(DLL)は版の管理為、ユーザーサイドで固定版を管理するか、OSにエバーグリーン版を管理させるか、のいずれかの対処を採らなくてはならないようです。(知らんけど)ということでVisual Studioを使わないとちょっと無理かな。
そんな訳で又々CharGPT様に相談しました。(↓)でもやっぱり結論は変わらないかな。
【ChatGPTの回答】
このエラーメッセージは、Microsoft.Web.WebView2.Core.dll メタデータファイルが正しく読み込めないことを示しています。このエラーを解決するために、以下のステップを試してみてください。
-
WebView2 SDKのインストール: WebView2を使用する前に、正しいWebView2 SDKをインストールしていることを確認してください。WebView2 SDKは、Microsoftの公式ウェブサイトからダウンロードできます。最新バージョンをダウンロードし、適切にインストールしてください。
-
プロジェクト設定の確認: プロジェクトの設定を確認し、正しいWebView2のバージョンを対象としていることを確認してください。また、プラットフォームターゲットと.NETのバージョンも適切に設定されていることを確認してください。
-
NuGetパッケージの更新: ソリューション内のNuGetパッケージをアップデートして、WebView2関連のパッケージが最新であることを確認してください。
-
ビルドキャッシュのクリア: ビルドキャッシュをクリアしてみてください。ビルドキャッシュを削除するには、プロジェクトの
binおよびobjフォルダー内の一時ファイルを削除します。その後、プロジェクトを再ビルドしてみてください。 -
プロジェクトのクリーンと再ビルド: Visual Studioでプロジェクトをクリーンし、その後再ビルドしてみてください。これにより、一時ファイルやキャッシュが削除され、新しいビルドが実行されます。
-
プラットフォームを確認: プロジェクトが正しいプラットフォームを対象としていることを確認してください。x86とx64のWebView2 SDKの違いに注意してください。
-
ウイルス対策ソフトウェアのチェック: セキュリティソフトウェアがファイルの読み込みに干渉していないか確認してください。一時的にセキュリティソフトウェアを無効にしてみて、問題が解決するかどうか確認してみてください。
-
IDEの再起動: Visual Studioや他のIDEを再起動してみてください。時々、IDE自体が問題の原因となることがあります。
これらのステップを試してもエラーが解決しない場合、問題が複雑である可能性があるため、Microsoftの公式サポートや関連するフォーラムでサポートを受けることを検討してください。