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

わんくま同盟

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

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

ツリー一括表示

Webview2 を使ったソフトを公開したい /Webview2 (22/07/03(Sun) 13:22) #100098
Re[1]: Webview2 を使ったソフトを公開したい /くま (22/07/03(Sun) 14:33) #100102
  └ Re[2]: Webview2 を使ったソフトを公開したい /Webview2 (22/07/03(Sun) 22:30) #100107 解決済み


親記事 / ▼[ 100102 ]
■100098 / 親階層)  Webview2 を使ったソフトを公開したい
□投稿者/ Webview2 (1回)-(2022/07/03(Sun) 13:22:12)

分類:[.NET 全般] 

お世話になります


Webview2 で特定のホームページを表示するためだけの簡単なブラウザを作りました
開発環境では問題なく動作しますので、ユーザーに配りたい状況での質問です



■アプリの種類
WIN32アプリ
WINフォームアプリ

■開発環境
vs2017コミュニティ
フレームワーク4.7.2
開発環境のwebview2はたぶんエバーグリーン


■用語の定義
プロジェクト内の xxxx\bin\Debug を「デバッグフォルダ」と表現します

■デバッグフォルダの構成
フォルダ1 xxxx.exe.WebView2
フォルダ2 runtimes
実行ファイル xxxx.exe
dllファイル Microsoft.Web.WebView2.Core.dll
dllファイル Microsoft.Web.WebView2.WinForms.dll
dllファイル Microsoft.Web.WebView2.Wpf.dll



――――――――――――――――――
<ソフトの動作状況>
――――――――――――――――――
●デバッグフォルダの中身をまるごと任意の場所(デスクトップ等)にコピーして実行すると正常動作する
 
● A インストール先  例 C:\Program Files (x86)\xxxx\xxxx\
  B デバッグフォルダ 例 xxxx\bin\Debug
  A、B をまるごと同じファイル構成にしてインストールすると
  エラーが出る

●アプリは起動ごとに「\xxxx.exe.WebView2」内を読み書きしているらしい
 (起動ごとにフォルダの容量が増えていく)


――――――――――――――――――
質問1
アプリの配布はフォルダまるごとコピーして使うことで問題ないのか

――――――――――――――――――
質問2
インストーラで配布する場合

C:\Program Files (x86)\xxxx\xxxx\xxxx.exe
を起動したときに
C:\Program Files (x86)\xxxx\xxxx 内の中身を、マイドキュメントに全部コピーして
プログラムからコピー先の xxxx.exe を起動すれば
読み書きのエラーは回避できると思うのですが問題ないのか


――――――――――――――――――
質問3
「\xxxx.exe.WebView2」内を読み書きしないようにできるのか

――――――――――――――――――
質問4
webview2の
 固定バージョン
 エバーグリーン
は開発者側が考えることであって、ユーザー側が意識する問題ではないのか
(保存領域の肥大化を無視できる場合)

――――――――――――――――――
質問5
webview2でソフトを作る場合
 固定バージョン
 エバーグリーン
のどちらを選ぶかでプログラムの書き方に何らかの違いはあるのか
(先に決めてから作らないといけないのか)
(参照先やファイルの位置関係など)


――――――――――――――――――


以上、初歩的なことで自分で調べるべきものかもしれませんが
ご教授お願いいたします





[ □ Tree ] 返信 編集キー/

▲[ 100098 ] / ▼[ 100107 ]
■100102 / 1階層)  Re[1]: Webview2 を使ったソフトを公開したい
□投稿者/ くま (212回)-(2022/07/03(Sun) 14:33:45)
2022/07/03(Sun) 14:37:20 編集(投稿者)
定番のキャッシュ場所指定方法
    Dim cacheFolderPath As String = ""
    Dim webView2Environment As Microsoft.Web.WebView2.Core.CoreWebView2Environment
    cacheFolderPath = "WebView2用のキャッシュフォルダのパス"
    Try
        webView2Environment = Await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(Nothing, cacheFolderPath)
    Catch ex As Exception
        Startup.ExceptionHandling(ex, "キャッシュフォルダ[" & cacheFolderPath & "]にアクセスできませんでした。")
    End Try


> 質問1
「WebView2用のキャッシュフォルダのパス」が指定さている場合、コピーで問題無いです。
指定されていない場合、書き込み権限があるフォルダでないとエラーになります。
([C:\Program Files (x86)]直下とかだとエラーになります)


> 質問2
たぶん「WebView2用のキャッシュフォルダのパス」の問題ですね。
一番初めに書いたように変更してみて下さい。

> 質問3
>「\xxxx.exe.WebView2」内を読み書きしないようにできるのか
これが不明。私の環境だとこの様なフォルダは作成されません。
これもしかしてWebView2のキャッシュフォルダ?

> 質問4
Microsoft Edge canary インストールしてもらう方向で
エバーグリーンのほうがいいですよ。
更新速度が早いので。

> 質問5
特には無いです。
ただエバーグリーンの場合、WebView2用のランタイム等の存在チェックをする必要があるかな?ぐらいです。

[ 親 100098 / □ Tree ] 返信 編集キー/

▲[ 100102 ] / 返信無し
■100107 / 2階層)  Re[2]: Webview2 を使ったソフトを公開したい
□投稿者/ Webview2 (2回)-(2022/07/03(Sun) 22:30:01)
No100102 (くま さん) に返信

すべての疑問が完璧に解決しました

素晴らしいご回答ありがとうございました

解決済み
[ 親 100098 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -