Browse Source

applied patch from Scott Ferrett: Support for % in itmes in MSBuild files

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@786 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Markus Palme 20 years ago
parent
commit
a9bbe786cf
  1. 2
      src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs
  2. 4
      src/Main/Base/Project/Src/Project/Items/ProjectItem.cs
  3. 14
      src/Main/Base/Project/Src/Project/MSBuildProject.cs

2
src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs

@ -238,7 +238,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
} }
// We have to use the stringWriter for writing because xslt.Transform doesn't use // We have to use the stringWriter for writing because xslt.Transform doesn't use
// writer.Formatting. Also, we need to remove some unwanted whitespace from the beginning. // writer.Formatting. Also, we need to remove some unwanted whitespace from the beginning.
using (XmlTextWriter writer = new XmlTextWriter(outFile, Encoding.UTF8)) { using (MSBuildFileWriter writer = new MSBuildFileWriter(outFile, Encoding.UTF8)) {
writer.Formatting = Formatting.Indented; writer.Formatting = Formatting.Indented;
using (XmlTextReader reader = new XmlTextReader(new StringReader(stringWriter.ToString()))) { using (XmlTextReader reader = new XmlTextReader(new StringReader(stringWriter.ToString()))) {
reader.WhitespaceHandling = WhitespaceHandling.Significant; reader.WhitespaceHandling = WhitespaceHandling.Significant;

4
src/Main/Base/Project/Src/Project/Items/ProjectItem.cs

@ -140,7 +140,7 @@ namespace ICSharpCode.SharpDevelop.Project
} }
internal void WriteItem(XmlTextWriter writer) internal void WriteItem(MSBuildFileWriter writer)
{ {
writer.WriteStartElement(Tag); writer.WriteStartElement(Tag);
writer.WriteAttributeString("Include", Include); writer.WriteAttributeString("Include", Include);
@ -167,7 +167,7 @@ namespace ICSharpCode.SharpDevelop.Project
} }
} }
internal static void WriteItemGroup(XmlTextWriter writer, List<ProjectItem> items) internal static void WriteItemGroup(MSBuildFileWriter writer, List<ProjectItem> items)
{ {
writer.WriteStartElement("ItemGroup"); writer.WriteStartElement("ItemGroup");
foreach (ProjectItem item in items) { foreach (ProjectItem item in items) {

14
src/Main/Base/Project/Src/Project/MSBuildProject.cs

@ -83,7 +83,7 @@ namespace ICSharpCode.SharpDevelop.Project
protected void SetupProject(string projectFileName) protected void SetupProject(string projectFileName)
{ {
this.fileName = projectFileName; this.fileName = projectFileName;
using (XmlTextReader reader = new XmlTextReader(projectFileName)) { using (MSBuildFileReader reader = new MSBuildFileReader(projectFileName)) {
reader.WhitespaceHandling = WhitespaceHandling.Significant; reader.WhitespaceHandling = WhitespaceHandling.Significant;
reader.MoveToContent(); // we have to skip over the XmlDeclaration (if it exists) reader.MoveToContent(); // we have to skip over the XmlDeclaration (if it exists)
if (reader.Name == "VisualStudioProject") { if (reader.Name == "VisualStudioProject") {
@ -115,7 +115,7 @@ namespace ICSharpCode.SharpDevelop.Project
string userSettingsFileName = projectFileName + ".user"; string userSettingsFileName = projectFileName + ".user";
if (File.Exists(userSettingsFileName)) { if (File.Exists(userSettingsFileName)) {
using (XmlTextReader reader = new XmlTextReader(userSettingsFileName)) { using (MSBuildFileReader reader = new MSBuildFileReader(userSettingsFileName)) {
reader.WhitespaceHandling = WhitespaceHandling.Significant; reader.WhitespaceHandling = WhitespaceHandling.Significant;
reader.MoveToContent(); // we have to skip over the XmlDeclaration (if it exists) reader.MoveToContent(); // we have to skip over the XmlDeclaration (if it exists)
while (reader.Read()){ while (reader.Read()){
@ -181,7 +181,7 @@ namespace ICSharpCode.SharpDevelop.Project
if (!System.IO.Directory.Exists(outputDirectory)) { if (!System.IO.Directory.Exists(outputDirectory)) {
System.IO.Directory.CreateDirectory(outputDirectory); System.IO.Directory.CreateDirectory(outputDirectory);
} }
using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) { using (MSBuildFileWriter writer = new MSBuildFileWriter(fileName, Encoding.UTF8)) {
writer.Formatting = Formatting.Indented; writer.Formatting = Formatting.Indented;
writer.WriteStartElement("Project"); writer.WriteStartElement("Project");
@ -245,7 +245,7 @@ namespace ICSharpCode.SharpDevelop.Project
string userSettingsFileName = fileName + ".user"; string userSettingsFileName = fileName + ".user";
if (userConfigurations.Count > 0 || UserBaseConfiguration.PropertyCount > 0 || File.Exists(userSettingsFileName)) { if (userConfigurations.Count > 0 || UserBaseConfiguration.PropertyCount > 0 || File.Exists(userSettingsFileName)) {
using (XmlTextWriter writer = new XmlTextWriter(userSettingsFileName, Encoding.UTF8)) { using (MSBuildFileWriter writer = new MSBuildFileWriter(userSettingsFileName, Encoding.UTF8)) {
writer.Formatting = Formatting.Indented; writer.Formatting = Formatting.Indented;
writer.WriteStartElement("Project"); writer.WriteStartElement("Project");
writer.WriteAttributeString("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); writer.WriteAttributeString("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
@ -258,7 +258,7 @@ namespace ICSharpCode.SharpDevelop.Project
} }
} }
static void SaveProperties(XmlWriter writer, PropertyGroup baseConfiguration, Dictionary<string, PropertyGroup> configurations) static void SaveProperties(MSBuildFileWriter writer, PropertyGroup baseConfiguration, Dictionary<string, PropertyGroup> configurations)
{ {
if (baseConfiguration.PropertyCount > 0) { if (baseConfiguration.PropertyCount > 0) {
writer.WriteStartElement("PropertyGroup"); writer.WriteStartElement("PropertyGroup");
@ -283,11 +283,11 @@ namespace ICSharpCode.SharpDevelop.Project
} }
} }
static void SaveUnknownXmlSections(XmlWriter writer, List<string> unknownElements) static void SaveUnknownXmlSections(MSBuildFileWriter writer, List<string> unknownElements)
{ {
foreach (string element in unknownElements) { foreach (string element in unknownElements) {
// round-trip xml text again for better formatting // round-trip xml text again for better formatting
XmlReader reader = new XmlTextReader(new StringReader(element)); MSBuildFileReader reader = new MSBuildFileReader(new StringReader(element));
writer.WriteNode(reader, false); writer.WriteNode(reader, false);
reader.Close(); reader.Close();
} }

Loading…
Cancel
Save