Umbraco Cloud
CMSHeartcoreDXPMarketplace
  • What is Umbraco Cloud?
  • Frequently asked questions
  • Security
    • Web Application Firewall
  • Sustainability Best Practices
  • Getting Started
    • Explore Umbraco Cloud
    • The Cloud Portal
      • Organizations
      • Sustainability Dashboard
    • Project Overview
    • Environments
    • Flexible Environments (beta)
    • Baselines
      • Baseline Merge Conflicts
      • Break Reference between Baseline and Child Project
      • Handling configuration files
      • Pushing Upgrades to a Child Project
    • Plans
    • Migrate to Umbraco Cloud
    • Repositories in a Cloud Project
    • Best Practice for Working in Teams
    • Migrate between regions
  • Set up
    • Ready to Set Up Your Project?
    • Working with a Local Clone
      • Legacy Umbraco Visual Studio Setup
    • Manage Environments
    • Project Settings
      • Managing Transport Security
      • CDN Caching and Optimizations
      • Dedicated Resources
      • Upgrade your Plan
      • Public Access
      • Managing Hostnames
        • New Certificate Authority for custom hostnames
        • Rewrite rules
        • Custom Certificates
      • Management API Security
      • Umbraco CI/CD Flow
        • Cloud API For CI/CD Flow
        • Configuring a CI/CD pipeline
          • Azure DevOps
          • GitHub Actions
        • Troubleshooting
        • Known Limitations and Considerations
      • External Services
      • Usage
        • Bandwidth
      • Availability and Performance
      • Team Members
        • Technical Contact
      • Secrets Management
      • Project History
    • Private NuGet Feed on Umbraco Cloud
    • Going Live
    • Media
    • External Login Providers
    • Azure Blob Storage
      • Connect to Azure Storage Explorer to upload files manually
      • Connect and Upload Files Programmatically to Azure Blob Storage
    • Users
    • Multi-Factor Authentication
    • Application Insights
    • Config Transforms
    • SMTP Settings
    • Payments
      • Subscription migration information and FAQ
    • Power Tools (Kudu)
      • View the Files on your Cloud Environments
      • Generate UDA files
      • Manually run Extractions on your Cloud Environments
  • Deployments
    • Deployment
    • Deploying between environments
    • Transferring Content, Media, Members, and Forms
    • Deploying Deletions
    • Deployment Webhook
    • Deploying Changes
    • Umbraco Forms on Cloud
    • Deploy Dashboard
    • Hotfixes
      • Apply hotfix by manually moving files
      • Apply hotfix by using Git
    • Restoring Content
      • Partial Restores
  • Databases
    • Keep Your Data Secure and Accessible
    • Working with databases
    • Database backups
    • Database
      • Connecting to the Database on Mac
    • Working with a Cloud database locally
  • Product Upgrades
    • Stay Up to Date with Umbraco Cloud
    • Product Upgrades
    • Major Upgrades
    • Minor Upgrades
    • Version Specific Upgrades
      • Migrate from Umbraco 8 to the latest version
      • Migrate from Umbraco 7 to Umbraco 8 on Umbraco Cloud
    • Upgrade your projects manually
      • Manual upgrade of Umbraco CMS
      • Manual upgrade of Umbraco Deploy
    • Dependencies on Umbraco Cloud
  • Troubleshooting
    • Resolve Issues Quickly and Efficiently
    • Troubleshooting FAQ
    • Log files
    • The Umbraco Backoffice
    • The Frontend
    • The Umbraco Cloud Portal
    • Site Performance checklist
    • Troubleshooting deployments
      • Extraction error: Config transforms failing
      • Extraction error: Data Type collisions
      • Dependency Exception
      • Merge Conflicts on Flexible Environments
      • Troubleshooting deployments failing with no error message
      • Troubleshooting duplicate dictionary items
      • Troubleshooting language mismatches
      • Path too long Exception
      • Schema Mismatches
      • How to resolve collision errors
      • Extraction error: "Type not found! "
    • Cloud Errors
  • Release Notes
    • Overview 2025
      • April 2025
      • March 2025
      • February 2025
      • January 2025
    • Overview 2024
      • December 2024
      • November 2024
      • October 2024
      • September 2024
      • August 2024
      • July 2024
      • May 2024
      • April 2024
      • March 2024
      • February 2024
      • January 2024
    • Overview 2023
      • December 2023
      • October 2023
      • September 2023
      • August 2023
      • June 2023
      • May 2023
      • April 2023
      • March 2023
      • February 2023
      • January 2023
    • Overview 2022
      • December 2022
      • November 2022
      • September 2022
      • August 2022
      • June 2022
      • May 2022
      • April 2022
      • March 2022
      • February 2022
      • January 2022
