private void RunRepair(MultiTermVersionListItem selectedVersion) { var directoriesPath = new DirectoryInfo(_packageCache).GetDirectories() .Where(n => n.Name.Contains(selectedVersion.CacheFolderName)) .Select(n => n.FullName).ToList(); foreach (var directoryPath in directoriesPath) { var msiName = GetMsiName(selectedVersion); var moduleDirectoryPath = Path.Combine(directoryPath, "modules"); if (Directory.Exists(moduleDirectoryPath)) { var msiFile = Path.Combine(moduleDirectoryPath, msiName); if (File.Exists(msiFile)) { var process = new ProcessStartInfo { FileName = "msiexec", WorkingDirectory = moduleDirectoryPath, Arguments = "/fa " + msiName, Verb = "runas" }; Process.Start(process); } } } }
private string GetMsiName(MultiTermVersionListItem selectedVersion) { var msiName = string.Format("MTCore{0}.msi", selectedVersion.MajorVersionNumber); return(msiName); }