Skip to content

Commit ba372ef

Browse files
committed
Fix properties added by NuGet package PowerShell script being encoded
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.
1 parent 47951ab commit ba372ef

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/AddIns/Misc/PackageManagement/Project/Src/Scripting/MSBuildProjectPropertiesMerger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void AddPropertyToSharpDevelopProject(ProjectPropertyElement msbuildProjectPrope
9393

9494
void SetPropertyInSharpDevelopProject(ProjectPropertyElement msbuildProjectProperty)
9595
{
96-
sharpDevelopProject.SetProperty(msbuildProjectProperty.Name, msbuildProjectProperty.Value);
96+
sharpDevelopProject.SetProperty(msbuildProjectProperty.Name, msbuildProjectProperty.Value, treatPropertyValueAsLiteral: false);
9797
}
9898

9999
bool HasMSBuildProjectPropertyBeenUpdated(ProjectPropertyElement msbuildProjectProperty, ProjectPropertyElement sharpDevelopProjectProperty)

src/AddIns/Misc/PackageManagement/Test/Src/Scripting/MSBuildProjectPropertiesMergerTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,5 +260,17 @@ public void Merge_OutputPathPropertyInDebugAndReleaseConfigurations_SharpDevelop
260260

261261
Assert.IsFalse(propertiesMerger.Result.AnyPropertiesChanged());
262262
}
263+
264+
[Test]
265+
public void Merge_MSBuildProjectHasNewPropertyAddedWithEncodableCharacters_PropertyAddedToSharpDevelopProjectWithoutEncodingCharacters()
266+
{
267+
var propertyGroup = msbuildProject.Xml.AddPropertyGroup();
268+
propertyGroup.SetProperty("Test", "$(Value)");
269+
270+
Merge();
271+
272+
string value = sharpDevelopProject.GetUnevalatedProperty("Test");
273+
Assert.AreEqual("$(Value)", value);
274+
}
263275
}
264276
}

0 commit comments

Comments
 (0)