From e962410a72502fa50a7e2cd8ca48a0ae7c405143 Mon Sep 17 00:00:00 2001 From: Arjan Noordende Date: Tue, 26 Apr 2016 18:02:55 +0100 Subject: [PATCH] AssemblyInfo build action Compile instead of Content with CodeGen update Fixes #5143 --- .../Orchard.AuditTrail.csproj | 2 +- .../Orchard.Azure.MediaServices.csproj | 2 +- .../Orchard.Caching/Orchard.Caching.csproj | 2 +- .../CodeGenerationTemplates/ModuleCsProj.txt | 4 +- .../Commands/CodeGenerationCommands.cs | 44 ++++++++++++++----- .../Orchard.Conditions.csproj | 2 +- .../Orchard.Dashboards.csproj | 2 +- .../Orchard.DynamicForms.csproj | 2 +- .../Orchard.Layouts/Orchard.Layouts.csproj | 2 +- .../Orchard.MessageBus.csproj | 2 +- .../Orchard.OutputCache.csproj | 2 +- .../Orchard.Redis/Orchard.Redis.csproj | 2 +- .../Orchard.Resources.csproj | 2 +- .../Orchard.Templates.csproj | 2 +- .../Modules/Upgrade/Upgrade.csproj | 2 +- 15 files changed, 48 insertions(+), 26 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj index 131b83f67..e5c0173b4 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj @@ -135,7 +135,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj index ae43db858..520eff940 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj @@ -276,7 +276,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj b/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj index f6ed91401..5ce025dc4 100644 --- a/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj +++ b/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj @@ -90,7 +90,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleCsProj.txt b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleCsProj.txt index 12138960a..e26dd842d 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleCsProj.txt +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleCsProj.txt @@ -69,7 +69,9 @@ - $$FileIncludes$$ + $$CompileIncludes$$ + $$ContentIncludes$$ + $$OrchardReferences$$ diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs index f4fe318d8..0be4e98ab 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs @@ -273,6 +273,7 @@ namespace Orchard.CodeGeneration.Commands { string propertiesPath = modulePath + "Properties"; var content = new HashSet(); var folders = new HashSet(); + var compile = new HashSet(); foreach (var folder in _moduleDirectories) { Directory.CreateDirectory(modulePath + folder); @@ -297,27 +298,29 @@ namespace Orchard.CodeGeneration.Commands { File.WriteAllText(modulePath + "Styles\\Web.config", File.ReadAllText(_codeGenTemplatePath + "StaticFilesWebConfig.txt")); content.Add(modulePath + "Styles\\Web.config"); - string templateText = File.ReadAllText(_codeGenTemplatePath + "ModuleAssemblyInfo.txt"); - templateText = templateText.Replace("$$ModuleName$$", moduleName); - templateText = templateText.Replace("$$ModuleTypeLibGuid$$", Guid.NewGuid().ToString()); - File.WriteAllText(propertiesPath + "\\AssemblyInfo.cs", templateText); - content.Add(propertiesPath + "\\AssemblyInfo.cs"); - - templateText = File.ReadAllText(_codeGenTemplatePath + "ModuleManifest.txt"); + string templateText = File.ReadAllText(_codeGenTemplatePath + "ModuleManifest.txt"); templateText = templateText.Replace("$$ModuleName$$", moduleName); File.WriteAllText(modulePath + "Module.txt", templateText, System.Text.Encoding.UTF8); content.Add(modulePath + "Module.txt"); - var itemGroup = CreateProjectItemGroup(modulePath, content, folders); + templateText = File.ReadAllText(_codeGenTemplatePath + "ModuleAssemblyInfo.txt"); + templateText = templateText.Replace("$$ModuleName$$", moduleName); + templateText = templateText.Replace("$$ModuleTypeLibGuid$$", Guid.NewGuid().ToString()); + File.WriteAllText(propertiesPath + "\\AssemblyInfo.cs", templateText); + compile.Add(propertiesPath + "\\AssemblyInfo.cs"); - File.WriteAllText(modulePath + moduleName + ".csproj", CreateCsProject(moduleName, projectGuid, itemGroup)); + var contentItemGroup = CreateProjectItemGroup(modulePath, content, folders); + var compileItemGroup = CreateCompileItemGroup(modulePath, compile); + + File.WriteAllText(modulePath + moduleName + ".csproj", CreateCsProject(moduleName, projectGuid, contentItemGroup, compileItemGroup)); } - private static string CreateCsProject(string projectName, string projectGuid, string itemGroup) { + private static string CreateCsProject(string projectName, string projectGuid, string contentItemGroup, string compileItemGroup) { string text = File.ReadAllText(_codeGenTemplatePath + "\\ModuleCsProj.txt"); text = text.Replace("$$ModuleName$$", projectName); text = text.Replace("$$ModuleProjectGuid$$", projectGuid); - text = text.Replace("$$FileIncludes$$", itemGroup ?? ""); + text = text.Replace("$$ContentIncludes$$", contentItemGroup ?? ""); + text = text.Replace("$$CompileIncludes$$", compileItemGroup ?? ""); text = text.Replace("$$OrchardReferences$$", GetOrchardReferences()); return text; } @@ -402,7 +405,7 @@ namespace Orchard.CodeGeneration.Commands { // create new csproj for the theme if (projectGuid != null) { var itemGroup = CreateProjectItemGroup(themePath, createdFiles, createdFolders); - string projectText = CreateCsProject(themeName, projectGuid, itemGroup); + string projectText = CreateCsProject(themeName, projectGuid, itemGroup, null); File.WriteAllText(themePath + "\\" + themeName + ".csproj", projectText); } @@ -464,6 +467,23 @@ namespace Orchard.CodeGeneration.Commands { return string.Format(CultureInfo.InvariantCulture, "\r\n{0}\r\n \r\n ", contentInclude); } + private static string CreateCompileItemGroup(string relativeFromPath, HashSet compile) { + var compileInclude = ""; + if (relativeFromPath != null && !relativeFromPath.EndsWith("\\", StringComparison.OrdinalIgnoreCase)) { + relativeFromPath += "\\"; + } + else if (relativeFromPath == null) { + relativeFromPath = ""; + } + + if (compile != null && compile.Count > 0) { + compileInclude = string.Join("\r\n", + from file in compile + select " "); + } + return string.Format(CultureInfo.InvariantCulture, "\r\n{0}\r\n \r\n ", compileInclude); + } + private void AddFilesToOrchardThemesProject(TextWriter output, string itemGroup) { if (!File.Exists(_orchardThemesProj)) { output.WriteLine(T("Warning: Orchard.Themes project file could not be found at {0}", _orchardThemesProj)); diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj b/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj index 5aae5faa9..cdf31e39a 100644 --- a/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj @@ -93,7 +93,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj b/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj index d0653b952..c426b5143 100644 --- a/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj +++ b/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj @@ -99,7 +99,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj index 9ad4ccfe6..e3133ef21 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj @@ -124,7 +124,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj index f210d1d4f..b661cd517 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj @@ -181,7 +181,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj b/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj index 04858a91b..3c738d042 100644 --- a/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj +++ b/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj @@ -103,7 +103,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj b/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj index 99aeafd55..a3a7fa74c 100644 --- a/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj +++ b/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj @@ -103,7 +103,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj b/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj index 54a7c11f1..74b0a342e 100644 --- a/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj +++ b/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj @@ -81,7 +81,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj b/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj index 3db39afca..0ec9c0b5c 100644 --- a/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj +++ b/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj @@ -829,7 +829,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj b/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj index d8ebcb7be..6b0f6eae8 100644 --- a/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj +++ b/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj @@ -154,7 +154,7 @@ - + diff --git a/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj b/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj index 772800139..9d5640a46 100644 --- a/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj +++ b/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj @@ -118,7 +118,7 @@ - +