diff --git a/Orchard.proj b/Orchard.proj
index 4dccfea02..c604796b4 100644
--- a/Orchard.proj
+++ b/Orchard.proj
@@ -140,7 +140,6 @@
-
@@ -155,7 +154,7 @@
-
+
@@ -205,13 +204,6 @@
-
-
-
-
-
-
-
- Debug
- AnyCPU
- 9.0.30729
- 2.0
- {4AB4B5B6-277E-4FF6-B69B-7AE9E16D2A56}
- Library
- Properties
- MSBuild.Orchard.Tasks.Tests
- MSBuild.Orchard.Tasks.Tests
- v4.0
- 512
-
-
- 3.5
-
- false
- publish\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 0
- 1.0.0.%2a
- false
- true
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- x86
- ..\..\OrchardBasicCorrectness.ruleset
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- AllRules.ruleset
-
-
-
-
-
- False
- ..\..\..\lib\moq\Moq.dll
-
-
- False
- ..\..\..\lib\nunit\nunit.framework.dll
-
-
-
- 3.5
-
-
- 3.5
-
-
- 3.5
-
-
-
-
-
-
-
-
-
-
-
- {5E5E7A21-C7B2-44D8-8593-2F9541AE041D}
- MSBuild.Orchard.Tasks
-
-
-
-
-
-
-
-
-
-
-
-
-
- False
- .NET Framework 3.5 SP1 Client Profile
- false
-
-
- False
- .NET Framework 3.5 SP1
- true
-
-
- False
- Windows Installer 3.1
- true
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/Properties/AssemblyInfo.cs b/src/Tools/MSBuild.Orchard.Tasks.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 432a92500..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("MSBuild.Orchard.Tasks.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyProduct("Orchard")]
-[assembly: AssemblyCopyright("Copyright © Outercurve Foundation 2009")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("db4cb512-5c00-44c9-9173-7ede47af1967")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.20")]
-[assembly: AssemblyFileVersion("1.0.20")]
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/StageProjectAlterationTests.cs b/src/Tools/MSBuild.Orchard.Tasks.Tests/StageProjectAlterationTests.cs
deleted file mode 100644
index 6387b1e1b..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/StageProjectAlterationTests.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using System.Linq;
-using System.Xml.Linq;
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-using Moq;
-using MSBuild.Orchard.Tasks.Tests.TestData;
-using NUnit.Framework;
-
-namespace MSBuild.Orchard.Tasks.Tests {
- [TestFixture]
- public class StageProjectAlterationTests {
- private TestDataFiles _testDataFiles;
- private StageProjectAlteration _task;
- private string _xmlns = "http://schemas.microsoft.com/developer/msbuild/2003";
-
- [SetUp]
- public void Init() {
- _testDataFiles = new TestDataFiles();
- _task = new StageProjectAlteration();
-
- var engine = new Mock();
- _task.BuildEngine = engine.Object;
- }
-
- [TearDown]
- public void Term() {
- _testDataFiles.Dispose();
- _testDataFiles = null;
- }
-
- [Test]
- public void ClassShouldBeCallable() {
- var result = _task.Execute();
- Assert.That(result, Is.False);
- }
-
- [Test]
- public void ProjectFileNameMustExist() {
- _task.ProjectFileName = "no-such-file.csproj";
- var result = _task.Execute();
- Assert.That(result, Is.False);
-
- _task.ProjectFileName = _testDataFiles.Get("SimpleWebProject.xml");
- result = _task.Execute();
- Assert.That(result, Is.True);
- }
-
- [Test]
- public void ProjectReferencesMustChange() {
- _task.ProjectFileName = _testDataFiles.Get("ProjectReferences.xml");
- var before = XDocument.Load(_task.ProjectFileName);
- var result = _task.Execute();
- var after = XDocument.Load(_task.ProjectFileName);
-
- Assert.That(result, Is.True);
-
- var beforeProjectReferences = before
- .Elements(XName.Get("Project", _xmlns))
- .Elements(XName.Get("ItemGroup", _xmlns))
- .Elements(XName.Get("ProjectReference", _xmlns));
-
- Assert.That(beforeProjectReferences.Count(), Is.Not.EqualTo(0));
-
- var afterProjectReferences = after
- .Elements(XName.Get("Project", _xmlns))
- .Elements(XName.Get("ItemGroup", _xmlns))
- .Elements(XName.Get("ProjectReference", _xmlns));
-
- Assert.That(afterProjectReferences.Count(), Is.EqualTo(0));
- }
-
- [Test]
- public void ExtraFilesAreDetected() {
- _task.ProjectFileName = _testDataFiles.Get("ExtraFiles.xml");
- var result = _task.Execute();
- Assert.That(result, Is.True);
-
- Assert.That(_task.ExtraFiles.Count(), Is.EqualTo(4));
- }
-
- [Test]
- public void ContentFilesAreDetected() {
- _task.ProjectFileName = _testDataFiles.Get("ExtraFiles.xml");
- _task.AddContentFiles = new[] {
- new TaskItem("newfile.xml"),
- new TaskItem("another\\newfile.txt")
- };
- var result = _task.Execute();
- Assert.That(result, Is.True);
-
- var after = XDocument.Load(_task.ProjectFileName);
- var afterIncludes = after
- .Elements(XName.Get("Project", _xmlns))
- .Elements(XName.Get("ItemGroup", _xmlns))
- .Elements(XName.Get("Content", _xmlns))
- .Attributes("Include")
- .Select(attr => (string)attr)
- .ToArray();
-
- Assert.That(afterIncludes, Has.Some.EqualTo("newfile.xml"));
- Assert.That(afterIncludes, Has.Some.EqualTo("another\\newfile.txt"));
- }
- }
-}
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ExtraFiles.xml b/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ExtraFiles.xml
deleted file mode 100644
index f9e08e3b4..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ExtraFiles.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- Global.asax
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ProjectReferences.xml b/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ProjectReferences.xml
deleted file mode 100644
index 9736a10de..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ProjectReferences.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- False
- ..\..\lib\autofac\Autofac.dll
-
-
- False
- ..\..\lib\autofac\Autofac.Integration.Web.dll
-
-
-
-
-
- {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
-
-
- {9916839C-39FC-4CEB-A5AF-89CA7E87119F}
- Orchard.Core
-
-
-
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml b/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml
deleted file mode 100644
index 4c3a29ed4..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
- Debug
- AnyCPU
- 9.0.30729
- 2.0
- {50B779EA-EC00-4699-84C0-03B395C365D2}
- {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
- Library
- Properties
- Orchard.Web
- Orchard.Web
- v3.5
- true
-
-
- true
- full
- false
- bin\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\
- TRACE
- prompt
- 4
-
-
-
- False
- ..\..\lib\autofac\Autofac.dll
-
-
- False
- ..\..\lib\autofac\Autofac.Integration.Web.dll
-
-
- False
- ..\..\lib\fluentnhibernate\NHibernate.ByteCode.Castle.dll
-
-
-
-
- 3.5
-
-
- 3.5
-
-
- 3.5
-
-
- False
- ..\..\lib\aspnetmvc\System.Web.Mvc.dll
- True
-
-
- 3.5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Global.asax
-
-
-
-
-
-
-
-
-
-
-
- {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}
- Orchard
-
-
- {9916839C-39FC-4CEB-A5AF-89CA7E87119F}
- Orchard.Core
-
-
- {63FBD4D9-E1DA-4A7B-AA6A-D6074FE50867}
- Orchard.Blogs
-
-
- {14C049FD-B35B-415A-A824-87F26B26E7FD}
- Orchard.Comments
-
-
- {67C1D3AF-A0EC-46B2-BAE1-DF1DA8E0B890}
- Orchard.Experimental
-
-
- {D9A7B330-CD22-4DA1-A95A-8DE1982AD8EB}
- Orchard.Media
-
-
- {D10AD48F-407D-4DB5-A328-173EC7CB010F}
- Orchard.Roles
-
-
- {8C7FCBC2-E6E1-405E-BFB5-D8D9E67A09C4}
- Orchard.Setup
-
-
- {5D0F00F0-26C9-4785-AD61-B85710C60EB0}
- Orchard.Tags
-
-
- {79AED36E-ABD0-4747-93D3-8722B042454B}
- Orchard.Users
-
-
- {17C44253-65A2-4597-98C7-16EE576824B6}
- Orchard.Sandbox
-
-
- {954CA994-D204-468B-9D69-51F6AD3E1C29}
- TinyMce
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(ProjectDir)\..\Manifests
-
-
-
-
-
-
-
-
-
-
-
- False
- False
- 30320
- /
-
-
- False
- False
-
-
- False
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/TestDataFiles.cs b/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/TestDataFiles.cs
deleted file mode 100644
index 6f192a7b7..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/TestDataFiles.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-
-namespace MSBuild.Orchard.Tasks.Tests.TestData {
- public class TestDataFiles : IDisposable {
- List _entries = new List();
- private readonly string _tempPath;
-
- public TestDataFiles() {
- _tempPath = Path.GetTempFileName();
- File.Delete(_tempPath);
- Directory.CreateDirectory(_tempPath);
- }
-
- public void Dispose() {
- Directory.Delete(_tempPath, true);
- }
-
- public string Get(string name) {
- if (!_entries.Any(entry => entry.Name == name)) {
- var type = GetType();
- var fullPath = Path.Combine(_tempPath, name);
- using (var inputStream = type.Assembly.GetManifestResourceStream(type, name)) {
- if (inputStream == null)
- throw new ApplicationException("Tests data not found");
-
- using (var outputStream = new FileStream(fullPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) {
- var buffer = new byte[8192];
- for (; ; ) {
- var size = inputStream.Read(buffer, 0, buffer.Length);
- if (size < 1)
- break;
- outputStream.Write(buffer, 0, size);
- }
- }
- }
- _entries.Add(new Entry { Name = name, FullPath = fullPath });
- }
- return _entries.Single(entry => entry.Name == name).FullPath;
- }
-
- class Entry {
- public string Name { get; set; }
- public string FullPath { get; set; }
- }
- }
-}
diff --git a/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj b/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj
index bad5c6697..b7d9d3162 100644
--- a/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj
+++ b/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj
@@ -70,7 +70,6 @@
-
diff --git a/src/Tools/MSBuild.Orchard.Tasks/StageProjectAlteration.cs b/src/Tools/MSBuild.Orchard.Tasks/StageProjectAlteration.cs
deleted file mode 100644
index b4903407c..000000000
--- a/src/Tools/MSBuild.Orchard.Tasks/StageProjectAlteration.cs
+++ /dev/null
@@ -1,219 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Xml.Linq;
-using Microsoft.Build.Framework;
-using Microsoft.Build.Utilities;
-
-namespace MSBuild.Orchard.Tasks {
- public class StageProjectAlteration : Task {
- public string ProjectFileName { get; set; }
-
- public ITaskItem[] AddContentFiles { get; set; }
-
- [Output]
- public ITaskItem[] ExtraFiles { get; set; }
-
-
-
- public override bool Execute() {
- Log.LogMessage("Altering \"{0}\"", ProjectFileName);
-
- var context = new Context(this);
- if (context.LoadProject() &&
- context.ChangeProjectReferencesToFileReferences() &&
- context.ChangeLibraryReferencesToFileReferences() &&
- context.FindExtraFiles() &&
- context.AddContentFiles() &&
- context.SaveProject()) {
-
- Log.LogMessage("Stage project altered successfully");
- return true;
- }
-
- Log.LogWarning("Stage project alteration failed");
- return false;
- }
-
- class Context {
- private readonly StageProjectAlteration _task;
- XDocument _document;
-
- private const string Xmlns = "http://schemas.microsoft.com/developer/msbuild/2003";
- private static readonly XName Project = XName.Get("Project", Xmlns);
- private static readonly XName ItemGroup = XName.Get("ItemGroup", Xmlns);
- private static readonly XName ProjectReference = XName.Get("ProjectReference", Xmlns);
- private static readonly XName Reference = XName.Get("Reference", Xmlns);
- private static readonly XName Name = XName.Get("Name", Xmlns);
- private static readonly XName Include = XName.Get("Include");
- private static readonly XName HintPath = XName.Get("HintPath", Xmlns);
- private static readonly XName SpecificVersion = XName.Get("SpecificVersion", Xmlns);
- private static readonly XName Content = XName.Get("Content", Xmlns);
- private static readonly XName Compile = XName.Get("Compile", Xmlns);
- private static readonly XName None = XName.Get("None", Xmlns);
-
- public Context(StageProjectAlteration task) {
- _task = task;
- }
-
- public bool LoadProject() {
- try {
- _document = XDocument.Load(_task.ProjectFileName);
- return true;
- }
- catch (Exception) {
- _task.Log.LogError("Unable to load project file");
- return false;
- }
- }
-
- public bool SaveProject() {
- _document.Save(_task.ProjectFileName);
- return true;
- }
-
- public bool ChangeProjectReferencesToFileReferences() {
- var projectReferences = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .Elements(ProjectReference);
-
- var referenceItemGroup = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .FirstOrDefault(elt => elt.Elements(Reference).Any());
-
- if (referenceItemGroup == null) {
- referenceItemGroup = new XElement(ItemGroup);
- _document.Root.Add(referenceItemGroup);
- }
-
- foreach (var projectReferenceName in projectReferences.Elements(Name)) {
- string oldHintPath = (projectReferenceName.Parent.Element(HintPath) ?? new XElement(HintPath)).Value;
- string newHintPath = string.Format("bin\\{0}.dll", (string)projectReferenceName);
- var reference = new XElement(
- Reference,
- new XAttribute(Include, (string)projectReferenceName),
- new XElement(SpecificVersion, "False"),
- new XElement(HintPath, newHintPath));
- referenceItemGroup.Add(reference);
-
- _task.Log.LogMessage("Project reference \"{0}\": HintPath changed from \"{1}\" to \"{2}\"",
- (string)projectReferenceName, oldHintPath, newHintPath);
- }
-
- foreach (var projectReference in projectReferences.ToArray()) {
- projectReference.Remove();
- }
-
- return true;
- }
-
- public bool ChangeLibraryReferencesToFileReferences() {
- var libraryReferences = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .Elements(Reference);
-
- var referenceItemGroup = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .FirstOrDefault(elt => elt.Elements(Reference).Any());
-
- if (referenceItemGroup == null) {
- referenceItemGroup = new XElement(ItemGroup);
- _document.Root.Add(referenceItemGroup);
- }
-
- List elementsToRemove = new List();
- foreach (var hintPathElement in libraryReferences.Elements(HintPath)) {
- string oldHintPath = hintPathElement.Value;
-
- if (!oldHintPath.StartsWith("..\\..\\lib\\"))
- continue;
-
- elementsToRemove.Add(hintPathElement.Parent);
- // Need to change the hint path from
- // ..\\..\\lib\\\\.dll
- // to
- // bin\\.dll
- string assemblyFileName = Path.GetFileName(oldHintPath);
- string newHintPath = Path.Combine("bin", assemblyFileName);
- var reference = new XElement(
- Reference,
- new XAttribute(Include, hintPathElement.Parent.Attribute(Include).Value),
- new XElement(SpecificVersion, "False"),
- new XElement(HintPath, newHintPath));
- referenceItemGroup.Add(reference);
-
- _task.Log.LogMessage("Assembly (library) Reference \"{0}\": HintPath changed from \"{1}\" to \"{2}\"",
- hintPathElement.Parent.Attribute(Include).Value, oldHintPath, newHintPath);
- }
-
- foreach (var reference in elementsToRemove) {
- reference.Remove();
- }
-
- return true;
- }
-
- public bool FindExtraFiles() {
- var extraFiles = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .Elements().Where(elt => elt.Name == Compile || elt.Name == None)
- .Attributes(Include)
- .Select(attr => (string)attr);
-
- _task.ExtraFiles = extraFiles
- .Select(file => {
- _task.Log.LogMessage("Detected extra file \"{0}\"", file);
- var item = new TaskItem(file);
- item.SetMetadata("RecursiveDir", Path.GetDirectoryName(file));
- return item;
- })
- .ToArray();
-
-
- return true;
- }
-
- public bool AddContentFiles() {
- var existingContent = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .Elements(Content)
- .Attributes(Include)
- .Select(attr => (string)attr);
-
- var contentItemGroup = _document
- .Elements(Project)
- .Elements(ItemGroup)
- .FirstOrDefault(elt => elt.Elements(Content).Any());
-
- if (contentItemGroup == null) {
- contentItemGroup = new XElement(ItemGroup);
- _document.Root.Add(contentItemGroup);
- }
-
- if (_task.AddContentFiles != null) {
- foreach (var addContent in _task.AddContentFiles) {
- if (existingContent.Contains(addContent.ItemSpec)) {
- // don't add more than once
- continue;
- }
- _task.Log.LogMessage("Adding Content file \"{0}\"", addContent.ItemSpec);
-
- var content = new XElement(
- Content,
- new XAttribute(Include, addContent.ItemSpec));
- contentItemGroup.Add(content);
- }
- }
-
- return true;
- }
- }
- }
-}