在代码中查找 Webview2 WPF 控件的边缘版本

Finding Edge Version for Webview2 WPF control in code

我正在尝试使用以下 C# 代码查找 Microsoft Edge 版本。

RegistryKey reg = Registry.ClassesRoot.OpenSubKey(@"Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\PackageRepository\Packages");
        

if(reg != null)
{
    foreach(string subkey in reg.GetSubKeyNames())
    {
        if(subkey.StartsWith("Microsoft.MicrosoftEdge"))
        {
            Match rxEdgeVersion = null;
            rxEdgeVersion = Regex.Match(subkey, @"(Microsoft.MicrosoftEdge_)(?<version>\d+\.\d+\.\d+\.\d+)(_neutral__8wekyb3d8bbwe)");
                       
            if (rxEdgeVersion.Success)
                return EdgeVersion = rxEdgeVersion.Groups["version"].Value;
            }
        }
    }
}

本函数returns版本44.18362.449.0。 但是当我直接检查 Edge 浏览器 => 设置 => 帮助 (edge://settings/help) 版本是版本 84.0.522.40

这两个版本模式不匹配,我也没有并行安装不同的边缘版本。

请帮助我关联来自浏览器 UI 和 C# 的两个版本。

看看 C:\Program Files (x86)\Microsoft\Edge\Application,您可能会发现新的 Chromium Edge 具有正确的版本号,嵌入在文件 msedge.exe 和文件夹名称中。

但是你为什么不检查浏览器的 userAgent 字符串?他们包含版本号!

如果您想使用 C# 代码检查 MS Edge Chromium 浏览器版本,那么我建议您尝试在注册表下方的位置进行检查。

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients{2CD8A007-E189-409D-A2C8-9AF4EF3C72AA}

如果您检查 PV 密钥的值,您会注意到它显示的是 Edge Chromium 浏览器的版本。

如果您有其他版本,例如 Canary、beta、dev 或 stable,那么您可以尝试检查 Clients 文件夹中的其他文件夹,这可能有助于获取已安装的 Edge Chromium 浏览器的版本。