diff --git a/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj b/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
index 7c3c6200ef..1ee6d5c787 100644
--- a/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
+++ b/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
@@ -36,6 +36,7 @@
TRACE
+
..\RequiredLibraries\NuGet.Core.dll
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs
index d1c61ee4ab..016803a144 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs
@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.IO;
using ICSharpCode.SharpDevelop.Project;
+using Microsoft.Build.Construction;
using SD = ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE
@@ -142,5 +143,16 @@ namespace ICSharpCode.PackageManagement.EnvDTE
fileProjectItem.Include = include;
return fileProjectItem;
}
+
+ internal IList GetAllPropertyNames()
+ {
+ var names = new List();
+ lock (MSBuildProject.SyncRoot) {
+ foreach (ProjectPropertyElement propertyElement in MSBuildProject.MSBuildProjectFile.Properties) {
+ names.Add(propertyElement.Name);
+ }
+ }
+ return names;
+ }
}
}
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectPropertyFactory.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectPropertyFactory.cs
index 3c4b417349..2d1a579ec4 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectPropertyFactory.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectPropertyFactory.cs
@@ -3,6 +3,8 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.SharpDevelop.Project;
+using Microsoft.Build.Construction;
namespace ICSharpCode.PackageManagement.EnvDTE
{
@@ -22,7 +24,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public IEnumerator GetEnumerator()
{
- throw new NotImplementedException();
+ foreach (string propertyName in project.GetAllPropertyNames()) {
+ yield return CreateProperty(propertyName);
+ }
}
}
}
diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs
index df16142c61..ad9a681d9b 100644
--- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs
+++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs
@@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
+using System.Linq;
using ICSharpCode.PackageManagement.EnvDTE;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
@@ -113,5 +114,17 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(expectedTargetFrameworkMoniker, targetFrameworkMoniker);
}
+
+ [Test]
+ public void GetEnumerator_TargetFrameworkVersionSetTo40_TargetFrameworkVersionPropertyReturned()
+ {
+ CreateProperties();
+ msbuildProject.SetProperty("TargetFrameworkVersion", "4.0");
+
+ Property targetFrameworkVersionProperty = project.Properties.First(p => p.Name == "TargetFrameworkVersion");
+ string targetFrameworkVersion = targetFrameworkVersionProperty.Value as string;
+
+ Assert.AreEqual("4.0", targetFrameworkVersion);
+ }
}
}