WebView2 缺少 DLL 的錯誤訊息

 

本測試主要是想利用判斷 WebView2 的版本,來檢視在缺少部份 DLL 的情況下,會有什麼錯誤訊息,以判斷至少要提供哪些 DLL 給使用者。

 

主程式只有一個按鈕,會利用檢查 WebView2 版本來判斷使用者是否有安裝 WebView2 Runtime。

 

底下提到的 dll 檔案和 runtimes 目錄是指在 Visual Studio 産生主程式 exe 的目錄中看到的這三個檔案:

 

Microsoft.Web.WebView2.Core.dll
Microsoft.Web.WebView2.WinForms.dll
Microsoft.Web.WebView2.Wpf.dll

及 runtimes 目錄。

 

測試時,主程式是放在桌面。

 

主要程式如下,按下按鈕後會檢查版本,若失敗則印出錯誤訊息。

 

 

using Microsoft.Web.WebView2.Core;

 

private void button1_Click(object sender, EventArgs e)

{

    try {

        string version = CoreWebView2Environment.GetAvailableBrowserVersionString();

        MessageBox.Show(version);

    } catch (Exception ex) {

        MessageBox.Show(ex.Message);

    }

}

 

 

1. 只有主程式,沒有安裝 WebView2 Runtime,沒有任何 dll。

或只放 Microsoft.Web.WebView2.WinForms.dll。

 

會出現嚴重的錯誤訊息,且無法被程式捕捉。

 

ps. 有安裝 Runtime 也是如此,同情況 4.

 


 

2. 只有主程式,沒有安裝 WebView2 Runtime,相同目錄下只放 Microsoft.Web.WebView2.Core.dll。

 

無法偵測版本,程式可以捕捉到錯誤訊息。

 

ps. 有安裝 Runtime 也是如此,同情況 4.

 

 

3. 只有主程式,沒有安裝 WebView2 Runtime,相同目錄下只放 Microsoft.Web.WebView2.Core.dll 和 runtimes 目錄。

 

無法偵測版本,程式可以捕捉到不同的錯誤訊息。

 

 

此時安裝 WebView2 Runtime,下載處為:

 

https://developer.microsoft.com/zh-tw/microsoft-edge/webview2/#download-section

 

選擇下載永久啟動載入器,由它來安裝 WebView2 Runtime

 

 

下載後,執行程式即會開始安裝。

 

 

4. 有主程式,有安裝 WebView2 Runtime,沒有任何 dll。

或只放 Microsoft.Web.WebView2.WinForms.dll。

 

情況同 1. 會出現嚴重錯誤。

 

 

5. 有主程式,有安裝 WebView2 Runtime,相同目錄下只放 Microsoft.Web.WebView2.Core.dll。

 

情況同 2. 無法偵測版本,程式可以捕捉到錯誤訊息。

 

 

6. 有主程式,有安裝 WebView2 Runtime,相同目錄下只放 Microsoft.Web.WebView2.Core.dll 和 runtimes 目錄。

 

順利偵測到 WebView2 版本號碼了。

 

 

初步結論,至少要有 Microsoft.Web.WebView2.Core.dll 和 runtimes 目錄和主程式放在一起,才能判斷有沒有安裝 WebView2 Runtime。

 

程式此時再加碼,改成若檢測到有 WebView2 之後,載入含有 WebView2 元件的 Form。

 

try {

    string version = CoreWebView2Environment.GetAvailableBrowserVersionString();

    MessageBox.Show(version);

    // 開啟含有 WebView2 元件的 Form2

    Form2 fm2 = new Form2();

    fm2.ShowDialog();

} catch (Exception ex) {

    MessageBox.Show(ex.Message);

}

 

在情況 6 下,無法開啟含有 WebView2 元件的 Form2,會有錯誤訊息。

 

 

7. 有主程式,有安裝 WebView2 Runtime,相同目錄下有

Microsoft.Web.WebView2.Core.dll 和
Microsoft.Web.WebView2.WinForms.dll 和

runtimes 目錄。

 

此時在呈現版本之後,就能順利開啟 Form2,並且能由 WebView2 元件看到 Microsoft 的官網了。