Powered by GitBook
On this page
  • Before you start the upgrade
  • Upgrading from a Short Term Supported (STS) version
  • Upgrading from a Long Term Supported (LTS) version
  • Version-specific upgrade notes
  • Prerequisites
  • Step 1: Enable .NET
  • Step 2: Clone down your environment
  • Step 3: Upgrade the project locally using Visual Studio
  • Step 4: Finishing the Upgrade
  • Step 5: Deploy the upgrade

Was this helpful?

Edit on GitHub
Export as PDF
  1. Product Upgrades

Major Upgrades

Follow this guide when upgrading your Cloud project to a new major version of Umbraco CMS.

PreviousProduct UpgradesNextMinor Upgrades

Last updated 28 days ago

Was this helpful?

Are you using custom packages or code on your Umbraco Cloud project?

Make sure any packages you use are compatible with the latest version of Umbraco. Additionally, confirm that your custom code works with the updated .NET version.

Breaking Changes

Be aware of any introduced in the latest version of Umbraco CMS to avoid issues during the upgrade.

Before you start the upgrade

Before upgrading your Umbraco Cloud project to the latest major version, you must consider the version your project is already on. This will impact the upgrade flow you will be following.

Upgrading from a Short Term Supported (STS) version

When upgrading from an STS version, you must start by upgrading to the closest Long-term Support (LTS) major. If the version you are upgrading to is an STS version, you can upgrade to that version, directly from the closest LTS. You can upgrade directly if there are no LTS versions between the current one and the one you are upgrading to.

Refer to the to learn which versions are STS.

Example: Upgrading from Umbraco 11 (STS) to Umbraco 15 (STS)

Start by upgrading to the closest LTS. In this case, that is Umbraco 13. After that, you can upgrade directly from Umbraco 13 to Umbraco 15.

Upgrading from a Long Term Supported (LTS) version

When upgrading from an LTS version, you must start by looking at the versions between yours and the one you are upgrading to. Is there another LTS version in that line, you need to upgrade to that version first.

Refer to the to learn which versions are LTS.

Skipping upgrades to STS versions, like 11 and 12, means you will not receive warnings about obsolete features. We recommend keeping the handy to avoid any surprises.

Example: Upgrading from Umbraco 10 (LTS) to Umbraco 15 (STS)

Between version 10 and 15, there is another LTS version: Umbraco 13. The first step is therefore to upgrade to Umbraco 13. After that, you can upgrade directly from Umbraco 13 to Umbraco 15.

Version-specific upgrade notes

Look for the "Upgrade from/to Umbraco xx" boxes. These boxes contain important information about any extra steps needed for a specific version.

Prerequisites

  • At least two environments on your Cloud project.

  • A backup of your project database.

    • Or clone down, restore the project, and back up the local database.

Step 1: Enable .NET

Before proceeding, you must determine whether the .NET framework version needs to be updated for your project. If no changes to the .NET version are required, you can skip this step and proceed with Step 2.

  1. Go to the project in the Umbraco Cloud portal.

  2. Navigate to Configuration -> Advanced.

  3. Scroll down to the Runtime Settings section.

  4. Select the appropriate .NET version from the Change .NET framework runtime for your Umbraco install dropdown for each environment in your Cloud project.

