# Installing Telerik UI for ASP.NET Core with NuGet

This article describes how to configure your system for the Telerik NuGet source and then use it to install Telerik UI for ASP.NET Core in your project.

[NuGet](https://www.nuget.org/) is a popular .NET package manager. Telerik maintains a private NuGet feed with official Telerik UI for ASP.NET Core releases and service packs. In the Telerik NuGet feed, you will see packages that your account has a license for; trials (active) and commercial (active and expired).

> tip Looking for a complete tutorial? Check out the [Quick Start guide](https://www.telerik.com/aspnet-core-ui/documentation/getting-started-core/first-steps) to add Telerik UI to the project.

## Generate a NuGet API Key

As the Telerik NuGet server requires authentication, the first step is to obtain an API key that you will use instead of a password. Using an API key instead of a password is a more secure approach, especially when working with the .NET CLI or a `NuGet.Config` file.

1. Go to the [API Keys](https://www.telerik.com/account/downloads/api-keys) page in your Telerik account.
2. Click **Generate New Key +**.
3. In the **Key Note** field, add a note that describes the API key.
4. Click **Generate Key**.
5. Select **Copy and Close**. Once you close the window, you can no longer copy the generated key. For security reasons, the **API Keys** page displays only a portion of the key.
6. Store the generated NuGet API key as you will need it in the next steps. Whenever you need to authenticate your system with the Telerik NuGet server, use `api-key` as the username and your generated API key as the password.

> API keys expire after two years. Telerik will send you an email when a key is about to expire, but we recommend that you set your own calendar reminder with information about where you used that key: file paths, project links, AzDO and GitHub Action variable names, and so on.

## Set Up the Telerik NuGet Feed

The Telerik NuGet feed allows you instant access to various Telerik and Kendo packages that you can install in your project. You can access either the latest or older versions of the suites.

Before you can use the Telerik NuGet feed as a **Package source**, you must configure your machine by utilizing any of the following methods:

* [Use the NuGet Package Manager in Visual Studio](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#setup-with-the-nuget-package-manager)

* [Use the .NET CLI](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#setup-with-net-cli)

* [Edit the `NuGet.Config` file](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#setup-with-nugetconfig)

* [Use the Progress Control Panel application](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#setup-with-the-progress-control-panel-application)

Regardless of how you set up the Telerik NuGet feed, you must first [generate a NuGet API key](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#generate-a-nuget-api-key) needed for the authentication.

> warning Never hard-code your Telerik NuGet API keys in a `NuGet.Config` file in a GitHub repository, Docker image, or any location that may be accessed by unauthorized parties. An API key is valuable and bad actors can use it to access the NuGet packages that are licensed under your account. A credentials abuse can lead to a review of the affected Telerik account.

### Setup with the NuGet Package Manager

Refer to the [Microsoft documentation about using packages in Visual Studio](https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-visual-studio), or follow the steps below for Visual Studio on Windows.

1. Open Visual Studio.

2. Go to **Tools > NuGet Package Manager > Package Manager Settings**, select **Package Manager Sources**, and then click the **+** button.

3. Enter a **Name** for the Telerik NuGet feed, for example, `telerik.com`.

4. In the **Source** field, enter `https://nuget.telerik.com/v3/index.json` and click **OK**.

   ![UI for ASP.NET Core Add NuGet source](https://www.telerik.com/aspnet-core-ui/documentation/assets/8c107ed476ce7a77ff02b873c2e08eaf/add-nuget-source.png)

You have successfully added the Telerik NuGet feed as a Package source.

The next steps describe how to authenticate your local NuGet instance and display the available packages:

1. Create a new project or open an existing project.

2. Right-click the solution in the **Solution Explorer** window.

3. Select **Manage NuGet Packages for Solution...**

   ![UI for ASP.NET Core Locating and opening the NuGet package manager menu](https://www.telerik.com/aspnet-core-ui/documentation/assets/a1183701572b020198b77c6510b65e2b/manage-nuget.png)

4. Select the Telerik NuGet **Package source** from the drop-down list.

5. Click on the **Browse** tab to see the available packages.

6. In the Windows authentication prompt:

   6.1. Enter `api-key` in the **User Name** field.

   6.2. Enter your [NuGet API key](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#generate-a-nuget-api-key) in the **Password** field.

   6.3. Check the **Remember My Password** checkbox.

7. In the Visual Studio Package Manager, you will see all packages that are licensed to your user account.

> If you experience issues, see the [NuGet Feed Troubleshooting](https://www.telerik.com/aspnet-core-ui/documentation/troubleshoot/troubleshooting-nuget) article.

### Setup with .NET CLI

To add the Telerik NuGet package source with the .NET CLI, use the [`dotnet nuget add source`](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-add-source) command. The command shown below creates or updates a `NuGet.Config` file for you, so you do not have to [edit it manually](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#setup-with-nugetconfig):

* The command adds the Telerik NuGet source, uses your [NuGet API key](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#generate-a-nuget-api-key) for authentication, and stores the API key in plain text in the [global config file](https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior#config-file-locations-and-uses).
* The backslashes `\` enable multi-line commands for better readability in terminals that support them.

> caption Use the .NET CLI to add the Telerik NuGet source

```SH
dotnet nuget add source https://nuget.telerik.com/v3/index.json \
--name TelerikOnlineFeed \
--username api-key \
--password <YOUR-NUGET-API-KEY> \
--store-password-in-clear-text
```

If you have already stored the Telerik package source, you can update the configuration with the command below.

> caption Use the .NET CLI to update the Telerik NuGet source

```SH
dotnet nuget update source "TelerikOnlineFeed" \
--source "https://nuget.telerik.com/v3/index.json" \
--username api-key \
--password <YOUR-NUGET-API-KEY> \
--store-password-in-clear-text
```

### Setup with NuGet.Config

NuGet package sources and other settings are stored in a `NuGet.Config` file. You can read more about the file structure in the Microsoft article [NuGet.Config Reference](https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file).

Ensure you are familiar with how such configurations work. Refer to [Common NuGet Configurations](https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior) for details about the possible file locations and how multiple `NuGet.Config` files work.

To edit a `NuGet.Config` file and add the Telerik feed, you need to:

1. Ensure you are editing the [correct and desired config file](https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior#config-file-locations-and-uses). You can also create a new one with the [`dotnet new nugetconfig` command](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new).

2. Add the Telerik package source to the config file. For the authentication, use your [NuGet API key](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#generate-a-nuget-api-key) as a password and `api-key` as a username. Add the API key in plain text, because the NuGet tooling does not fully support encrypted credentials. Here is an example of how your `NuGet.Config` file can look like:

```XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
    
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="TelerikOnlineFeed" value="https://nuget.telerik.com/v3/index.json" />
    </packageSources>
    <packageSourceCredentials>
    <TelerikOnlineFeed>
        <add key="Username" value="api-key" />
        <add key="ClearTextPassword" value="YOUR-NUGET-API-KEY" />
    </TelerikOnlineFeed>
    </packageSourceCredentials>
</configuration>
```

### Setup with the Progress Control Panel Application

You can use the <a href="https://www.telerik.com/try/control-panel" target="_blank">Progress Control Panel application</a> to configure the Telerik NuGet. The Control Panel has an option that you can select, and it will configure the Visual Studio Package Manager to use the Telerik NuGet feed.

## Install Telerik NuGet Packages

After setting up the Telerik NuGet package source, install the [packages](https://www.telerik.com/aspnet-core-ui/documentation/installation/installation-options/nuget-install#list-of-provided-packages) either through the [Package Manager Dialog](https://docs.nuget.org/consume/package-manager-dialog) or the [Package Manager Console](http://docs.nuget.org/Consume/Package-Manager-Console).

The NuGet packages enable you to use Telerik UI Tag Helpers and HTML Helpers in your application. To ensure proper component rendering, you must also include the necessary [client-side resources](https://www.telerik.com/aspnet-core-ui/documentation/installation/adding-client-side-resources/getting-started-copy-client-resources).

To install a particular Telerik UI for ASP.NET Core version:

1. Choose the desired package from the [NuGet package manager](https://docs.nuget.org/consume/package-manager-dialog).
2. In the right panel, pick a **Version** from the dropdown menu.

   ![UI for ASP.NET Core Installing a specified package version](https://www.telerik.com/aspnet-core-ui/documentation/assets/9b2efd49cfb0394e908644d427863be4/core-install-package-version.png)

> tip To check the status of the Progress Live Services, like Telerik NuGet, Kendo UI CDN, Kendo UI Dojo playground and others, visit the [Progress<sup>®</sup> Telerik<sup>®</sup> Live Services Status Page](http://status.telerik.com/).

## List of Provided Packages

Some of the UI for ASP.NET Core NuGet packages are provided through the Telerik NuGet feed. Others are publicly available through the default NuGet package source `nuget.org`.

### Telerik Packages Available on the Telerik NuGet Feed

The Telerik NuGet feed provides the following packages related to UI for ASP.NET Core:

* `Telerik.UI.for.AspNet.Core`—Telerik UI for ASP.NET Core Commercial.

### Telerik Packages Available on nuget.org

The following three packages are not provided by the Telerik NuGet feed. They are available through the default NuGet package source `nuget.org`:

* [`Telerik.Licensing`](https://www.nuget.org/packages/Telerik.Licensing)—Verifies the licensing status of the developer during app build. Requires a [license key](https://www.telerik.com/aspnet-core-ui/documentation/installation/activating-your-license/setting-up-your-license). Available on `nuget.org`.
* [`Telerik.SvgIcons`](https://www.nuget.org/packages/Telerik.SvgIcons)—Contains all Telerik SVG icons. Available on `nuget.org`.
* [`Telerik.FontIcons`](https://www.nuget.org/packages/Telerik.FontIcons)—Contains all Telerik font icons. Available on `nuget.org`.

To [use a local NuGet feed](https://learn.microsoft.com/en-us/nuget/hosting-packages/local-feeds), download the packages from:

* [Telerik.Licensing](https://www.nuget.org/packages/Telerik.Licensing)
* [Telerik.SvgIcons](https://www.nuget.org/packages/Telerik.SvgIcons)
* [Telerik.FontIcons](https://www.nuget.org/packages/Telerik.FontIcons)

## Troubleshooting

If you experience any issues while configuring or using the Telerik NuGet feed, refer to the [NuGet Troubleshooting](https://www.telerik.com/aspnet-core-ui/documentation/troubleshoot/troubleshooting-nuget) article.

## Next Steps

Once you have the Telerik NuGet source set up, follow the instructions to [create a Telerik UI for ASP.NET Core app](https://www.telerik.com/aspnet-core-ui/documentation/getting-started-core/first-steps).

## Further Reading

You may find useful the following Microsoft articles on securing your NuGet feed setup and supply chain as general best practices:

* <a href="https://devblogs.microsoft.com/nuget/lock-down-your-dependencies-using-configurable-trust-policies/" target="_blank">Lock down your dependencies using configurable trust policies - Blog Post</a>
* <a href="https://devblogs.microsoft.com/nuget/how-to-scan-nuget-packages-for-security-vulnerabilities/" target="_blank">How to Scan NuGet Packages for Security Vulnerabilities - Blog Post</a>
* <a href="https://docs.microsoft.com/en-us/nuget/concepts/security-best-practices" target="_blank">Best practices for a secure software supply chain - MSDN docs</a>

Telerik provides signed NuGet packages that you can verify.

## See Also

* [Including Client-Side Resources](https://www.telerik.com/aspnet-core-ui/documentation/installation/adding-client-side-resources/getting-started-copy-client-resources)

* [Adding Kendo UI Client-Side Resources by Using the CDN Services](https://www.telerik.com/aspnet-core-ui/documentation/installation/adding-client-side-resources/cdn-service)

* [Set Up Private NuGet Feed for Azure](https://docs.telerik.com/aspnet-core/knowledge-base/setup-private-nuget-feed-azure)

* [Scaffolding the Telerik UI for ASP.NET Core Project](https://www.telerik.com/aspnet-core-ui/documentation/vs-integration/scaffolding)
