Browse Source

Support PowerShell scripts that access the TargetFrameworkMoniker project property.

pull/15/head
Matt Ward 15 years ago
parent
commit
a456ad58c5
  1. 18
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Property.cs
  2. 31
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs

18
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Property.cs

@ -28,9 +28,27 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -28,9 +28,27 @@ namespace ICSharpCode.PackageManagement.EnvDTE
string GetProperty(string name)
{
string value = project.MSBuildProject.GetUnevalatedProperty(name);
if (value != null) {
return value;
}
if (IsTargetFrameworkMoniker(name)) {
return GetTargetFrameworkMoniker();
}
return EmptyStringIfNull(value);
}
bool IsTargetFrameworkMoniker(string name)
{
return String.Equals(name, "TargetFrameworkMoniker", StringComparison.InvariantCultureIgnoreCase);
}
string GetTargetFrameworkMoniker()
{
var targetFramework = new ProjectTargetFramework(project.MSBuildProject);
return targetFramework.TargetFrameworkName.ToString();
}
string EmptyStringIfNull(string value)
{
if (value != null) {

31
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs

@ -77,11 +77,40 @@ namespace PackageManagement.Tests.EnvDTE @@ -77,11 +77,40 @@ namespace PackageManagement.Tests.EnvDTE
public void ItemValue_SetPostBuildEvent_MSBuildProjectIsSaved()
{
CreateProperties();
project.Properties.Item("PostBuildEvent").Value = "test";
properties.Item("PostBuildEvent").Value = "test";
bool saved = msbuildProject.IsSaved;
Assert.IsTrue(saved);
}
[Test]
public void ItemValue_GetTargetFrameworkMoniker_ReturnsNet40ClientProfile()
{
CreateProperties();
msbuildProject.SetProperty("TargetFrameworkVersion", "4.0");
msbuildProject.SetProperty("TargetFrameworkProfile", "Client");
string targetFrameworkMoniker = properties.Item("TargetFrameworkMoniker").Value as string;
string expectedTargetFrameworkMoniker = ".NETFramework,Version=v4.0,Profile=Client";
Assert.AreEqual(expectedTargetFrameworkMoniker, targetFrameworkMoniker);
}
[Test]
public void ItemValue_GetTargetFrameworkMonikerUsingIncorrectCaseAndFrameworkIdentifierIsSilverlight_ReturnsNet35Silverlight()
{
CreateProperties();
msbuildProject.SetProperty("TargetFrameworkIdentifier", "Silverlight");
msbuildProject.SetProperty("TargetFrameworkVersion", "3.5");
msbuildProject.SetProperty("TargetFrameworkProfile", "Full");
string targetFrameworkMoniker = properties.Item("targetframeworkmoniker").Value as string;
string expectedTargetFrameworkMoniker = "Silverlight,Version=v3.5,Profile=Full";
Assert.AreEqual(expectedTargetFrameworkMoniker, targetFrameworkMoniker);
}
}
}

Loading…
Cancel
Save