From 1d892dd76af10fbef70a10261883a8f51b113204 Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Thu, 3 Apr 2014 22:55:52 +0200 Subject: [PATCH] Fix #417: Can add same reference twice --- .../Commands/ReferenceFolderNodeCommands.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs index a298dc7dd2..bfa0216a13 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs @@ -17,12 +17,14 @@ // DEALINGS IN THE SOFTWARE. using System; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Net; using System.Web.Services.Discovery; using System.Windows.Forms; using System.Xml; +using System.Linq; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Gui; @@ -43,8 +45,12 @@ namespace ICSharpCode.SharpDevelop.Project.Commands LoggingService.Info("Show add reference dialog for " + project.FileName); using (SelectReferenceDialog selDialog = new SelectReferenceDialog(project)) { if (selDialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { + var duplicateReferences = new List(); foreach (ReferenceProjectItem reference in selDialog.ReferenceInformations) { - ProjectService.AddProjectItem(project, reference); + var thisReference = reference; + if (project.Items.OfType().All(r => r.ShortName != thisReference.ShortName)) { + ProjectService.AddProjectItem(project, reference); + } } project.Save(); } @@ -160,7 +166,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands // Add proxy to code completion. SD.ParserService.ParseFileAsync(FileName.Create(refDialog.WebReference.WebProxyFileName)).FireAndForget(); - + node.Project.Save(); } }