diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/RemoveCachedRecycleMediaXml.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/RemoveCachedRecycleMediaXml.cs
deleted file mode 100644
index d0945db957..0000000000
--- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/RemoveCachedRecycleMediaXml.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Umbraco.Core.Configuration;
-using Umbraco.Core.Services;
-
-namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSixTwoZero
-{
- ///
- /// Due to this bug: http://issues.umbraco.org/issue/U4-3820 we need to remove the cached media
- /// xml found in the cmsContentXml table for any media that has been recycled.
- ///
- [Migration("6.2.0", 1, GlobalSettings.UmbracoMigrationName)]
- public class RemoveCachedRecycleMediaXml : MigrationBase
- {
- public override void Up()
- {
- //now that the controlId column is renamed and now a string we need to convert
- if (Context == null || Context.Database == null) return;
-
- Execute.Code(database =>
- {
- var mediasvc = (MediaService)ApplicationContext.Current.Services.MediaService;
- mediasvc.RebuildXmlStructures();
-
- return string.Empty;
- });
- }
-
- public override void Down()
- {
- }
- }
-}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index d9ff8081c2..021ae04633 100644
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -189,7 +189,6 @@
-
diff --git a/src/Umbraco.Web/Strategies/Migrations/RebuildMediaXmlCacheAfterUpgrade.cs b/src/Umbraco.Web/Strategies/Migrations/RebuildMediaXmlCacheAfterUpgrade.cs
new file mode 100644
index 0000000000..72cf6c24ea
--- /dev/null
+++ b/src/Umbraco.Web/Strategies/Migrations/RebuildMediaXmlCacheAfterUpgrade.cs
@@ -0,0 +1,38 @@
+using System;
+using Umbraco.Core;
+using Umbraco.Core.Persistence.Migrations;
+using Umbraco.Core.Services;
+using umbraco.interfaces;
+
+namespace Umbraco.Web.Strategies.Migrations
+{
+ ///
+ /// This will execute after upgrading to rebuild the xml cache
+ ///
+ ///
+ /// This cannot execute as part of a db migration since we need access to the services/repos.
+ ///
+ /// This will execute for specific versions -
+ ///
+ /// * If current is less than or equal to 7.0.0
+ ///
+ public class RebuildMediaXmlCacheAfterUpgrade : IApplicationStartupHandler
+ {
+ public RebuildMediaXmlCacheAfterUpgrade()
+ {
+ MigrationRunner.Migrated += MigrationRunner_Migrated;
+ }
+
+ void MigrationRunner_Migrated(MigrationRunner sender, Core.Events.MigrationEventArgs e)
+ {
+ var target70 = new Version(7, 0, 0);
+
+ if (e.ConfiguredVersion <= target70)
+ {
+ var mediasvc = (MediaService)ApplicationContext.Current.Services.MediaService;
+ mediasvc.RebuildXmlStructures();
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj
index c9a8e14740..42379fb990 100644
--- a/src/Umbraco.Web/Umbraco.Web.csproj
+++ b/src/Umbraco.Web/Umbraco.Web.csproj
@@ -389,6 +389,7 @@
+