/// <summary> /// Populates list of 'extra' items for the game. This includes things like dlls, and for ME1, config files /// </summary> public void PopulateExtras() { var exeDir = MEDirectories.ExecutableDirectory(this); var dlls = Directory.GetFiles(exeDir, @"*.dll").Select(x => Path.GetFileName(x)); var expectedDlls = MEDirectories.VanillaDlls(this.Game); var extraDlls = dlls.Except(expectedDlls, StringComparer.InvariantCultureIgnoreCase); void notifyExtraFileDeleted(InstalledExtraFile ief) { ExtraFiles.Remove(ief); } ExtraFiles.ReplaceAll(extraDlls.Select(x => new InstalledExtraFile(Path.Combine(exeDir, x), InstalledExtraFile.EFileType.DLL, Game, notifyExtraFileDeleted))); }