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

Commit

Permalink
Fix properties added by NuGet package PowerShell script being encoded
Browse files Browse the repository at this point in the history
The SlowCheetah NuGet package uses the MSBuild API to directly modify
the MSBuild project file stored in memory in MSBuild's
GlobalProjectCollection. It adds properties that contain special
MSBuild characters, for example $( ). When SharpDevelop was merging
these new properties back into the project file on disk it was using
MSBuild to encode them so the wrong values were added. Now the
property values are not encoded.
  • Loading branch information
mrward committed Dec 3, 2016
1 parent 47951ab commit ba372ef
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ void AddPropertyToSharpDevelopProject(ProjectPropertyElement msbuildProjectPrope

void SetPropertyInSharpDevelopProject(ProjectPropertyElement msbuildProjectProperty)
{
sharpDevelopProject.SetProperty(msbuildProjectProperty.Name, msbuildProjectProperty.Value);
sharpDevelopProject.SetProperty(msbuildProjectProperty.Name, msbuildProjectProperty.Value, treatPropertyValueAsLiteral: false);
}

bool HasMSBuildProjectPropertyBeenUpdated(ProjectPropertyElement msbuildProjectProperty, ProjectPropertyElement sharpDevelopProjectProperty)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,5 +260,17 @@ public void Merge_OutputPathPropertyInDebugAndReleaseConfigurations_SharpDevelop

Assert.IsFalse(propertiesMerger.Result.AnyPropertiesChanged());
}

[Test]
public void Merge_MSBuildProjectHasNewPropertyAddedWithEncodableCharacters_PropertyAddedToSharpDevelopProjectWithoutEncodingCharacters()
{
var propertyGroup = msbuildProject.Xml.AddPropertyGroup();
propertyGroup.SetProperty("Test", "$(Value)");

Merge();

string value = sharpDevelopProject.GetUnevalatedProperty("Test");
Assert.AreEqual("$(Value)", value);
}
}
}

0 comments on commit ba372ef

Please sign in to comment.