C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 172 を表示中)
■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」をコピーして下さい。
正常に動作する事を確認しました。

返信 編集キー/


管理者用

- Child Tree -