---
title: Manually setting up ASP.NET Core projects
related:
  - https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/starting-with-asp-net-core-development.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).

If you already have an existing Xperience administration instance and do not wish to add new projects using the installer, you can set up a new ASP.NET Core site via the following process:

1. [Set up a new site in the Xperience administration](#setting-up-a-new-site-in-the-xperience-administration-interface)
2. [Create and configure a new live site ASP.NET Core project](#creating-a-new-asp.net-core-live-site-project)

This process mimics steps the installer performs in the background when installing new ASP.NET Core projects.

## Setting up a new site in the Xperience administration interface

Install a new Xperience administration instance or use an existing one.

1. Open the Xperience administration interface.
2. Navigate to the **Sites** application.
3. Click **New site**.
4. Continue with the remaining [steps of the wizard](https://docs.kentico.com/13/configuring-xperience/managing-sites/creating-new-sites.md) and finish creating the new site.
5. Edit your new site and make sure the **Presentation URL** on the **General** tab is set correctly. This is the URL that will be used for the site presented by your ASP.NET Core application. For example,  _http://localhost/CoreApplication_  or  _http://www.SiteDomain.com_.
6. Click **Save**.

Next, you need to set up the synchronization mechanism:

1. Open the **Settings** application.
2. Navigate to **Versioning** **& Synchronization** -> **Web farm**.
3. Set the **Web farm mode** to **Automatic**.
4. Click **Save**.

At this point the new site and your Xperience instance are set up to be used with an ASP.NET Core application.

## Creating a new ASP.NET Core live site project

1. Open Visual Studio and create a new project.
2. Select **ASP.NET Core Web App**.

   > **Note:** **Application templates**
   >
   > The default application template for ASP.NET Core Web Apps in .NET 6 and later is based on [minimal APIs](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis). See [Hosting ASP.NET Core applications using minimal APIs](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/starting-with-asp-net-core-development/hosting-asp-net-core-applications-using-minimal-apis.md) to learn how to set up the application pipeline using the minimal APIs approach.

   - Enter a name for the project and click **Create**.
3. Select a template and click **Create**.
4. Open the NuGet package manager and install the **Kentico.Xperience.AspNetCore.WebApp** (with all dependencies).
5. Open the application's settings file and:

   - Add a connection string to your Xperience database. We recommend copying the exact connection string from the _web.config_ file of the related Xperience administration project.

     ```xml

     "ConnectionStrings": {
             "CMSConnectionString": "Persist Security Info=False;database=Xperience;server=myserver;user id=username;password=mypassword;Current Language=English;Connection Timeout=120;"
         }

     ```
   - Copy the value of the **CMSHashStringSalt**  _appSettings_ key from the _web.config_ of the Xperience project. This ensures that the Core application generates hashes using the same salt value as the Xperience application (for example for [macro signatures](https://docs.kentico.com/13/macro-expressions/troubleshooting-macros/working-with-macro-signatures.md) or page preview links).

     ```xml

     "CMSHashStringSalt": "e68b9ad6-a461-4707-8e3e-ece73f03dd02"

     ```
6. In the application's startup class, [add service classes and middleware](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/starting-with-asp-net-core-development.md#configuring-application-startup) required by the Xperience integration.
7. (Optional) Enable additional [Xperience features](https://docs.kentico.com/13/developing-websites/developing-xperience-applications-using-asp-net-core/starting-with-asp-net-core-development/enabling-xperience-features-in-asp-net-core-applications.md) you wish to use in your project.
8. Configure hosting for the application. This step depends on your environment and requirements. If you are unsure, refer to the [Microsoft documentation](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/) for help in choosing a suitable hosting model.

The ASP.NET Core web application is now connected to the Xperience administration application. If you run the Core site, the Xperience application registers the connected projected as a new web farm server. You can see it in the **Web Farms** application in the [Xperience administration interface](https://docs.kentico.com/13/using-the-xperience-interface.md).
