From 4bd3157fe99237a31b10de39af780686ae9d41c6 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Mon, 9 May 2011 14:13:05 -0700 Subject: [PATCH] #17793: Removing Orchard.Web.cspoj from msdeploy Work Items: 17793 --HG-- branch : 1.x --- Orchard.proj | 10 +- src/Orchard.sln | 13 - .../MSBuild.Orchard.Tasks.Tests.csproj | 125 -------- .../Properties/AssemblyInfo.cs | 34 --- .../StageProjectAlterationTests.cs | 104 ------- .../TestData/ExtraFiles.xml | 16 - .../TestData/ProjectReferences.xml | 23 -- .../TestData/SimpleWebProject.xml | 287 ------------------ .../TestData/TestDataFiles.cs | 49 --- .../MSBuild.Orchard.Tasks.csproj | 1 - .../StageProjectAlteration.cs | 219 ------------- 11 files changed, 1 insertion(+), 880 deletions(-) delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/MSBuild.Orchard.Tasks.Tests.csproj delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/Properties/AssemblyInfo.cs delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/StageProjectAlterationTests.cs delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ExtraFiles.xml delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/ProjectReferences.xml delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml delete mode 100644 src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/TestDataFiles.cs delete mode 100644 src/Tools/MSBuild.Orchard.Tasks/StageProjectAlteration.cs 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; - } - } - } -}