Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 1d892dd

Browse files
committed
Fix #417: Can add same reference twice
1 parent 4a84b07 commit 1d892dd

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
// DEALINGS IN THE SOFTWARE.
1818

1919
using System;
20+
using System.Collections.Generic;
2021
using System.Diagnostics;
2122
using System.IO;
2223
using System.Net;
2324
using System.Web.Services.Discovery;
2425
using System.Windows.Forms;
2526
using System.Xml;
27+
using System.Linq;
2628

2729
using ICSharpCode.Core;
2830
using ICSharpCode.SharpDevelop.Gui;
@@ -43,8 +45,12 @@ public override void Run()
4345
LoggingService.Info("Show add reference dialog for " + project.FileName);
4446
using (SelectReferenceDialog selDialog = new SelectReferenceDialog(project)) {
4547
if (selDialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) {
48+
var duplicateReferences = new List<string>();
4649
foreach (ReferenceProjectItem reference in selDialog.ReferenceInformations) {
47-
ProjectService.AddProjectItem(project, reference);
50+
var thisReference = reference;
51+
if (project.Items.OfType<ReferenceProjectItem>().All(r => r.ShortName != thisReference.ShortName)) {
52+
ProjectService.AddProjectItem(project, reference);
53+
}
4854
}
4955
project.Save();
5056
}
@@ -160,7 +166,7 @@ public override void Run()
160166

161167
// Add proxy to code completion.
162168
SD.ParserService.ParseFileAsync(FileName.Create(refDialog.WebReference.WebProxyFileName)).FireAndForget();
163-
169+
164170
node.Project.Save();
165171
}
166172
}

0 commit comments

Comments
 (0)