さまざまな WebView2 SDK バージョンについて

WebView2 SDK は、 Microsoft.Web.WebView2 NuGet パッケージのプレリリースまたはリリース バージョンとして提供されます。 Microsoft Edge のプレビュー チャネルでプレリリース SDK を使用するか、WebView2 ランタイムでリリース SDK を使用します。

プレリリース SDK パッケージは、これらの API のサポートがランタイムに追加される前に、実験用 API を含む最新の WebView2 API をテストする場合に、開発中に使用されます。 最新の API の実装があるため、Canary チャネルをお勧めします。 試験的な WebView2 API をテストして使用する場合は、次の組み合わせを使用します。

  • WebView2 SDK の プレリリース バージョン。
  • 開発クライアント上の Microsoft Edge の プレビュー チャネル

リリース SDK パッケージには安定した API のみが含まれますが、試験的 API は含まれません。 WebView2 アプリの運用リリースで作業している場合は、次の組み合わせを使用します。

  • WebView2 SDK の リリース バージョン。
  • 開発クライアントの WebView2 ランタイム

プレリリースおよびリリース SDK パッケージの詳細については、以下を参照してください。

API の導入フェーズ

新しい API は、次のようにフェーズで導入されます。

API の状態 説明
実験 1. 最初に、API はプレリリース SDK の試験的です。 これらの API をテストし、フィードバックを提供できます。 API はまだリリース SDK にありません。
プレリリース SDK での安定 2. その後、プレリリース SDK で API が Stable に昇格されます。 API はまだリリース SDK にありません。
リリース SDK で安定 3. 次に、Stable API がリリース SDK に含まれるよう昇格されます。 これは通常、プレリリース SDK で API が Stable に昇格されてから 1 か月後に発生します。 API はプレリリース SDK にも残ります。

新しい API の導入フェーズの図

使用する SDK の種類の選択

Visual Studio プロジェクトで使用する WebView2 SDK NuGet パッケージのバージョンを選択するには、Visual Studio でプロジェクトを右クリックし、[ NuGet パッケージの管理] を選択し、[ プレリリースを含める ] チェック ボックスをオンまたはオフにして、 Microsoft.Web.WebView2 パッケージを選択し、[ バージョン ] ドロップダウン リストで Microsoft.Web.WebView2 NuGet パッケージのバージョンを選択します。

詳細については、「 WebView2 用の開発環境を設定する」の「WebView2 SDK をインストールまたは更新 する」を参照 してください。 また、NuGet サイトで Microsoft.Web.WebView2 SDK パッケージの一覧を表示することもできます。

Microsoft Edge のプレビュー チャネルと共に、SDK のプレリリース バージョンを使用する

エバーグリーン WebView2 アプリを開発するときは、WebView2 ランタイムに対するテストに加えて、最新の Microsoft Edge プレビュー チャネルに対してアプリを定期的にテストします。 Web プラットフォームは絶えず進化しているため、アプリが意図したとおりに動作し続ける最善の方法は、定期的なテストです。

WebView2 プレリリース SDK パッケージを使用する場合は、開発クライアントで Microsoft Edge プレビュー チャネルを使用します。 プレビュー チャネルは Insider チャネル とも呼ばれます。 Canary は最新であり、最新の試験的 API の実装があるため、Canary プレビュー チャネルは Beta または Dev ではなく推奨されます。

プレリリース SDK パッケージは、リリース SDK パッケージのスーパーセットです。 Prerelease SDK には、次のメソッド シグネチャが含まれています。

  • 試験的 API
  • 試験的ではなくなったが、まだリリース SDK に含まれていない安定した API。
  • リリース SDK に追加された安定した API。

Microsoft Edge のプレビュー チャネルでは、試験的な WebView2 API と安定した API の実装が提供されます。 試験的 API は、フィードバックに基づいて変更される可能性があります。 プレリリース SDK パッケージを使用して運用アプリをビルドしないようにします。

WebView2 ランタイムを既定ではなくプレビュー チャネルに一時的にポイントする方法については、「 今後の API と機能をテストする」を参照してください。

関連項目:

ランタイムと共に SDK のリリース バージョンを使用する

WebView2 リリース SDK パッケージを使用する場合は、Microsoft Edge プレビュー チャネルではなく、開発クライアントで Evergreen WebView2 ランタイム を使用します。 既定では、WebView2 アプリは Microsoft Edge ではなくランタイムを対象とします。 設計上、Microsoft Edge Stable チャネルは WebView2 をサポートしていません。

リリース SDK パッケージには、運用環境のリリースに含まれる安定した Win32 C/C++ API と .NET API がすべて含まれており、試験的 API のメソッドシグネチャは含まれていません。 リリース SDK パッケージ内のすべての API は、WebView2 ランタイムの同じかそれ以上のビルド番号で完全にサポートされます。

