在發佈 WebView2 應用程式時,請確保 WebView2 執行環境已安裝在用戶端機器上。 此要求適用於常青版與固定版的發行模式。
入門資訊請參見 Evergreen 與固定版本的 WebView2 執行時。
透過WSUS Windows Server Update Services (服務WebView2執行)
請參見 WebView2 執行時企業管理中的 WSUS Windows Server Update Services () 。
開發或生產期間的執行時或瀏覽器支援
在開發與測試期間,WebView2 應用程式可以使用任一選項作為後備網頁平台:
WebView2 執行時。 執行時通常提供與 Microsoft Edge 瀏覽器 Stable 通道相同的網頁平台功能與更新節奏。 在生產環境中使用 WebView2 執行環境,或是針對用戶現有的網頁平台開發與測試。
Insider () Edge 瀏覽器頻道Microsoft預覽。 這些 Microsoft Edge 預覽頻道包括 Beta、Dev 和 Canary。 使用此方法測試應用程式的向前相容性,讓您知道是否有重大變更需要更新。 請參閱 測試即將推出的 API 與功能。
WebView2 應用程式的正式版本只能使用 WebView2 執行環境作為後備網頁平台,而非 Microsoft Edge。
Microsoft Edge 穩定頻道不支援 WebView2
WebView2 應用程式不得使用 Microsoft Edge 的 Stable 通道作為後備網頁平台。 此限制防止 WebView2 應用程式的正式版本依賴瀏覽器。 WebView2 應用程式在製作過程中無法依賴瀏覽器,原因如下:
Microsoft Edge 並不保證所有使用者裝置都能使用。 許多企業和教育裝置與 Windows Update 斷開連接,或非由 Microsoft 直接管理。 這類裝置可能沒有安裝 Microsoft Edge。 要求 WebView2 應用程式的正式版必須使用 WebView2 執行時而非 Microsoft Edge,避免了將 Microsoft Edge 視為執行 WebView2 應用程式的先決條件。
瀏覽器和應用程式的使用情境不同。 如果 WebView2 應用程式需要客戶端有 Microsoft Edge,這可能會對 WebView2 應用程式產生意想不到的副作用。 例如,IT 管理員可以阻止瀏覽器從特定版本更新,以保持瀏覽器與內部網站的相容性。 要求 WebView2 應用程式的生產版本必須使用 WebView2 執行時而非瀏覽器,即使客戶端管理員阻止瀏覽器更新,WebView2 應用程式仍能保持常青狀態。
與瀏覽器不同,WebView2 執行環境是針對應用程式情境開發與測試,在某些情況下,WebView2 執行環境可能包含瀏覽器尚未提供的錯誤修正。
Evergreen WebView2 執行環境將作為 Windows 11 作業系統的一部分。 多個 WebView2 應用程式已在 Windows 11 之前的裝置上安裝了 Evergreen Runtime。 不過,有些裝置可能沒有預先安裝執行環境,因此檢查客戶端是否已安裝執行環境是個好習慣。
在你的應用程式建立 WebView2 之前,應用程式應該檢查 WebView2 執行時間是否存在, (透過登錄檔鍵或呼叫 API) ,如果缺少執行環境就安裝。 應用程式可以在安裝或更新應用程式 (推薦) ,或在應用程式執行時進行此檢查。 要檢查執行時是否存在,請參閱下方「 部署 Evergreen WebView2 執行時」。
常青執行時的分發模式
Evergreen 發佈模式確保您的 WebView2 應用程式能充分利用最新的 WebView2 功能與安全更新。 入門資訊請參見 Evergreen 與固定版 WebView2 執行時的 Evergreen 執行時分發模式。
常青分配模式具有以下特性:
WebView2 執行時會自動更新,無需你操作。 它接收的 Microsoft Edge 更新與 Microsoft Edge 穩定通道釋稿及 Microsoft Edge 安全匯報釋稿中所述相同。
所有使用 Evergreen 發佈模式的 WebView2 應用程式都會共用 Evergreen WebView2 執行時,以節省磁碟空間。
在符合資格的系統上,Microsoft Edge 與 Evergreen WebView2 執行時的二進位檔在同一版本時會被硬連結在一起。 這種連結方式對磁碟容量、記憶體和效能都有好處。
當你使用 WebView2 執行時的 Evergreen 發佈模式,你的 WebView2 應用程式會假設用戶端擁有最新的執行時。 您的應用程式不能要求客戶端所有應用程式都使用特定版本的 WebView2 執行環境。 當新的 WebView2 SDK 套件釋出時,已有一個相容版本的 WebView2 執行環境已分發給客戶端。 因此,你的 WebView2 應用程式可以使用最新版本 WebView2 SDK 中的 API。
Windows 11裝置與Windows 10裝置 (細節)
入門資訊請參閱 Windows 11 裝置與 Evergreen 版本中 Windows 10 裝置與固定版 WebView2 執行環境的比較。
絕大多數 Windows 10 裝置已安裝 WebView2 執行環境,詳見《向受管理的 Windows 10 裝置提供 Microsoft Edge WebView2 執行環境》一文。 少數 Windows 10 裝置未安裝 WebView2 執行時。 我們建議您透過以下任一方法來處理此邊緣情況:
用程式化的方式部署 Evergreen 執行環境。 詳見下方部署 Evergreen WebView2 執行環境 。
將終端使用者導向 Microsoft 網站: 下載 Microsoft Edge WebView2,並讓終端使用者從網站下載 Evergreen WebView2 執行時安裝程式,自行安裝執行環境。
另請參閱:
- WebView2 預發布與正式發佈 SDK - 使用預發布版本的 SDK 及 Microsoft Edge 的預覽頻道;或使用SDK的Release Version搭配Evergreen WebView2執行環境。
部署 Evergreen WebView2 執行環境
裝置上的所有 Evergreen 應用程式只需安裝一次 Evergreen WebView2 執行環境。 下載 WebView2執行環境 提供多種工具,協助你部署Evergreen Runtime。
對於線上客戶: WebView2 Runtime Bootstrapper 是一個約 2 MB 的小型安裝程式 () 。 WebView2 執行時啟動程式會從 Microsoft 伺服器下載並安裝與使用者裝置架構相符的 Evergreen 執行環境。
在 WebView2 應用程式的設定部分,連結到啟動工具。 使用連結程式化下載開機工具;請在上方下載頁面選擇 「取得連結 」按鈕。
或者,下載啟動工具,並打包到你的 WebView2 應用程式中。
針對離線用戶端: WebView2 Runtime Standalone Installer 是一個完整安裝程式,可在離線環境中安裝 Evergreen WebView2 執行環境。
如果你使用 App Installer 來部署 MSIX 應用程式,可以指定 WebView2 執行環境作為相依,讓它能隨應用程式安裝。 關於如何操作的細節,請參閱 Windows 32dependencies:ExternalDependency (Windows 10,Windows 11) App 套件清單文件中。另見使用 App Installer 安裝 Windows 10 應用程式。
依機器或使用者安裝執行環境
最新的開機程式與獨立安裝程式支援 WebView2 執行環境的 單台 及 每使用者 安裝。
如果你從升起的程序或命令提示字元執行安裝程式,執行時會依 機器安裝。 如果你沒有從升起的程序或命令提示字元執行安裝程式,執行時會依 使用者順序安裝。 然而,若安裝了每台機器的 Microsoft Edge Updater,按使用者安裝的方案會自動被按機器安裝取代。 Microsoft Edge 內建每 台機器 的 Microsoft Edge 更新器,唯獨 Microsoft Edge 的 Canary 預覽通道除外。
請使用以下線上部署工作流程或離線部署工作流程,確保執行時在應用程式啟動前已安裝完成。 你可以根據情況調整工作流程。 範例程式碼可在 範例倉庫取得。
偵測是否已安裝 WebView2 執行環境
要驗證已安裝 WebView2 執行環境,請使用以下方法之一:
方法一:檢查
pv (REG_SZ)以下兩個登錄檔位置的 WebView2 執行時 regkey。HKEY_LOCAL_MACHINEregkey 用於每台機器的安裝。HKEY_CURRENT_USERregkey 用於每位使用者安裝。對於 WebView2 應用程式,至少必須有一個這些 regkey 存在,且定義版本大於 0.0.0.0。 如果兩個 regkey 都不存在,或只有一個 regkey 存在但其值為
null、空字串或 0.0.0.0,這表示 WebView2 執行時尚未安裝在用戶端。 檢查這些 regkey 以偵測 WebView2 執行環境是否已安裝,並取得 WebView2 執行環境的版本。 請在以下兩個地點找到pv (REG_SZ)。在 64 位元 Windows 上需要檢查的兩個登錄檔位置:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}在 32 位元 Windows 上需要檢查的兩個登錄檔位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}方法二:執行 GetAvailableCoreWebView2BrowserVersionString ,評估是否
versionInfo為nullptr。nullptr表示 WebView2 執行時尚未安裝。 此 API 會回傳 WebView2 執行環境或任何已安裝的 Edge (Beta、Dev 或 Canary) 預覽頻道的版本資訊Microsoft。
僅限線上部署
如果你的部署僅限線上,且假設使用者有網路連線,請採用以下工作流程。
在應用程式設定時,先測試一下 WebView2 執行時是否已經安裝好。 請參見上方「 偵測是否已安裝 WebView2 執行環境」。
如果 Runtime 尚未安裝,在應用程式設定過程中,請使用 下載頁面) 的 「取得連結 」按鈕中的連結 (,程式化下載 WebView2 執行時啟動器。
透過執行以下指令呼叫 WebView2 執行時 Bootstrapper。
如果你從升格的程序或命令提示字元執行以下指令,會觸發 每台機器 的安裝。 如果你沒有從提升的程序或命令提示字元執行該指令,將會進行 逐使用者 安裝。 然而,若安裝了每台機器的 Microsoft Edge Updater,按使用者安裝的方案會自動被按機器安裝取代。 除了 Microsoft Edge 的 Canary 預覽通道外,Microsoft Edge 都提供 每台機器的 Edge 更新器Microsoft Updater。 欲了解更多資訊,請參閱「 按機器或按使用者安裝執行環境」。
MicrosoftEdgeWebview2Setup.exe /silent /install
上述工作流程有多項優點:
執行時僅在需要時安裝。
你不需要在 WebView2 應用程式中打包執行時安裝程式。
WebView2 執行時啟動器會自動偵測裝置的架構 (平台) ,然後安裝相應的 WebView2 執行時。
執行時是靜默安裝的。
或者,與其像上面那樣透過下載連結來程式化下載啟動器,你可以將 WebView2 執行環境的 Evergreen 導機程式打包到你的應用程式中。
離線部署
如果你有離線部署情境,應用程式部署必須完全離線運作,請使用以下工作流程。
從 Download the WebView2 執行環境 下載常青獨立安裝程式到你的開發機上。 Evergreen 獨立安裝程式會在用戶端安裝 Evergreen WebView2 執行環境。
請在你的應用程式安裝程式或更新程式中包含 Evergreen 獨立安裝程式。
在應用程式設定時,先測試一下 WebView2 執行時是否已經安裝好。 請參見上方「 偵測是否已安裝 WebView2 執行環境」。
如果 WebView2 執行時尚未安裝,請執行 Evergreen 獨立安裝程式。 如果你想執行靜默安裝,可以執行以下指令。
如果你從升格的程序或命令提示字元執行以下指令,會觸發 每台機器 的安裝。 如果你沒有從提升的程序或命令提示字元執行該指令,將會進行 逐使用者 安裝。 然而,若安裝了每台機器的 Microsoft Edge Updater,按使用者安裝的方案會自動被按機器安裝取代。 除了 Microsoft Edge 的 Canary 預覽通道外,Microsoft Edge 都提供 每台機器的 Edge 更新器Microsoft Updater。 欲了解更多資訊,請參閱「 按機器或按使用者安裝執行環境」。
MicrosoftEdgeWebView2RuntimeInstaller{X64/X86/ARM64}.exe /silent /install
處理 Evergreen WebView2 執行時更新
Evergreen WebView2 執行環境的新版本會自動下載到用戶端。 當 WebView2 應用程式重新啟動時,用戶端會使用新版的 WebView2 執行時。 然而,若您的應用程式持續執行,應用程式仍會使用先前版本的 WebView2 執行環境。 這會帶來安全考量,因為舊版 WebView2 執行環境可能存在安全漏洞,而新版本則修正了這些漏洞。 您應該考慮是否應該讓您的應用程式盡快採用最新版本的 WebView2 執行環境,根據您的應用程式的威脅模型。 例如,如果你的 WebView2 應用程式存取第三方內容,該內容應被視為不信任,因此應用程式必須使用最新版本的 WebView2 執行環境。
要使用新版 WebView2 執行環境,你需要解除所有對先前 WebView2 環境物件的引用,或重新啟動應用程式。 下次您的應用程式建立新的 WebView2 環境時,應用程式將使用新版本的 WebView2 執行環境。 為了達成這個目標,你可以為該事件設置一個事件處理器 NewBrowserVersionAvailable ,讓應用程式自動通知使用者重新啟動應用程式。 如果你的應用程式能自動重新啟動應用程式,建議在 WebView2 應用程式退出前先儲存使用者狀態。
-
CoreWebView2Environment班:
測試你的應用程式是否具備向前相容性
在 Evergreen 發佈模式下,WebView2 執行時會自動在用戶端保持最新狀態,以提供最新功能與安全修補。 如果你使用 Evergreen 發行版,為了確保你的 WebView2 應用程式與網路相容,你應該建立測試基礎設施。
關於如何測試應用程式前向相容性的最佳實務,請參閱 使用預覽頻道 與 部署預覽頻道自主機測試的預發布測試。
使用近期 API 時的功能偵測
在 WebView2 應用程式中使用 Evergreen 模式時,必須檢查用戶端機器上是否有新的 API,方法是使用 或 QueryInterfacetry-catch,因為用戶端機器可能沒有包含這些新 API 的最新 WebView2 執行環境。 如果 IT 管理員關閉更新,或用戶端離線,WebView2 執行時的匯報可能無法發生。
詳情請參閱 功能偵測,以測試已安裝的執行環境是否支援WebView2 預釋與釋出 SDK 中近期新增的 API。
Microsoft Edge 與 WebView2 執行時有不同的更新政策。 停用 Microsoft Edge 更新不會影響最新 WebView2 API 的可用性,因為除非管理員) 停用更新 WebView2 執行環境,否則 WebView2 執行環境仍能自動更新 (。
固定版本執行時分發模式
對於相容性要求嚴格的受限環境,可考慮使用固定版本分發模式。 (固定版本發佈模式過去稱為 自帶模式。) 欲了解入門資訊,請參閱 Evergreen 中的 固定版本執行時發佈模式 與 WebView2 執行時固定版本的差異。
在固定版本發佈模式中,你可以控制應用程式 WebView2 執行時更新的時機。 你先下載特定版本的 WebView2 執行時,然後把它打包到你的 WebView2 應用程式裡。 客戶端的 WebView2 執行時不會自動更新。 相反地,你會定期更新與更新後應用程式一同打包並發佈的 WebView2 執行環境。 固定版本方法不使用註冊表金鑰來執行 WebView2 執行時。
固定版的二進位檔超過 250 MB,會讓你的應用程式包變大。
使用固定版分發模式:
從 Download the WebView2 執行環境套件下載固定版 WebView2 執行環境。
最新及第二大主要版本的修補最多版本可於本網站下載。 保留你需要的版本存檔副本。
可使用命令列指令
expand {path to the package} -F:* {path to the destination folder}或使用如 WinRAR 等解壓縮工具來解壓 WebView2 執行時套件。 避免透過檔案總管解壓縮,因為這種方法可能無法產生正確的資料夾結構。將所有解壓縮的固定版本二進位檔包含在你的應用程式套件中,並在安裝應用程式時部署到目標機器上。
在建立 WebView2 環境時,請標示通往固定版本二進位檔的路徑。
對於 Win32 C/C++,你可以使用 CreateCoreWebView2EnvironmentWithOptions 函式來建立環境。 使用
browserExecutableFolder參數指示包含msedgewebview2.exe的資料夾路徑。對於 .NET 來說,你必須先指定環境,WebView2
Source屬性才會生效。 對於 .NET 來說,你可以使用以下任一種方法來指定環境:對於 WinUI,請指定安裝位置並設定執行時路徑的環境變數,確保應用程式能存取該資料夾。 其中一種方法是將以下 C# 程式碼加入應用程式:
StorageFolder localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; String fixedPath = Path.Combine(localFolder.Path, "FixedRuntime\\(version number)"); Debug.WriteLine($"Launch path [{localFolder.Path}]"); Debug.WriteLine($"FixedRuntime path [{fixedPath}]"); Environment.SetEnvironmentVariable("WEBVIEW2_BROWSER_EXECUTABLE_FOLDER", fixedPath);
將固定版二進位檔打包並隨你的應用程式一起寄送。 適時更新二進位檔。
對於 WinUI,這可能包括在程式碼編輯器中 (
.csproj) 開啟專案檔案,然後在專案標籤中加入以下程式碼:<ItemGroup> <Content Include="FixedRuntime\(version number)\\**\*.*"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup>確認
bin\**designated architecture**\Release該資料夾是否有與 FixedRuntime\ (版本號相符) 包含執行時檔案的資料夾。
在 Windows 10 裝置上,從固定版本 120 開始,使用固定版本開發未封裝 Win32 應用程式的用戶必須執行以下指令,以使固定版本繼續運作。 這是因為 v120 的安全性改進,讓渲染器程序能在 App 容器中執行。 此變更不影響 Windows 11 裝置、舊版執行環境或已封裝的應用程式。
找出你部署固定版本套件的路徑,例如以下位置:
D:\myapp\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64請在使用者裝置上執行以下指令:
icacls {Fixed Version path} /grant *S-1-15-2-2:(OI)(CI)(RX) icacls {Fixed Version path} /grant *S-1-15-2-1:(OI)(CI)(RX)請確認已授權
ALL APPLICATION PACKAGESALL RESTRICTED APPLICATION PACKAGES於 Fixed Version 資料夾的安全標籤中及權限,如下所示:
修正版本已知問題
- 目前,固定版本無法從網路位置或 UNC 路徑執行。
隨應用程式附送的檔案
WebView2Loader程式碼必須隨應用程式一起附送。 這可以透過靜態連結 WebView2Loader.lib 應用程式的二進位檔,或是加入符合應用程式架構的 來 WebView2Loader.dll 達成。 通常在 WebView2 SDK 中使用 .targets 檔案時,Visual Studio 會自動幫你處理,但有時可能需要手動指定要發佈哪些檔案。 若要靜態連結 WebView2 載入器函式庫,請參見 「將 WebView2 應用程式分發為單一可執行檔案」。
WebView2Loader.dll 是原生且架構特定的二進位,因此你需要包含你預期應用程式會運行的所有二進位檔。 例如:
對於 x86,你會包含 x86 版本的
WebView2Loader.dll。如果是使用 AnyCPU 的受管應用程式,你會包含 x86、x64 和 arm64 版本。
WebView2Loader.dll正確版本的 是WebView2Loader.dll從相應架構專用資料夾載入的。
原生應用程式資料夾結構範例:
\<myApp>
\WebView2Loader.dll
對於 .NET 管理應用程式,你還需要包含 WebView2 的 .NET 組件,用於 WebView2 (Microsoft.Web.WebView2.Core.dll) 功能,以及 WPF/WinForms 專屬功能 (Microsoft.Web.WebView2.Winforms.dll 或 Microsoft.Web.WebView2.WPF.dll) 。
範例管理應用程式資料夾結構:
\<myApp>
\Microsoft.Web.WebView2.Core.dll
\Microsoft.Web.WebView2.Winforms.dll
\Microsoft.Web.WebView2.WPF.dll
\runtimes
\win-arm64\native\WebView2Loader.dll (arm64)
\win-x64\native\WebView2Loader.dll (x64)
\win-x86\native\WebView2Loader.dll (x86)
另請參閱
- WebView2 部署範例
-
WebView2 預發布與發佈 SDK
- 功能偵測,測試已安裝的執行環境是否支援WebView2 預發布與釋出 SDK 中近期新增的 API。
- Evergreen 與固定版本的 WebView2 執行環境比較
- Windows Server Update Services (WSUS) WebView2 執行環境的企業管理。
- 測試即將推出的 API 與功能
- 使用預覽頻道進行預發布測試
- 透過部署預覽頻道來自我架設
- 將 WebView2 應用程式作為單一可執行檔發佈 ——靜態連結 WebView2 載入器函式庫。
企業文件:
developer.microsoft.com:
部落格:
- 將 Microsoft Edge WebView2 執行環境交付至受管理的 Windows 10 裝置
- 將 Microsoft Edge WebView2 執行環境交付至受管理的 Windows 10 裝置
視窗:
GitHub:
Windows 執行階段 API:
- win32dependencies:ExternalDependency (Windows 10,Windows 11) 在 App 套件 manifest 文件中。
API 參考:
(WPF/WinForms 中的
CoreWebView2CreationProperties成員)BrowserExecutableFolderCoreWebView2Environment班:-
CoreWebView2Environment.CreateAsync ,包含參數
browserExecutableFolder。 - CoreWebView2Environment.NewBrowserVersionAvailable Event
-
CoreWebView2Environment.CreateAsync ,包含參數