diff --git a/src/Umbraco.Core/IO/ShadowWrapper.cs b/src/Umbraco.Core/IO/ShadowWrapper.cs index 0005603f3f..ef113a02c2 100644 --- a/src/Umbraco.Core/IO/ShadowWrapper.cs +++ b/src/Umbraco.Core/IO/ShadowWrapper.cs @@ -52,9 +52,20 @@ namespace Umbraco.Core.IO try { Directory.Delete(dir, true); - dir = dir.Substring(0, dir.Length - _shadowPath.Length - 1); - if (Directory.EnumerateFileSystemEntries(dir).Any() == false) - Directory.Delete(dir, true); + + // shadowPath make be path/to/dir, remove each + dir = dir.Replace("/", "\\"); + var min = IOHelper.MapPath("~/App_Data/TEMP/ShadowFs").Length; + var pos = dir.LastIndexOf("\\", StringComparison.OrdinalIgnoreCase); + while (pos > min) + { + dir = dir.Substring(0, pos); + if (Directory.EnumerateFileSystemEntries(dir).Any() == false) + Directory.Delete(dir, true); + else + break; + pos = dir.LastIndexOf("\\", StringComparison.OrdinalIgnoreCase); + } } catch { diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/NormalizeTemplateGuids.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/NormalizeTemplateGuids.cs index 3a2e398665..f9f0d0efbb 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/NormalizeTemplateGuids.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSixZero/NormalizeTemplateGuids.cs @@ -30,8 +30,10 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenSixZero var version = database.FirstOrDefault("SELECT version FROM umbracoMigration WHERE name=@name ORDER BY version DESC", new { name = Constants.System.UmbracoMigrationName }); if (version != null && version.StartsWith("7.6.0")) return string.Empty; - var updates = database.Query("SELECT id, text FROM umbracoNode WHERE nodeObjectType = @guid", new { guid = Constants.ObjectTypes.TemplateTypeGuid}) - .Select(template => Tuple.Create((int) template.id, ("template____" + (string) template.text).ToGuid())) + var updates = database.Query(@"SELECT umbracoNode.id, cmsTemplate.alias FROM umbracoNode +JOIN cmsTemplate ON umbracoNode.id=cmsTemplate.nodeId +WHERE nodeObjectType = @guid", new { guid = Constants.ObjectTypes.TemplateTypeGuid}) + .Select(template => Tuple.Create((int) template.id, ("template____" + (string) template.alias).ToGuid())) .ToList(); foreach (var update in updates)