diff --git a/Orchard.proj b/Orchard.proj
index baa1d2e7b..02f327e21 100644
--- a/Orchard.proj
+++ b/Orchard.proj
@@ -134,6 +134,7 @@
+
@@ -207,6 +208,9 @@
XPath="/configuration/system.web/compilation/@debug"
Value="false" />
+
+
@@ -215,13 +219,13 @@
XPath="/configuration/system.web/machineKey/@decryptionKey"
Value="AutoGenerate" />
-
+ Value="Error" />-->
+
diff --git a/src/Tools/MSBuild.Orchard.Tasks/XmlDelete.cs b/src/Tools/MSBuild.Orchard.Tasks/XmlDelete.cs
new file mode 100644
index 000000000..207d05231
--- /dev/null
+++ b/src/Tools/MSBuild.Orchard.Tasks/XmlDelete.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Text;
+using System.Xml;
+using System.Xml.XPath;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace MSBuild.Orchard.Tasks {
+ public class XmlDelete : Task {
+
+ public string Namespace { get; set; }
+ public string Prefix { get; set; }
+ [Required]
+ public string XmlFileName { get; set; }
+ [Required]
+ public string XPath { get; set; }
+
+ public override bool Execute() {
+ try {
+ var document = new XmlDocument();
+ document.Load(this.XmlFileName);
+
+ var navigator = document.CreateNavigator();
+ var nsResolver = new XmlNamespaceManager(navigator.NameTable);
+
+ if (!string.IsNullOrEmpty(this.Prefix) && !string.IsNullOrEmpty(this.Namespace)) {
+ nsResolver.AddNamespace(this.Prefix, this.Namespace);
+ }
+
+ var expr = XPathExpression.Compile(this.XPath, nsResolver);
+
+ var iterator = navigator.Select(expr);
+ while (iterator.MoveNext()) {
+ iterator.Current.DeleteSelf();
+ }
+
+ using (var writer = new XmlTextWriter(this.XmlFileName, Encoding.UTF8)) {
+ writer.Formatting = Formatting.Indented;
+ document.Save(writer);
+ writer.Close();
+ }
+ }
+ catch (Exception exception) {
+ base.Log.LogErrorFromException(exception);
+ return false;
+ }
+ base.Log.LogMessage("Updated file '{0}'", new object[] { this.XmlFileName });
+ return true;
+ }
+ }
+}
+