---
title: Upgrading Kentico manually
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

> **Note:** **Note**: We strongly recommend using the automatic upgrade described in [Upgrading to Kentico 10](https://docs.kentico.com/k10/installation/upgrading-to-kentico-10.md).

If you cannot directly access the environment hosting your Kentico instance, you can perform the upgrade from version 9 to 10 manually.

Before you start the manual upgrade, [install the upgrade](https://docs.kentico.com/k10/installation/upgrading-to-kentico-10.md#installing-the-upgrade-procedure) and go through the required [Steps before the upgrade](https://docs.kentico.com/k10/installation/upgrading-to-kentico-10.md#steps-before-you-start-the-upgrade).

## Step 1 - Backup

Back up your Kentico web project files and database. We recommend that you:

1. Make a copy of the Kentico project.
2. Upgrade the project locally.
3. Deploy the project to the production environment once the upgrade is complete.

> **Note:** **Important**: If you do not create a backup, your project may get corrupted without a way to reverse the changes.

## Step 2 - Site shutdown

Your site must be offline during the upgrade process. Copy **App\_offline.htm** (available in the upgrade installation folder) into the root of your web project or use another approach to take your site offline.

## Step 3 - Database upgrade

1. Launch **Microsoft SQL Server Management Studio**.
2. Connect to the Kentico database that you wish to upgrade.
3. Open the upgrade installation directory and expand the **SQL** folder:
   - If you have a standard Kentico database, run the _**upgrade.sql**_ script.
   - If your project uses a [separated on-line marketing database](https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/separating-the-contact-management-database.md), expand the **Separation** subfolder and run the scripts _in the following order_:
     1. _**separated.sql**_ (against the separated on-line marketing database)
     2. _**default.sql**_ (against your main Kentico database)

If you encounter any errors, please send them to [Kentico support](mailto:support@kentico.com) (include the error log in the message).

> **Info:** **Important**
>
> Kentico uses database objects with the **dbo** schema. If your database uses a different or no schema, you need to modify the schema occurrences in the script accordingly.
>
> Please check whether the upgrade script is running against the correct database. Many upgrade problems are caused by launching the SQL script on a non-Kentico database.

## Step 4 - Creating the upgrade file structure

Launch the Kentico Upgrade Utility from the command line with the **/deploy** parameter. Set the parameter’s value according to the project type that you wish to upgrade:

- **net45site** - web site using .NET version 4.5
- **net45app** - web application using .NET version 4.5

You can also add the optional **/path** parameter, which sets the target location for the upgrade file structure. This way you do not need to provide the path in the first step of the update process. The **/path** parameter value can be supplied in two different formats – **relative**, which represents a folder in the location from which the utility is executed; or **absolute**, which can be any path to a local disk.

**Example**: _Upgrade.exe /deploy=net45site /path=Deploy_\
Launches the upgrade utility, which creates a folder named _Deploy_ in the upgrade installation directory, and copies all files and folders necessary for upgrading to a .NET 4.5 web site project.

If you have removed some of the default modules from your Kentico 9 installation, you can use the following process to remove the given modules from the upgrade files:

1. Open the **CMS** folder in the upgrade files.
2. Rename _web.config.new_ to _web.config_.
3. Download the [Kentico 10 Installer](http://download.kentico.com/Kentico_10_0.exe).
4. Run **Kentico\_10\_0.exe**.
5. Click **Next** on the installer welcome screen.
6. Select your country from the drop-down list and agree to the license agreement.
7. Click **Next** and then **Custom installation**.
8. Select **Install only program files** and click **Install**.
9. Navigate to the Kentico setup files _(C:\Program Files\Kentico\10.0_ by default).
10. Run **Bin\KenticoInstaller.exe**.
11. Select your country, accept the license agreement, and click **Next**.
12. Click **Modify**.
13. Click **Select another** and choose the folder containing the upgrade files.
14. Remove the required modules and click **Apply Changes**.
15. In the **CMS** folder of the upgrade files, add the _new_ extension back to the name of the web.config file (_web.config.new_).

## Step 5 - Project file upgrade

1. Copy all customized and custom files from your Kentico 9 project to a backup directory.
2. Open **upgrade**.**xml** in the upgrade installation directory and delete all of the listed files from your web project (you can prepare a batch file to automate the process).
3. Copy the content of the upgrade file folder (created in step 4) into the root of your web project folder. Overwrite all files.

If you have customized any of the default files or have added custom files to the project, you need to compare your backup project with the upgraded project, and manually transfer the customizations.

If your solution contained custom projects, open the new Kentico solution in Visual Studio and add the projects. You also need to manually update the required references for both the custom and Kentico projects.

> **Note:** **CMSApp\_AppCode project**
>
> Kentico 10 web application installations no longer contain the **CMSApp\_AppCode** project by default (it is considered a custom project after the upgrade). If you have not added custom files into the _CMSApp\_AppCode_ project, delete the **CMSApp\_AppCode.csproj** file from the **CMS** folder.
>
> For more information, see [Customizations in the CMSApp\_AppCode project](https://docs.kentico.com/k10/installation/upgrading-to-kentico-10.md#customizations-in-the-cmsapp_appcode-project) in the main upgrade instructions (Steps after performing the upgrade section).

If your project is a web application, **rebuild** the Kentico solution in Visual Studio. You may need to [upgrade your custom code](https://docs.kentico.com/k10/installation/upgrading-to-kentico-10/upgrading-custom-code.md) to successfully rebuild the solution.

## Step 6 - Web.config upgrade

The upgrade files contain the **web.config.new** file, which is the default web.config used by the upgraded version. You need to copy the **connection string** from your original web.config and then replace it with the new one.

If your original web.config contains any custom configuration, you need to manually transfer the changes to the new web.config.

## Step 7 - Finishing and starting the site

To bring your site back on-line, remove or rename the _App\_Offline.htm_ file from the **CMS** folder after finishing the upgrade procedure.

Continue with the [Steps after the upgrade](https://docs.kentico.com/k10/installation/upgrading-to-kentico-10.md#steps-after-performing-the-upgrade).
