void HandleClicked(object sender, EventArgs e) { var dlg = new OpenFileDialog(GettextCatalog.GetString("Select Assembly"), MonoDevelop.Components.FileChooserAction.Open); // dlg.AddFilter (GettextCatalog.GetString ("Assemblies"), "*.[Dd][Ll][Ll]", "*.[Ee][Xx][Ee]"); dlg.AddFilter(GettextCatalog.GetString("Assemblies"), "*.dll", "*.exe"); dlg.CurrentFolder = basePath; dlg.SelectMultiple = true; dlg.TransientFor = selectDialog; if (dlg.Run()) { basePath = dlg.CurrentFolder; foreach (string file in dlg.SelectedFiles) { var fn = new FilePath(file).CanonicalPath; var asm = assemblies.FirstOrDefault(a => a.File.Equals(fn)); if (asm != null) { if (!asm.Selected) { asm.Selected = true; AddReference(file); } continue; } bool isAssembly = true; try { SystemAssemblyService.GetAssemblyName(System.IO.Path.GetFullPath(file)); } catch { isAssembly = false; } if (isAssembly) { assemblies.Add(new AssemblyInfo(file) { Selected = true }); AddReference(file); if (IsExternalAssembly(file)) { selectDialog.RegisterFileReference(file); } else if (!IsNuGetAssembly(file)) { selectDialog.RegisterFileReference(file, project.ParentSolution.FileName); } } else { MessageService.ShowError(GettextCatalog.GetString("File '{0}' is not a valid .Net Assembly", file)); } } Reset(); } }
void SelectReferenceDialog(object sender, EventArgs e) { string[] selectedFiles = new string[chooser.Filenames.Length]; chooser.Filenames.CopyTo(selectedFiles, 0); foreach (string file in selectedFiles) { bool isAssembly = true; try { SystemAssemblyService.GetAssemblyName(System.IO.Path.GetFullPath(file)); } catch { isAssembly = false; } if (isAssembly) { selectDialog.AddReference(new ProjectReference(ReferenceType.Assembly, file)); selectDialog.RegisterFileReference(file); } else { MessageService.ShowError(GettextCatalog.GetString("File '{0}' is not a valid .Net Assembly", file)); } } }