---
title: Deployment mode for administration virtual objects
related:
  - https://docs.kentico.com/13/custom-development/extending-the-administration-interface/preparing-your-environment-for-team-development/editing-object-code-externally.md
  - https://docs.kentico.com/13/deploying-websites/deploying-sites-to-a-live-server/precompiling-websites.md
---

> 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).

The Xperience administration application provides a way to store virtual objects in the file system in addition to the database. This can be useful if you need to prepare your project for [deployment](https://docs.kentico.com/13/deploying-websites/deploying-sites-to-a-live-server/precompiling-websites.md), or if you want to manage the code of objects [using a source control system](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/preparing-your-environment-for-team-development/editing-object-code-externally.md).

Virtual objects that require compilation include the following:

- Alternative form layouts (ASCX type)
- [Page layouts](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/developing-the-administration-using-portal-engine/editing-page-layouts.md) (ASCX type)
- [Web part layouts](https://docs.kentico.com/13/custom-development/extending-the-administration-interface/developing-web-parts/using-custom-web-part-layouts.md)

To deploy the administration project to another server:

1. Open the **System** application.
2. Select the **Virtual objects** tab.
3. Click **Store all virtual objects in file system**.
   - The system saves all virtual objects (alternative form layouts, page layouts, and web part layouts) on your disk.
   - The target folder is _\~/CMSVirtualFiles_.
4. In Visual Studio, manually include the _CMSVirtualFiles_ folder into the _CMSApp_ project:
   1. Click **Show all files** at the top of the Solution Explorer.
   2. Right-click the **CMSVirtualFiles** folder and select **Include in Project**.
   3. Rebuild the **CMSApp** project.
5. Publish (and compile) the files. See [Precompiling websites](https://docs.kentico.com/13/deploying-websites/deploying-sites-to-a-live-server/precompiling-websites.md) for more information.

   - At this time, you can still edit the code of objects in the Xperience user interface, but any changes will require you to compile the files again.

When deployment mode is **OFF**:

- The storage location of the virtual objects depends on the settings of the **Source control** options.

When deployment mode is **ON**:

- All objects that require compilation are moved into the file system on the local disk. The target folder is _\~/CMSVirtualFiles_.
- You can edit the code of objects in the user interface. Changes are saved into the files immediately.
- You can edit the object files in Visual Studio or another external editor.
- To move objects back into the database, click **Store all virtual objects in database** (deletes the files on the disk).
- You can configure the **Source control** options for objects that do not require compilation.

![Enabling deployment mode](https://docs.kentico.com/docsassets/13/deployment-mode-for-administration-virtual-objects/Deployment_Mode.png "Enabling deployment mode")

> **Note:** **Limitations**
>
> - Do not [apply hotfixes](https://docs.kentico.com/13/external-utilities/kentico-xperience-hotfix-and-upgrade-utility/upgrading-and-hotfixing-an-instance.md) while deployment mode is on. Disable deployment mode before you start the hotfix procedure, and re-enable it once the hotfix is applied.
> - The [Staging](https://docs.kentico.com/13/deploying-websites/content-staging.md) feature has limited support for synchronizing object code when using deployment mode:
>   - On _source_ servers, staging tasks are generated only if you edit code in the Xperience UI or after you synchronize changes from files into the database.
>   - On _target_ servers, deployment mode must be **off** if you wish to use incoming staging tasks to update object code.

> **Info:** **Error when disabling deployment mode**
>
> When disabling deployment mode (returning virtual files to the database), you may encounter the _**"The directory is not empty."**_ error. This occurs if the web application is currently using some of the virtual files, and cannot delete the content of the _CMSVirtualFiles_ folder as a result.
>
> The error does not affect the functionality of virtual files – the system correctly disables deployment mode and all virtual file data is returned to the database. The only consequence is that the _CMSVirtualFiles_ folder and some of its content remain on your file system. You can try deleting the folder manually at a later point.
