public static string EnsureLatestMsEdgeDriveIsInstalled()
{
string installedEdgePath;
try
{
const string edgeDriveFile = "msedgedriver.exe";
var downloadedEdgeDriverVersion = string.Empty;
if (File.Exists(edgeDriveFile))
{
var downloadedEdgeDriverInfo = FileVersionInfo.GetVersionInfo(edgeDriveFile);
downloadedEdgeDriverVersion = downloadedEdgeDriverInfo.FileVersion;
}
var installedEdgeBrowser =
InstalledBrowsers.Value.FirstOrDefault(b => Regex.IsMatch(b.Name, "edge", RegexOptions.IgnoreCase));
var installedEdgeVersion = installedEdgeBrowser.Version;
installedEdgePath = installedEdgeBrowser.Path;
if (installedEdgeVersion.Equals(downloadedEdgeDriverVersion))
{
return installedEdgePath;
}
var url = $"https://msedgedriver.azureedge.net/{installedEdgeVersion}/edgedriver_win32.zip";
const string fileName = "edgedriver_win32.zip";
var form = new TzunamiDownloaderForm(url, fileName);
form.ShowDialog();
if (File.Exists(edgeDriveFile))
File.Delete(edgeDriveFile);
ZipFile.ExtractToDirectory(fileName, Directory.GetCurrentDirectory());
if (File.Exists(fileName))
{
File.Delete(fileName);
}
if (Directory.Exists("Driver_Notes"))
Directory.Delete("Driver_Notes", true);
}
catch (Exception ex)
{
throw new Exception("The Edge driver for your browser could not be downloaded", ex);
}
return installedEdgePath;
}