■99245 / ) |
Re[9]: VSTOのプロジェクト内からWebview2を呼出 |
□投稿者/ KOZ (222回)-(2022/02/25(Fri) 17:42:45)
|
■No99241 (大谷刑部 さん) に返信 > Webview2をプロジェクトに「インストール」して所定の場所にDLLが出来てるのに読めないのが??です。
Microsoft.Web.WebView2.Core.dll を JustDecompile で逆コンパイルしてみました。 ソースを載せるのはちょっとはばかられるので概要のみ説明します。
WebView2Loader.dll のパスについては、Microsoft.Web.WebView2.Core.dll の中に CoreWebView2Environment クラスがあり、 LoadWebView2LoaderDll という static メソッドで相対パスを作って LoadLibrary しています。
ここを通らなかった場合は、普通に ネイティブ DLL の検索パスを検索することになるでしょう。
LoadWebView2LoaderDll メソッドは private であり、直接呼び出すことは出来ませんが、CoreWebView2Environment クラスの GetAvailableBrowserVersionString メソッド、あるいは CompareBrowserVersions メソッドから呼び出されているので、 どちらかを呼び出せば DLL がありませんというエラーは解消すると思います。
Windows Forms アプリケーションから呼び出すとこのメソッドを通っていると思われるのに VSTO だと通っていなさそうなのがよくわからないですね。
興味がおありでしたら、ソースを追ってみてください。
JustDecompile は https://www.telerik.com/products/decompiler.aspx からダウンロードできます。
|
|