Release SDK パッケージには、次のコンポーネントが含まれています。

エバーグリーン ランタイムの自動更新の詳細については、「 アプリと WebView2 ランタイムを配布する」を参照してください。

リリースの間隔

WebView2 SDK の新しいバージョンは、約 4 週間ごとに Microsoft Edge ブラウザーと同じ一般的な間隔で出荷されます。

WebView2 をインスタンス化するための最小バージョンとビルド番号

クライアントが WebView2 インスタンスを作成し、WebView2 General Availability リリース (SDK ビルド 616) で一連の API を使用できるようにするには、クライアントに WebView2 ランタイム バージョン 86.0.616.0 以上が必要です。 ランタイム 86.0.616.0 は、一般提供リリースであるため、特別なリリースです。

開発用コンピューターでは、クライアントに Microsoft Edge プレビュー チャネル バージョン 86.0.616.0 以降、または WebView2 ランタイム バージョン 86.0.616.0 以降が必要です。

API の前方互換性

WebView2 リリース SDK は、バージョン 1 (WebView2 SDK のアーカイブされたリリース ノートのリリース SDK 1.0.622.22) 以来、順方向互換性を持っています。 WebView2 アプリを更新して、最新のリリース バージョンの SDK の最新の API を使用できます。 クライアントには自動的に最新の Evergreen WebView2 ランタイムがあるため、アプリはクライアントで引き続き動作します。

リリース SDK パッケージ内の WebView2 API は、安定しており、前方互換性があります。 WebView2 API は、API が導入された SDK ビルド番号と同じかそれ以上のビルド番号を持つ WebView2 ランタイムを使用する場合に機能します。 ビルド番号は、Webview2 SDK の 4 部構成のバージョン番号の 3 番目の部分、および Microsoft Edge と WebView2 ランタイムの 4 部構成のバージョン番号です。

  • WebView2 ランタイム以下のビルド番号を持つ WebView2 SDK 使用する場合、その SDK でアクセスできるすべての API は、そのバージョンのランタイムで動作します。

  • WebView2 ランタイム より大きい ビルド番号を持つ WebView2 SDK を使用する場合、新しい API の実装はランタイムでは使用できません。

たとえば、API が SDK 1.0 で導入された場合です。900.0、その API はランタイム 94.0 で動作します。900+.0 ですが、ランタイム 90.0 では使用できません。700.0

開発に使用する WebView2 SDK バージョンと、クライアント コンピューターにインストールされている WebView2 ランタイム バージョンを調整する必要があります。 クライアントには、アプリの開発に使用する SDK バージョンにあるすべての最新の API をサポートするランタイムのバージョンが必要です。 SDK のリリース バージョンの最新 API を完全にサポートするには、クライアント上のランタイムに SDK ビルド番号以上のビルド番号が必要です。

試験的 API

開発中の新機能を試すには、 試験的 API を使用します。 試験的 API はプレリリース SDK に含まれていますが、リリース SDK には含まれません。

試験的 API を使用した開発とフィードバックの提供

WebView2 プレリリース SDK パッケージ内の試験的 API は、前方互換性が保証されておらず、将来のランタイム更新プログラムで削除される可能性があります。

試験的 API を完全にサポートするには、エバーグリーン WebView2 ランタイムではなく Microsoft Edge プレビュー チャネルを使用します。 WebView2 SDK のプレリリース バージョンが最初に使用可能になると、その SDK は Microsoft Edge Canary でのみ機能します。 その直後に、Prerelease SDK はベータおよび開発チャネルでも動作します。

プレリリース SDK を使用して、新しい試験的 API を早期に試し、試験的 API が安定した前方互換性のある API になるように昇格する前にフィードバックを提供します。

  • 実験用 API (プレリリース SDK 内) は、前方互換性が保証されていません。
  • プレリリース SDK に含まれている安定した API は、リリース SDK にまだ含まれていない場合でも、前方互換性があります。
  • リリース SDK 内の安定した API は、前方互換性があります。

詳細については、上記 の API の前方互換性に関するページを参照してください。

WebView2 チームは、将来のリリースで Stable に昇格される可能性がある試験的な WebView2 API に関するフィードバックを求めています。 試験的 API は、WebView2 SDK リファレンス ドキュメントの "試験的" として示されています。"注: これは、プレリリース SDK に付属している試験的な API です。

試験的 API を評価し、フィードバックを共有するには、 WebView2Feedback リポジトリを使用します。

試験的 API から安定した API への移行

