summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs')
-rw-r--r--src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs b/src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs
index a2fd46b..1a8a17d 100644
--- a/src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs
+++ b/src/DotNetOpenAuth.BuildTasks/MergeProjectWithVSTemplate.cs
@@ -57,13 +57,15 @@ namespace DotNetOpenAuth.BuildTasks {
foreach (var item in folder) {
bool replaceParameters = this.ReplaceParametersExtensions.Contains(Path.GetExtension(item.Include));
- var projectItem = new XElement(
- XName.Get("ProjectItem", VSTemplateNamespace),
- Path.GetFileName(item.Include));
+ var itemName = XName.Get("ProjectItem", VSTemplateNamespace);
+ var projectItem = parentNode.Elements(itemName).FirstOrDefault(el => string.Equals(el.Value, Path.GetFileName(item.Include), StringComparison.OrdinalIgnoreCase));
+ if (projectItem == null) {
+ projectItem = new XElement(itemName, Path.GetFileName(item.Include));
+ parentNode.Add(projectItem);
+ }
if (replaceParameters) {
projectItem.SetAttributeValue("ReplaceParameters", "true");
}
- parentNode.Add(projectItem);
}
}