■99278 / ) |
Re[11]: VSTOのプロジェクト内からWebview2を呼出 |
□投稿者/ くま (175回)-(2022/03/02(Wed) 17:07:31)
|
やっと時間が空いたので、VSTOで試すことができました。
■環境 win7(64bit) vs2019 vb.net .net framework 4.8 Windowフォーム Excel2013(64bit)
Microsoft Edge バージョン 100.0.1180.0 (公式ビルド) canary (64 ビット)
WebView2パッケージ 1.0.1158-prerelease
■状況 以上の状態で「WebView2」コントロールを張り付けたWindowフォームを作成。 フォームLoad時に「WebView2Loader.dllが読み込めません。」のエラーが発生する事を確認。
■対策 まずVSTOに以下のコードを追加して一度実行して下さい。 'dllファイル Dim assemblyInfo As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly() Dim assemblyLocation As String = assemblyInfo.Location
'.....\bin\Debug Dim uriCodeBase As Uri = New Uri(assemblyInfo.CodeBase) Dim ClickOnceLocation As String = Path.GetDirectoryName(uriCodeBase.LocalPath.ToString())
assemblyLocationにプロジェクト名.dllのパスが入っていると思います 例 プロジェクト名「ExcelVSTOTest」の場合 "C:\Users\[USERNAME]\AppData\Local\assembly\dl3\CNRPYTCJ.ZG5\VVV0ONEW.6PJ\de49be30\b54d9baa_082ed801\ExcelVSTOTest.dll" 二つ上の階層から見るとWebView2の場合5つ作成されている思います。 VVV0ONEW.6PJ 3f078848 2f5d03fb_022ed801 __AssemblyInfo__.ini Microsoft.Office.Tools.Common.v4.0.Utilities.DLL 55cac1b7 00133601_341bd801 __AssemblyInfo__.ini Microsoft.Web.WebView2.WinForms.DLL 187c6b51 dfd10714_5772d701 __AssemblyInfo__.ini Microsoft.VisualStudio.Debugger.Runtime.Desktop.dll 938faf1e 00c43e1a_341bd801 __AssemblyInfo__.ini Microsoft.Web.WebView2.Core.DLL ※runtimes win-arm64 native WebView2Loader.dll win-x64 native WebView2Loader.dll win-x86 native WebView2Loader.dll de49be30 b54d9baa_082ed801 __AssemblyInfo__.ini ExcelVSTOTest.DLL ExcelVSTOTest.PDB
多分フォルダ名はプロジェクトで変更になりますが 「Microsoft.Web.WebView2.Core.DLL」 が格納されているフォルダに「WebView2Loader.dll」が格納されている「runtimes」をコピーして下さい。 正常に動作する事を確認しました。
|
|