---
title: Install Optimizely (ASP.NET Core)
slug: cms-12/docs/installing-optimizely-net-5
docTags: 
createdAt: 2026-08-10T15:56:00.000Z
---

## Before you install

Before installing, see the [system requirements for Optimizely](docId\:Oe6v1ocXKbt40QjLVGoej) to ensure your installation environment has the required components and versions.

You can install Optimizely products individually, with or without sample templates, to explore each product and its components or build a site from scratch with more control.

:::hint{type="info"}
**Note**
You can order a time-limited demo license for evaluation purposes. See [Optimizely License Center](https://license.optimizely.com/) (a license is not required when using IIS Express). You need a commercial Optimizely license for testing and production environments.
:::

### Install templates

To start an Optimizely Content Management System (CMS) or Optimizely Commerce Connect application, install the following templates:

`dotnet new -i EPiServer.Templates`

:::hint{type="info"}
**Note**
Each template contains a README file with instructions. If you find any issues or want to contribute to a template, see [content-templates on GitHub](https://github.com/episerver/content-templates). See also [dotnet new](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new).
:::

The templates contain a `nuget.config` [file with the Optimizely NuGet feed](https://api.nuget.optimizely.com/v3/index.json) containing Optimizely packages. The file is a map of available services and their corresponding endpoints to know where to send different types of requests (like searching for packages, publishing packages, and so on) when interacting with the Optimizely NuGet package repository. See also [NuGet package families in CMS](docId\:YvsRasEJhI6Layah3fgZT).

```json
{
  "version": "3.0.0",
  "resources": [
    {
      "@id": "https://api.nuget.optimizely.com/api/v2/package",
      "@type": "PackagePublish/2.0.0"
    },
    {
      "@id": "https://api.nuget.optimizely.com/api/v2/symbol",
      "@type": "SymbolPackagePublish/4.9.0"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/search",
      "@type": "SearchQueryService"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/search",
      "@type": "SearchQueryService/3.0.0-beta"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/search",
      "@type": "SearchQueryService/3.0.0-rc"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/registration",
      "@type": "RegistrationsBaseUrl"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/registration",
      "@type": "RegistrationsBaseUrl/3.0.0-rc"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/registration",
      "@type": "RegistrationsBaseUrl/3.0.0-beta"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/package",
      "@type": "PackageBaseAddress/3.0.0"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/autocomplete",
      "@type": "SearchAutocompleteService"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/autocomplete",
      "@type": "SearchAutocompleteService/3.0.0-rc"
    },
    {
      "@id": "https://api.nuget.optimizely.com/v3/autocomplete",
      "@type": "SearchAutocompleteService/3.0.0-beta"
    }
  ]
}
```

- **version** – This indicates the version of the service index document, which in this case is "3.0.0".
- **resources** – This is an array of objects, each specifying a different service endpoint. Each object contains:
  - **@id** – The URL endpoint for the service.
  - **@type** – The type of service provided by the endpoint. This describes what kind of operations can be performed at that URL. Examples include:
    - **PackagePublish/2.0.0** – Endpoint for publishing packages.
    - **SymbolPackagePublish/4.9.0** – Endpoint for publishing symbol packages.
    - **SearchQueryService** – Endpoint for querying search services.
    - **RegistrationsBaseUrl** – Base URL for accessing package registration information.
    - **PackageBaseAddress/3.0.0** – Base address for accessing package content.
    - **SearchAutocompleteService** – Endpoint for providing search autocomplete suggestions.

### Install templates with Visual Studio

If you use Visual Studio, you must specify a previous version when installing the templates. The latest version of the templates uses ASP.NET.

`dotnet new -i Episerver.Templates::1.1.0`

:::hint{type="info"}
**Note**
At the time of this writing, Visual Studio 2022 is the current version. Optimizely aims to support new Visual Studio versions as soon as possible after they are released.
:::

### Install the Command-line Interface

The Optimizely Command-line Interface (CLI) tool is optional but makes creating or updating databases easy.

`dotnet tool install EPiServer.Net.Cli --global --add-source`
` https://nuget.optimizely.com/feed/packages.svc`

Example commands:

```shell
dotnet-episerver create-cms-database <project>
dotnet-episerver create-commerce-database <project>
dotnet-episerver update-database <project>

dotnet new epi-alloy-mvc --name alloy-docker  --output ./alloy-docker --enable-docker
dotnet new epi-alloy-mvc --help
```

## Install an empty CMS site

`dotnet new epi-cms-empty`

## Install a CMS sample site with Alloy templates

`dotnet new epi-alloy-mvc`

The following command has additional options that set the project name, and the output folder, and enable Docker (include files required to run under Docker):

`dotnet new epi-alloy-mvc --name alloy-docker  --output ./alloy-docker --enable-docker`

You can also use the help option to get details about additional options.

`dotnet new epi-alloy-mvc --help`

## Install an empty Optimizely Commerce Connect site

`dotnet new epi-commerce-empty`

## Installation order for apps (add-ons)

See [Optimizely apps and integrations](https://world.optimizely.com/resources/net/add-ons/#) and [Apps (add-ons) platform compatibility](docId\:qlMSwdEfyS4CJlGWdudqk) for available apps and compatibility. See [Install CMS apps (add-ons)](docId\:aH9E67liyef-noEdMpmIM) for installation instructions.

- If you install apps on a **new** CMS site together with the new project, do the installation in the following order:
  1. Install an empty CMS site.
  2. Install apps (Forms, A/B testing, and so on).
- If you install apps to an **existing** CMS site with the Alloy templates, do the installation in the following order:
  1. Install apps (Forms, A/B testing, and so on).
  2. Rebuild the project.
