webBrowserからwebView2に移行した際に躓きすぎたので備忘録
今回はwebBrowserで使用している画面から
こんな表示が出てくるようになったためWebView2への移行をすることに…
まずどうしてこのようなポップアップが出てくるようになったのかといいますとwebBrowserで使われている標準のブラウザがinternetexplorerになっており2022年には使えなくなるとかまだ使えるとかなんとかで
使われることがほぼなくなったためIEのサポートが終了するみたい(情報収集不足)
補足)EdgeでのIEモードも非推奨になったらしい
環境
Windows10
Visual Studio2017
.NET framework
実装
まずはMicrosoft.WebView2をインストールする
ツール→NuGetパッケージマネージャ→パッケージの管理→
参照から「webview2」と入れて検索
反映させたいプロジェクトを選択し、インストールする
ここで気を付けていただきたいことがある
それは、バージョン選択時にそのバージョンが最新ではないときがある。
かくいう私もこのバグ?に引っ掛かり一週間もわからずじまいでした
そういう時は公式のリリースノートをまずは見てからインストールしてください
現状ではまだリリースはされていないため、プレリリース版か、安定板しかありません
そのため基本的にはプレリリース版を入れることをお勧めします。
なので検索窓の右にあるプレリリースを含むにチェックを入れてください
他のパッケージはそこまで気にしなくても大丈夫な気がしますがwebview2はまだプレビュー版であるためバグも多いので気を付けてください
今思うとほんとくだらないことで躓いたのでお恥ずかしい限りです
私と同じような人が出ないために共有します
もし私の様にパッケージマネージャに最新のバージョンが無かったら
こちらを使ってみてください↓
ツール→NuGetパッケージマネージャ→コンソールを選択し
コンソールで変更したいプロジェクトの指定と下記の最新バージョンのところをご自身で変えて下さい
Install-Package Microsoft.Web.WebView2 -Version 最新のバージョン
表示の仕方には主に二種類を使います(個人的な意見ですが)
プロパティのSourceに直接URLを挿入するやり方と、
CoreWebView2を使用したNavigateで指定するやり方です
なぜかウェブを表示するために使うものがふたつもあるんですかねぇ
よくわかりません!!理由を知ってる博識のかた…お待ちしております。
Sourceを使用しての表示はとても簡単です
private void button1_Click(object sender, EventArgs e)
{
webview2の名前.Source = new Uri("https://amazon.co.jp");
}
のような形で実装できます。
非常に簡単です
URLの指定だけではなく
ファイルパスなんかも指定できます
webview2の名前.Source = new Uri("file:///C:/Users/〇〇/downloads");
なんかを指定すればダウンロードフォルダを開くことができます
簡単・楽・めんどくさくないのはSourceですが
じゃあいつNavigateを使用するのってことですよね
例えばですがURLを指定するときにURL以外の情報を一緒に指定したい場合などがあると思います
GoogleMapに住所検索機能をつけるとか、そういった時にはSourceは使えません
Sourceに引数などの値が持てないからだと思います(主はその辺がよくわかりませんでした)
そういったときにNavigateを使います
とてもお世話になったURLを紹介しますので詳細はそちらから
最後に、参照の中にフルパスで参照エラーになっているwebview2が存在している人が居ませんか?
このバグ?にはとても悩まされましたね
C:\Users\ユーザー名\.nuget\packages\microsoft.web.webview2\1.0.1018-prerelease\build\..\lib\Microsoft.Web.WebView2.Core.winmd
↑こいつです( ˙-˙ )
特にビルドなどに影響があるわけではないためそこまで気にすることはありませんが、
A型の血が騒ぐようできれいにしたいんですよね警告とか見るだけで消したくなります。。。
Githubに答えは載っていました。
参照から見えるパスを辿っていき、WINMDファイルをテキストで開きます
そして検索(Ctl + F)して「SetUp」と打ちます。そうすると<ItemGroup>のタグがありますので
そこのタグをコメントアウトしてみてください。
消さない方がよいです。それでエラーになった場合に戻せなくなる可能性があるためです。
主の環境では1.0.955-prereleaseではうまくいきました
1.0.1018-prereleaseではコードが同じではなくできなかったので955をインストールすることをお勧めします。
今回は以上です
またバグやみなさんと共有したいこと、情報が少ないものをこれからお届けしようと考えているので
また覗きに来ていただけると嬉しいです。
では。