API が試験的状態から安定状態に移行されたら、アプリのコードを Stable API に移動する必要があります。 運用アプリでは、試験的 API またはプレリリース SDK の使用はお勧めしません。 アプリを試験的 API を使用してから安定した API を使用するように移行する場合は、次のプラクティスに従います。

  • Visual Studio のプロジェクトで、WebView2 SDK パッケージのバージョンを新しいプレリリース SDK またはリリース SDK に更新します。 「WebView2 用の開発環境をセットアップする」の「WebView2 SDK をインストールまたは更新する」を参照してください

  • 実験用 API (COM 用) ではなく安定した API を使用するようにアプリのコードを更新します。 Stable API はバグ修正でサポートされますが、試験的 API は非推奨となり、新しい (プレリリースまたはリリース) SDK では使用できません。 API が Stable に昇格された後、その API の試験的なバージョンは、非推奨の状態で、プレリリース SDK の 2 つのリリースでサポートされます。 以降のバージョンの Prerelease SDK では、試験的 API が変更、削除、または追加される可能性があります。

  • 常に機能検出を使用して、Stable API がユーザーのバージョンの WebView2 ランタイムに実装されていることを確認します。 以下の「機能検出」を参照して、インストールされたランタイムが最近追加された API をサポートしているかどうかをテストします。

  • .NET の場合のみ: プレリリース WebView2 SDK では、.NET Stable API は、ユーザーの WebView2 ランタイムに試験的 API の実装のみが含まれており、安定した API 実装がない場合、対応する試験的 API にフォールバックします。

ランタイム バージョンと SDK バージョンの一致

エバーグリーン分散アプローチでは、クライアントの WebView2 ランタイムは、使用可能な最新バージョンに自動的に更新されます。 ただし、ユーザーまたは IT 管理者は、WebView2 ランタイムの自動更新を防ぐことを選択する場合があります。 クライアントの古いランタイムが発生すると、最近の SDK の新しい API を使用する更新された WebView2 アプリとの互換性の問題が発生する可能性があります。

クライアントで WebView2 ランタイムの更新が禁止されている場合は、アプリで必要な WebView2 ランタイムの最小ビルド番号がわかっていることを確認してください。 最新の WebView2 ランタイム バージョンを表示または取得するには、developer.microsoft.com の Microsoft Edge WebView2 ページで WebView2ランタイムをダウンロードする方法に関するページを参照してください。 SDK (ビルド 616) の一般提供リリースをサポートするために必要な最小ランタイム バージョンは、最新のランタイムよりも古くなっています。 最新のランタイムは、最新のリリース SDK に含まれるすべての API をサポートします。

SDK の特定のビルド番号とランタイムまたは Microsoft Edge プレビュー チャネル間の互換性をチェックするには、「WebView2 SDK のリリース ノート」を参照してください。

インストールされたランタイムで最近追加された API がサポートされているかどうかをテストするための機能検出

アプリで固定バージョンではなく常緑ランタイムを使用する場合は、 または try-catchを使用QueryInterfaceして、比較的新しい WebView2 API への呼び出しをラップする必要があります。 クライアントのエバーグリーン ランタイムが最新のビルドではなく、SDK ビルド番号に遅れるエッジ ケースがあります。これは、管理が WebView2 ランタイムの更新をオフにしているか、クライアントがオフラインになっている可能性があるためです。

WebView2 SDK の最新バージョンを使用して WebView2 アプリを開発する場合、最近追加した API を使用する場合は、その API がクライアントにインストールされている WebView2 ランタイムに存在するかどうかをテストするか、"機能検出" する必要があります。 アプリで API サポートをプログラムでテストする方法は、コーディング プラットフォームによって異なります。

  • Win32 C/C++。 DLL エクスポートCreateCoreWebView2Environmentを要求するとき、および任意CoreWebView2のオブジェクトでを実行QueryInterfaceする場合は、 のE_NOINTERFACE戻り値をテストします。 この戻り値は、クライアントの WebView2 ランタイムがそのインターフェイスをサポートしていない古いバージョンであることを示している可能性があります。

    ランタイムに特定の WebView2 API が存在するかどうかを確認する例については、「AppWindow.cpp」を参照try_queryしてください。 このファイルは、 で定義されているマクロ関数で CHECK_FAILURE WebView2 API 呼び出しを CheckFailure.hラップします。

  • .NET と WinUI。 WebView2 SDK のより新しいNo such interface supportedバージョンに追加されたメソッド、プロパティ、およびイベントを使用する場合は、例外にとチェックを使用try/catchします。 この例外は、クライアントの WebView2 ランタイムがその API をサポートしていない古いバージョンであることを示している可能性があります。

クライアントのインストールされている WebView2 ランタイムで API が使用できないとコードで判断した場合は、関連する機能に適切なフォールバックを提供するか、WebView2 ランタイムを更新して機能を使用する必要があることをユーザーに通知する必要があります。

この手法は、「インストールされている WebView2 ランタイムで API がサポートされているかどうかをテストする」で、WebView2 開発のベスト プラクティスとして一覧表示されています。