Step 2: Clone down your environment

  1. Clone down the left-most mainline environment.

  2. Log in to the backoffice.

  3. Restore content from your Cloud environment.

Step 3: Upgrade the project locally using Visual Studio

  1. Open the csproj file located in the /src/UmbracoProject folder.

    • If the .NET version was updated: Update the <TargetFramework> to match the version set in your Cloud environment.

    • If the .NET version was not updated: Skip this step.

Upgrading to Umbraco 15

The following packages are no longer needed on the Cloud platform:

  • Umbraco.Cloud.Cms.PublicAccess

  • Umbraco.Cloud.Identity.Cms

Delete the <PackageReference> entries for these packages.

  1. Go to Tools > NuGet Package Manager > Manage NuGet Packages for Solution.

  2. Navigate to the Updates tab.

  3. Select the version you are updated to and follow the instructions:

Update the following packages:

  • Umbraco.Forms.Deploy

  • Umbraco.Cms

  • Umbraco.Deploy.Cloud

  • Umbraco.Deploy.Contrib

  • Umbraco.Forms

  • Umbraco.Cloud.Cms

  • Umbraco.Cloud.StorageProviders.AzureBlob

Update the following packages:

  • Umbraco.Forms.Deploy

  • Umbraco.Cms

  • Umbraco.Deploy.Cloud

  • Umbraco.Deploy.Contrib

  • Umbraco.Forms

  • Umbraco.Cloud.Cms

  • Umbraco.Cloud.Identity.Cms

  • Umbraco.Cloud.Cms.PublicAccess

  • Umbraco.Cloud.StorageProviders.AzureBlob

  • Microsoft.Extensions.DependencyInjection.Abstractions

From Umbraco 13, the Umbraco.Deploy.Forms package has been replaced with the Umbraco.Forms.Deploy package.

  • Remove the Umbraco.Deploy.Forms package.

  • Update the following packages:

    • Umbraco.Cms

    • Umbraco.Deploy.Cloud

    • Umbraco.Deploy.Contrib

    • Umbraco.Forms

    • Umbraco.Cloud.Cms

    • Umbraco.Cloud.Identity.Cms

    • Umbraco.Cloud.Cms.PublicAccess

    • Umbraco.Cloud.StorageProviders.AzureBlob

    • Microsoft.Extensions.DependencyInjection.Abstractions

  • Install the Umbraco.Forms.Deploy package.

Update the following packages:

  • Umbraco.Deploy.Forms

  • Umbraco.Cms

  • Umbraco.Deploy.Cloud

  • Umbraco.Deploy.Contrib

  • Umbraco.Forms

  • Umbraco.Cloud.Cms

  • Umbraco.Cloud.Identity.Cms

  • Umbraco.Cloud.Cms.PublicAccess

  • Umbraco.Cloud.StorageProviders.AzureBlob

  • Microsoft.Extensions.DependencyInjection.Abstractions

Update all projects and packages in your solution to support the latest .NET.

Step 4: Finishing the Upgrade

  1. Run the project locally.

  2. Log in to the Umbraco backoffice to verify the upgrade has happened.

    • If you cannot login locally via Umbraco ID and URL shows /umbraco/authorizeupgrade?redir= then this is because of the Unattended Upgrades setting. It must be set to true and deployed to the environment before the upgrade.

  1. Ensure that the project runs locally without any errors.

Upgrading from Umbraco 13

In Umbraco 14, Smidge has been removed from the CMS.

In the _ViewImports.cshtml of your project, remove the following lines:

@addTagHelper *, Smidge
@inject Smidge.SmidgeHelper SmidgeHelper 

When upgrading from Umbraco 13, you need to be aware that UseInstallerEndpoints() no longer exists.

  1. Open the Program.cs file.

  2. Remove u.UseInstallerEndpoints() from the app.UseUmbraco() method.

Upgrading from Umbraco 9

