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); + } } }