Update the Program class in the Program.cs file to the following: using Umbraco.Cms.Web.Common.Hosting;


public class Program
    {
        public static void Main(string[] args)
            => CreateHostBuilder(args)
                .Build()
                .Run();

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureUmbracoDefaults()
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStaticWebAssets();
                    webBuilder.UseStartup<Startup>();
                });
    }

Re-enable the app settings IntelliSense by updating your schema reference in the appsettings.json file from:

"$schema": "./umbraco/config/appsettings-schema.json",

To:

"$schema": "./appsettings-schema.json",

Apply this change to the following files as well:

  • appsettings.Development.json

  • appsettings.Production.json

  • appsettings.Staging.json

Remove the following files and folders manually from your local project:

  • /wwwroot/umbraco

  • /umbraco/PartialViewMacros

  • /umbraco/UmbracoBackOffice

  • /umbraco/UmbracoInstall

  • /umbraco/UmbracoWebsite

  • /umbraco/config/lang

Remove the same files from the left-most environment. This should be done from the left-most environment through KUDU -> Debug Console -> CMD -> Site -> from both the repository and wwwroot folders.

  1. Test that everything works with the upgrade on the Cloud environment.

We highly recommend that you go through everything in your Cloud environment. This can help you identify any potential errors after the upgrade, and ensure that you are not deploying any issues onto your production environment.

Step 5: Deploy the upgrade

The next part is to deploy the upgrade through to the production environment.

For major upgrades that include content migrations, the process can be extensive. This is especially true for sites with a large amount of content. In these cases, it is recommended to:

  • Initiate a content freeze to prevent changes during the migration.

  • Rearrange your custom hostname(s) to minimize website downtime.

You can choose between two approaches based on your needs:

  • "With content freeze" - involves a more detailed upgrade process but helps reduce downtime on your live website.

  • "Without content freeze" - provides a more straightforward process that may result in longer downtime on your live website.

The following steps involve setting a content-freeze period on the project. It is recommended to coordinate this with your content editors before moving forward.

  1. Delete any environments between your left-most and production environments.

  2. Create a new environment from the production environment - call it Staging.

  3. Initiate content-freeze.

  4. Import content using either of the following approaches:

  5. Deploy the upgrade from the left-most environment.

  6. Verify and test all functionality on the upgraded environment.

  7. Ensure the hostname(s) no longer point to the production environment.

  8. Deploy the upgrade to the production environment.

    1. In case the upgrade is taking longer than expected, restore a backup of the Staging database on the production environment.

  9. Cancel content-freeze.

  10. Verify and test all functionality in the production environment.

  11. Ensure the hostname(s) no longer point to the Staging environment.

  1. Deploy the upgrade to the next environment.

  2. Verify and test all functionality on the upgraded environment.

  3. Deploy the upgrade to the production environment.

    1. In case the upgrade is taking longer than expected, restore a backup of the database on the production environment.

  4. Verify and test all functionality in the production environment.

Follow the requirements for .

An Umbraco Cloud project running

The latest . is installed locally.

Directly from your environment. See the article,

Refer to the section to identify whether a .NET version update is necessary for your upgrade.

Build and run the .

Determine if you need to update the .NET version based on the changes made in :

Ensure the feature is enabled.

Push the changes to the Cloud environment. See the article.

directly from the backoffice.

Use the functionality in the Cloud Portal.

from the production environment.

to the new environment (Staging).

from the Staging environment.

to the production environment.

Breaking changes
Long-term support and EOL article
Long-term support and EOL article
Breaking Changes documentation
local development
the latest version of your current Umbraco CMS installation
NET version
Database backups
Choose the correct .NET version
Unattended Upgrades
Deploying from local to your environments
Restore content and media
Database Backup and Restore
Remove your custom hostname(s)
Add the custom hostname(s)
Remove your custom hostname(s)
Add the custom hostname(s)
Step 1
project locally
Runtime settings
Click on the Umbraco logo in the Umbraco backoffice to confirm the version number.