зеркало из https://github.com/telerik/blazor-docs.git
docs(common): Improve CI/CD articles (#2148)
* initial commit * docs(common): Revamp NuGet API Keys article * add Docker information and polish * Update deployment/ci-cd-build-server.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/nuget-keys.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/nuget-keys.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/nuget-keys.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/nuget-keys.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/nuget-keys.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/overview.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/overview.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update _contentTemplates/common/general-info.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update deployment/troubleshooting.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update installation/nuget.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * Update installation/nuget.md Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com> * final commit --------- Co-authored-by: Iva Stefanova Koevska-Atanasova <koevska@progress.com>
This commit is contained in:
Родитель
780a0cd5ad
Коммит
4bd37a7691
|
@ -248,7 +248,7 @@ NavigationManager
|
|||
NestedFormItem
|
||||
NoDataTemplate
|
||||
NotificationModel
|
||||
nuget.config
|
||||
NuGet.Config
|
||||
nuget.org
|
||||
nuget.telerik.com
|
||||
NullReferenceException
|
||||
|
|
|
@ -125,3 +125,13 @@ If you set the `ShouldRender` field of the event arguments to `true`, the compon
|
|||
| tb-window | [Window]({%slug window-overview%}) |
|
||||
| tb-wizard | [Wizard]({%slug wizard-overview%}) |
|
||||
#end
|
||||
|
||||
#status-telerik-com
|
||||
## Telerik NuGet Feed Status
|
||||
|
||||
Visit [status.telerik.com](https://status.telerik.com) to check the status of the Telerik NuGet server. The top section shows manually logged incidents with possible updates or workaround suggestions. The [**System Metrics** section](https://status.telerik.com/#system-metrics) provides real-time automated diagnostics.
|
||||
#end
|
||||
|
||||
#ci-cd-support
|
||||
> All deployment articles in this documentation provide general guidance and fundamentals. Telerik does not provide technical support for setting up CI/CD environments or application publishing infrastructure.
|
||||
#end
|
||||
|
|
|
@ -18,6 +18,8 @@ Sections in this article:
|
|||
* [Basics](#basics)
|
||||
* [Azure DevOps Pipelines](#azure-devops-pipelines)
|
||||
* [GitHub Secrets](#github-secrets)
|
||||
* [Docker](#docker)
|
||||
|
||||
|
||||
## Basics
|
||||
|
||||
|
@ -25,7 +27,7 @@ Often enough, you would want to set up Continuous Integration and/or Continuous
|
|||
|
||||
There are a couple of common ways people implement CI/CD automated builds.
|
||||
|
||||
* You can [restore the Telerik NuGet packages]({%slug installation/nuget-keys%}) by downloading them from the Telerik NuGet server. You can achieve this by using the more secure token-based authentication with the Telerik NuGet server. If you prefer the basic authentication with a username and password, you can use your own credentials (or the credentials of the license holder, depending on how your licenses are set up) in the `nuget.config` of the build machine/pipeline. In this case, make sure that your credentials are encrypted when you add the Telerik feed source through the CLI. Alternatively, you can copy an encrypted version from your own local config if you have one and if plain text is an issue. See more on setting up the [Telerik NuGet package source]({%slug installation/nuget%}).
|
||||
* You can [restore the Telerik NuGet packages]({%slug installation/nuget-keys%}) by downloading them from the Telerik NuGet server. You can achieve this by using the more secure token-based authentication with the Telerik NuGet server. If you prefer the basic authentication with a username and password, you can use your own credentials (or the credentials of the license holder, depending on how your licenses are set up) in the `NuGet.Config` of the build machine/pipeline. In this case, make sure that your credentials are encrypted when you add the Telerik feed source through the CLI. Alternatively, you can copy an encrypted version from your own local config if you have one and if plain text is an issue. See more on setting up the [Telerik NuGet package source]({%slug installation/nuget%}).
|
||||
|
||||
* Creating a local folder (for example, on a shared network drive or other suitable location accessible only by your builds and team) that holds the `.nupkg` files we provide (you can download them from your telerik.com account, or from your local installation - both [automated]({%slug installation/msi%}) and from the [zip archive]({%slug installation/zip%})).
|
||||
|
||||
|
@ -44,7 +46,7 @@ When using Azure pipelines, we encourage you to review the following resources o
|
|||
|
||||
* Obtaining credentials - see the points above for either using your own credentials, or using a shared package source.
|
||||
|
||||
* Telerik feed not being found - the most common reason for a problem is that the path to the `nuget.config` file is wrong (it should, by default, be at the root level).
|
||||
* Telerik feed not being found - the most common reason for a problem is that the path to the `NuGet.Config` file is wrong (it should, by default, be at the root level).
|
||||
|
||||
* An `index.json not found` error can occur from many root causes. If you have successfully authenticated, this error usually means that the feed wasn't able to be searched or connected to. A common reason is an incorrect feed URL, such as including a trailing slash - Correct: `https://nuget.telerik.com/v3/index.json` and Incorrect: `https://nuget.telerik.com/v3/index.json/`.
|
||||
|
||||
|
@ -61,7 +63,7 @@ When using Azure pipelines, we encourage you to review the following resources o
|
|||
|
||||
## GitHub Secrets
|
||||
|
||||
In some cases, [GitHub Secrets](https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) are used to store credentials that you would later have to consume from the `nuget.config` file in order to connect to the Telerik feed in your GitHub Actions workflows.
|
||||
In some cases, [GitHub Secrets](https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) are used to store credentials that you would later have to consume from the `NuGet.Config` file in order to connect to the Telerik feed in your GitHub Actions workflows.
|
||||
|
||||
A way to pass them along is to mark them as environment variables. You can find an example in the [DevOpsExamples repo by Lance McCarthy](https://github.com/LanceMcCarthy/DevOpsExamples). Here follow the two relevant extracts.
|
||||
|
||||
|
@ -80,7 +82,7 @@ jobs:
|
|||
|
||||
>tip Even though you are copying secrets into Environment Variables on the runner, GitHub Actions will continue to treat the values as protected string and mask the values in all output.
|
||||
|
||||
Finally, you need a `nuget.config` file that lists the Telerik server in the `packageSources`, as well as an accompanying `packageSourceCredentials` that uses those named environment variables for the `Username` and `ClearTextPassword` keys.
|
||||
Finally, you need a `NuGet.Config` file that lists the Telerik server in the `packageSources`, as well as an accompanying `packageSourceCredentials` that uses those named environment variables for the `Username` and `ClearTextPassword` keys.
|
||||
|
||||
>caption Example of Using Environment Variables in NuGet.config
|
||||
|
||||
|
@ -101,6 +103,42 @@ Finally, you need a `nuget.config` file that lists the Telerik server in the `pa
|
|||
>warning GitHub does not allow secrets to be used in workflows that have been [triggered by a pull request event](https://docs.github.com/en/actions/reference/events-that-trigger-workflows). In such a case, the runner will not be able to authenticate with the Telerik NuGet server and the job will expectedly fail.
|
||||
|
||||
|
||||
## Docker
|
||||
|
||||
When building or restoring Blazor apps in Docker, the crucial steps are:
|
||||
|
||||
1. Have a `NuGet.Config` file in the project or solution folder. The file can [define the Telerik NuGet feed]({%slug installation/nuget%}#edit-the-nugetconfig-file), but without the credentials (Telerik account or NuGet API key).
|
||||
1. Copy the `NuGet.Config` file together with the `.csproj` file(s) to the Docker image.
|
||||
1. [Add](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-add-source) or [update](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-update-source) the Telerik NuGet feed with the [stored Telerik NuGet credentials (secrets)]({%slug installation/nuget-keys%}). When specifying the `NuGet.Config` file location, note that file names are case-sensitive on Unix systems.
|
||||
1. Restore or build the Blazor app.
|
||||
|
||||
The following code is the build portion of a sample `Dockerfile` that builds a .NET 8 Blazor Web App with two projects. The `dotnet restore` command is executed from the `src` folder of the Docker image (where the `NuGet.Config` is copied), so that the `NuGet.Config` file can be used to restore all projects in the solution.
|
||||
|
||||
```
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||
WORKDIR /src
|
||||
|
||||
# Copy the project files to restore in child folders of /src
|
||||
COPY ["MyBlazorApp/MyBlazorApp/MyBlazorApp.csproj", "MyBlazorApp/MyBlazorApp/"]
|
||||
COPY ["MyBlazorApp/MyBlazorApp.Client/MyBlazorApp.Client.csproj", "MyBlazorApp/MyBlazorApp.Client/"]
|
||||
|
||||
# Copy the NuGet.Config file without the Telerik credentials to /src
|
||||
COPY ["NuGet.Config", "."]
|
||||
|
||||
# Update the Telerik NuGet source and add credentials from your secrets storage
|
||||
RUN dotnet nuget update source "TelerikOnlineFeed" --username ... --password ... --configfile "./NuGet.Config" --store-password-in-clear-text
|
||||
|
||||
# Restore the NuGet packages for the Blazor app
|
||||
RUN dotnet restore "./MyBlazorApp/MyBlazorApp/MyBlazorApp.csproj"
|
||||
|
||||
# Copy the whole Blazor app
|
||||
COPY . .
|
||||
|
||||
# Build the app
|
||||
WORKDIR "/src/MyBlazorApp/MyBlazorApp"
|
||||
RUN dotnet build "./MyBlazorApp.csproj" -c Release -o /app/build
|
||||
```
|
||||
|
||||
|
||||
## Further Reading
|
||||
|
||||
|
|
|
@ -3,115 +3,105 @@ title: Restoring NuGet Packages in CI
|
|||
page_title: Restoring NuGet Packages in CI
|
||||
description: Get started with Telerik UI for Blazor and use NuGet Keys to authenticate with the Telerik NuGet server and restore packages in your CI or desktop environment.
|
||||
slug: installation/nuget-keys
|
||||
position: 7
|
||||
position: 10
|
||||
---
|
||||
|
||||
# Restoring NuGet Packages in Your CI Workflow
|
||||
|
||||
This article provides an overview of the most popular ways for using token-based authentication to restore Telerik NuGet packages in your Continuous Integration (CI) workflow.
|
||||
This article describes how to use token-based authentication for the Telerik NuGet feed. You will learn how to create and use NuGet API keys to restore Telerik NuGet packages in your Continuous Integration (CI) workflow.
|
||||
|
||||
The Telerik NuGet server allows you to authenticate by using two methods:
|
||||
The [Telerik NuGet server]({%slug installation/nuget%}) provides two ways to authenticate:
|
||||
|
||||
* Basic authentication by providing your Telerik user name and password.
|
||||
* Token-based authentication by providing a NuGet Key.
|
||||
* Basic authentication with your Telerik username and password.
|
||||
* Token-based authentication with a NuGet API key.
|
||||
|
||||
When you need to restore Telerik NuGet packages as part of your CI, using NuGet keys is the more secure way to authenticate. This method does not require you to provide your Telerik username and password anywhere in the CI workflow.
|
||||
When you need to restore the [Telerik NuGet packages]({%slug getting-started/what-you-need%}#nuget-packages) as part of your CI, a NuGet API key is the more secure way to authenticate. This method does not require you to provide your Telerik credentials anywhere in the CI workflow. A NuGet Key has a limited scope and can be used only with the Telerik NuGet server. If any of your NuGet keys is compromised, you can quickly delete it and create a new one.
|
||||
|
||||
Unlike your Telerik credentials, a NuGet Key has a limited scope and can be used only with the Telerik NuGet server. If any of your NuGet keys is compromised, you can quickly delete it and create a new one.
|
||||
|
||||
## Generating NuGet Keys
|
||||
|
||||
1. Go to the [**Manage NuGet Keys**](https://www.telerik.com/account/downloads/nuget-keys) page in your Telerik account.
|
||||
1. In your Telerik account, go to the [**Manage NuGet Keys**](https://www.telerik.com/account/downloads/nuget-keys) page.
|
||||
|
||||
![Manage NuGet Keys](../deployment/images/manage-nuget-keys.png)
|
||||
|
||||
1. To create a new key, click on the **Generate New Key** button.
|
||||
1. Click **Generate New Key**.
|
||||
|
||||
1. Enter a name for the NuGet Key, and then select **Generate Key**.
|
||||
1. Enter a name for the NuGet Key and click **Generate Key**.
|
||||
|
||||
1. To copy the key, select **Copy and Close**. Once you close the window, you can no longer copy the generated key. For security reasons, the **NuGet Keys** page displays only a portion of the key.
|
||||
1. To copy the key, click **Copy and Close**. Once you close the popup dialog, you can no longer copy the generated key. For security reasons, the **NuGet Keys** page displays only a portion of the key.
|
||||
|
||||
![Copy Generated NuGet Key](../deployment/images/copy-nuget-key.png)
|
||||
|
||||
## Storing a NuGet Key
|
||||
|
||||
> Never check in a NuGet Key with your source code or leave it publicly visible in plain text, for example, as a raw key value in a `nuget.config` file. A NuGet Key is valuable as bad actors can use it to access the NuGet packages that are licensed under your account. A potential key abuse could lead to a review of the affected account.
|
||||
## Storing NuGet Keys
|
||||
|
||||
To protect the NuGet Key, store it as a secret environment variable. The exact steps depend on your workflow:
|
||||
>warning Never check in Telerik account credentials or a NuGet API key with your source code or leave them publicly visible in plain text (for example, in a `NuGet.Config` file). A NuGet key is valuable and bad actors can use it to access the NuGet packages that are licensed under your account. A key abuse can lead to a review of the affected Telerik account.
|
||||
|
||||
* In GitHub Actions, save the key as a GitHub Actions Secret. Go to **Settings** > **Security** > **Secrets** > **Actions** > **Add new secret**.
|
||||
To protect the NuGet Key, store it as a secret environment variable. The exact store steps depend on your workflow and environment:
|
||||
|
||||
* In Azure DevOps Classic, save the key as a secret pipeline variable. Go to the **Variables** tab and then select **Pipeline variables**.
|
||||
|
||||
* In Azure DevOps YAML pipelines, save the key as a secret variable as well. Click the YAML editor's **Variables** button and complete the **New variable** form.
|
||||
|
||||
If you use Azure DevOps Service connection instead of secret environment variables, enter `api-key` in the username filed and the NuGet Key as the password in the **New NuGet service connection** form editor.
|
||||
* In GitHub Actions, save the key as a [GitHub Actions Secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions).
|
||||
* In Azure DevOps, save the key as a [secret Azure DevOps pipeline variable](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/set-secret-variables). If you use an Azure DevOps Service connection instead of secret environment variables, enter `api-key` in the username field and the NuGet key as the password in the **New NuGet service connection** form editor.
|
||||
* In Docker images, save the key as a [Docker secret](https://docs.docker.com/tags/secrets/).
|
||||
|
||||
For more details on storing and protecting your NuGet Key, check the [Announcing NuGet Keys](https://www.telerik.com/blogs/announcing-nuget-keys) blog post by Lance McCarthy.
|
||||
|
||||
## Using a NuGet Key
|
||||
The examples below assume that the secret environment variable name is `TELERIK_NUGET_KEY`.
|
||||
|
||||
There are two popular ways to use the Telerik NuGet server in a build:
|
||||
|
||||
* [Using a nuget.config file with your projects](#using-a-nugetconfig-file-with-your-projects)
|
||||
## Using NuGet Keys
|
||||
|
||||
There are two common ways to use a [stored NuGet key](#storing-nuget-keys) with the Telerik NuGet server during a build:
|
||||
|
||||
* [Using a NuGet.Config file](#using-a-nugetconfig-file)
|
||||
* [Using only CLI commands](#using-only-cli-commands)
|
||||
|
||||
For more information on how to use NuGet keys in a build, check the [Announcing NuGet Keys](https://www.telerik.com/blogs/announcing-nuget-keys) blog post by Lance McCarthy.
|
||||
|
||||
### Using a nuget.config File with Your Projects
|
||||
### Using a NuGet.Config File
|
||||
|
||||
1. In your `nuget.config` file, set the `Username` value to `api-key` and the `ClearTextPassword` value to an environment variable name:
|
||||
In your `NuGet.Config` file, set the `Username` value to `api-key` and the `ClearTextPassword` value to an environment variable name:
|
||||
|
||||
```xml
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear/>
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||
<add key="MyTelerikFeed" value="https://nuget.telerik.com/v3/index.json" protocolVersion="3"/>
|
||||
</packageSources>
|
||||
<packageSourceCredentials>
|
||||
<MyTelerikFeed>
|
||||
<add key="Username" value="api-key" />
|
||||
<add key="ClearTextPassword" value="%MY_API_KEY%" />
|
||||
</MyTelerikFeed>
|
||||
</packageSourceCredentials>
|
||||
...
|
||||
</configuration>
|
||||
```
|
||||
<div class="skip-repl"></div>
|
||||
|
||||
1. Set the `MY_API_KEY` environment variable by using the value of your pipeline/workflow secret.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||
<add key="TelerikOnlineFeed" value="https://nuget.telerik.com/v3/index.json" protocolVersion="3" />
|
||||
</packageSources>
|
||||
<packageSourceCredentials>
|
||||
<TelerikOnlineFeed>
|
||||
<add key="Username" value="api-key" />
|
||||
<add key="ClearTextPassword" value="%TELERIK_NUGET_KEY%" />
|
||||
</TelerikOnlineFeed>
|
||||
</packageSourceCredentials>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
The exact steps to set the `MY_API_KEY` environment variable depend on your workflow. For more details, refer to the [Announcing NuGet Keys](https://www.telerik.com/blogs/announcing-nuget-keys) blog post by Lance McCarthy.
|
||||
### Using .NET CLI Commands
|
||||
|
||||
### Using Only CLI Commands
|
||||
|
||||
You can use the CLI `add source` (or `update source`) command to set the credentials of a package source. This CLI approach is applicable if your CI system doesn't support default environment variable secrets or if you do not use a custom `nuget.config`.
|
||||
You can use the .NET CLI `add source` or `update source` commands to set the credentials of a package source. This CLI approach is applicable if your CI system doesn't support [environment variable secrets](#storing-nuget-keys) or if you do not [use a custom `NuGet.Config`](#using-a-nugetconfig-file).
|
||||
|
||||
* To set the credentials in Azure DevOps:
|
||||
|
||||
```
|
||||
dotnet nuget add source 'MyTelerikFeed' --source 'https://nuget.telerik.com/v3/index.json' --username 'api-key' --password '$(TELERIK_NUGET_KEY)' --configfile './nuget.config' --store-password-in-clear-text
|
||||
dotnet nuget add source 'TelerikOnlineFeed' --source 'https://nuget.telerik.com/v3/index.json' --username 'api-key' --password '$(TELERIK_NUGET_KEY)' --configfile './NuGet.Config' --store-password-in-clear-text
|
||||
```
|
||||
|
||||
* To set the credentials in GitHub Actions:
|
||||
|
||||
```
|
||||
dotnet nuget add source 'MyTelerikFeed' --source 'https://nuget.telerik.com/v3/index.json' --username 'api-key' --password '${{ secrets.TELERIK_NUGET_KEY }}' --configfile './nuget.config' --store-password-in-clear-text
|
||||
dotnet nuget add source 'TelerikOnlineFeed' --source 'https://nuget.telerik.com/v3/index.json' --username 'api-key' --password '${{ secrets.TELERIK_NUGET_KEY }}' --configfile './NuGet.Config' --store-password-in-clear-text
|
||||
```
|
||||
|
||||
## Additional Resources
|
||||
|
||||
If you just start using the Telerik NuGet server in your CI or inter-department workflows, check the two blog posts below. You will learn about the various use cases and find practical implementation details.
|
||||
|
||||
* [Azure DevOps and Telerik NuGet Packages](https://www.telerik.com/blogs/azure-devops-and-telerik-nuget-packages)
|
||||
|
||||
* [Announcing NuGet Keys](https://www.telerik.com/blogs/announcing-nuget-keys)
|
||||
|
||||
When restoring NuGet packages through the CLI, [use `dotnet restore` rather than `nuget restore` to avoid compatibility errors]({%slug common-kb-package-telerik-pivot-not-compatible-with-netframework%}).
|
||||
> When restoring NuGet packages through the CLI, [use `dotnet restore` rather than `nuget restore` to avoid compatibility errors]({%slug common-kb-package-telerik-pivot-not-compatible-with-netframework%}).
|
||||
|
||||
|
||||
## See Also
|
||||
|
||||
* [Telerik NuGet Feed]({% slug installation/nuget %})
|
||||
* [CI, CD, Build Server Setup]({% slug deployment-ci-cd-build-pc %})
|
||||
* [Telerik NuGet Feed]({%slug installation/nuget%})
|
||||
* [CI, CD, Build Server Setup]({%slug deployment-ci-cd-build-pc%})
|
||||
* [Azure DevOps and Telerik NuGet Packages](https://www.telerik.com/blogs/azure-devops-and-telerik-nuget-packages)
|
||||
* [Announcing NuGet Keys](https://www.telerik.com/blogs/announcing-nuget-keys)
|
||||
|
|
|
@ -11,53 +11,49 @@ position: 1
|
|||
|
||||
# Blazor Deployment Overview
|
||||
|
||||
This article explains the basics about deploying a Telerik-enabled Blazor web application. It consists of the following sections:
|
||||
|
||||
This article explains the basics of deploying a Telerik-enabled Blazor web application. It consists of the following sections:
|
||||
|
||||
* [Prerequisites](#prerequisites)
|
||||
* [Telerik Components](#telerik-components)
|
||||
* [Next Steps and Troubleshooting](#next-steps-and-troubleshooting)
|
||||
|
||||
@[template](/_contentTemplates/common/general-info.md#ci-cd-support)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
First, make sure you can deploy a vanilla Blazor application without the Telerik components in order to have the entire pipeline working as a baseline.
|
||||
|
||||
You can read more about deploying Blazor applications in MSDN - make sure that you are familiar with this information, as the Telerik UI for Blazor suite does not add any specific requirements or steps:
|
||||
|
||||
* [Host and deploy ASP.NET Core Blazor](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/?view=aspnetcore-3.0&tabs=visual-studio)
|
||||
* [Host and deploy ASP.NET Core Blazor WebAssembly](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/webassembly?view=aspnetcore-3.0)
|
||||
* [Host and deploy Blazor Server](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/server?view=aspnetcore-3.0)
|
||||
Refer to the Microsoft Blazor deployment documentation and make sure you can deploy a vanilla Blazor application without Telerik components in order to have the entire pipeline working as a baseline.
|
||||
|
||||
* [Host and deploy ASP.NET Core Blazor](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/)
|
||||
* [Host and deploy Blazor Server apps](https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/server)
|
||||
* [Host and deploy Blazor WebAssembly apps](https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/webassembly)
|
||||
|
||||
|
||||
## Telerik Components
|
||||
|
||||
The Telerik UI for Blazor components consist of:
|
||||
|
||||
* assemblies
|
||||
* static assets
|
||||
* static CSS and JavaScript assets
|
||||
|
||||
Both of these resources are distributed in our [NuGet packages]({%slug getting-started/what-you-need%}#telerik-specific-packages).
|
||||
These resources are distributed in our [NuGet packages]({%slug getting-started/what-you-need%}#nuget-packages). The .NET SDK is responsible for copying the Telerik `.dll`, `.css`, and `.js` files from the local NuGet cache to the target folder during the build or publish.
|
||||
|
||||
The framework is responsible for copying them from the local NuGet cache to the build/publish target during the build.
|
||||
>important The build machine must be able to [restore the Telerik NuGet packages from a remote or local NuGet feed]({%slug getting-started/what-you-need%}#getting-the-telerik-nuget-packages). See the [CI, CD, Build Server]({%slug deployment-ci-cd-build-pc%}) article for more details on automation setup.
|
||||
|
||||
>important The machine that performs the publish build must be able to properly restore the referenced Telerik NuGet packages. This can be [our online feed](../installation/nuget) or a [local feed](../installation/zip). See the [CI, CD, Build Server]({%slug deployment-ci-cd-build-pc%}) article for more details on setting automation up.
|
||||
## Testing and Building Licenses
|
||||
|
||||
The licensing model of Telerik UI for Blazor is based on developer seats. Separate licenses for test and build environments are not available. For details and next steps, refer to the **Testing and Building License** section in the [Telerik UI for Blazor license agreement](https://www.telerik.com/purchase/license-agreement/blazor-ui).
|
||||
|
||||
## Next Steps and Troubleshooting
|
||||
|
||||
The following articles provide information on the most common issues and questions related to deployment:
|
||||
|
||||
* [Deployment Troubleshooting]({%slug deployment-troubleshooting%}) describes the most common problems and solutions related to deploying Telerik-enabled applications.
|
||||
The following articles provide more information on Telerik UI for Blazor deployment:
|
||||
|
||||
* [CI, CD, Build Server]({%slug deployment-ci-cd-build-pc%}) provides guidance on setting up continuous integration, continuous delivery and automated builds. Mostly related to using the Telerik NuGet packages as this is the only specific thing that we require.
|
||||
|
||||
* [Telerik NuGet Feed]({%slug installation/nuget%}) shows how to set up our private NuGet feed for local use.
|
||||
|
||||
* [Telerik NuGet Feed]({%slug installation/nuget%}) shows how to set up our private NuGet package source.
|
||||
* [NuGet Feed Troubleshooting]({%slug troubleshooting-nuget%}) provides troubleshooting tips for the most common issues with our NuGet feed.
|
||||
* [Deployment Troubleshooting]({%slug deployment-troubleshooting%}) describes the most common problems and solutions related to deploying Telerik Blazor applications.
|
||||
|
||||
|
||||
## See Also
|
||||
|
||||
* [I Still See the Trial Message]({%slug upgrade-tutorial%}#i-still-see-the-trial-message)
|
||||
* [Missing JS Interop File]({%slug troubleshooting-js-errors%}#missing-file)
|
||||
* [Removing the Telerik Blazor Trial Message]({%slug upgrade-tutorial%}#i-still-see-the-trial-message)
|
||||
* [Troubleshooting `TelerikBlazor was undefined`]({%slug troubleshooting-js-errors%}#telerikblazor-was-undefined)
|
||||
|
|
|
@ -5,26 +5,29 @@ description: Troubleshooting deployment issues involving the UI for Blazor suite
|
|||
slug: deployment-troubleshooting
|
||||
tags: deploy,deployment,issues,troubleshoot,fix
|
||||
published: True
|
||||
position: 10
|
||||
position: 15
|
||||
---
|
||||
|
||||
# Deployment Troubleshooting
|
||||
|
||||
This page provides information for common issues you may encounter while deploying applications with the Telerik UI for Blazor components.
|
||||
|
||||
|
||||
>important The machine that performs the publish build must be able to properly restore the referenced Telerik NuGet packages. This can be [our online feed](../installation/nuget) or a [local feed](../installation/zip). See the [CI, CD, Build Server]({%slug deployment-ci-cd-build-pc%}) article for more details on setting automation up.
|
||||
|
||||
|
||||
@[template](/_contentTemplates/common/general-info.md#status-telerik-com)
|
||||
|
||||
## Reported Issues
|
||||
|
||||
At the time of writing, sometimes the following issues have been reported that pertain to the Telerik UI for Blazor suite:
|
||||
|
||||
* `Unable to find package Telerik.UI.for.Blazor` is a common pitfall in build environments. See the [NuGet Troubleshooting]({%slug troubleshooting-nuget%}#unable-to-find-package) article, which also provides other NuGet-related tips.
|
||||
* [404 not found for telerik-blazor.js](#404-not-found-for-telerik-blazorjs)
|
||||
* [Trial Message](#trial-message)
|
||||
* [Could not load file or assembly 'System.Text.Json, ...](#could-not-load-file-or-assembly-systemtextjson-)
|
||||
* [Blazor Server Slow or Breaks Up in the Cloud](#blazor-server-slow-or-breaks-up-in-the-cloud)
|
||||
* [Blazor Server app is slow or breaks in the cloud](#blazor-server-slow-or-breaks-up-in-the-cloud)
|
||||
* [The remote certificate is invalid because of errors in the certificate chain](#invalid-certificate)
|
||||
|
||||
@[template](/_contentTemplates/common/general-info.md#ci-cd-support)
|
||||
|
||||
### 404 not found for telerik-blazor.js
|
||||
|
||||
|
@ -68,7 +71,7 @@ At the time of writing, sometimes the following issues have been reported that p
|
|||
}
|
||||
}
|
||||
|
||||
* On Linux (and often Docker), paths are case-sensitive, so make sure you have the correct casing when registering the styles and scripts (see the [Client Assets]({%slug getting-started/what-you-need%}#adding-the-client-assets) section of the documentation).
|
||||
* On Linux (and often Docker), paths are case sensitive. Make sure that you have the correct casing when registering the styles and scripts (see the [Client Assets]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files) section of the documentation).
|
||||
|
||||
* Some reports indicate that deploying to a Docker container never copies over the static assets and you may have to either copy the file manually, or use it from [our CDN]({%slug general-information/themes%}#cdn). This may be related to the static asset configurations from the previous points, however.
|
||||
|
||||
|
@ -96,6 +99,19 @@ You can use the following Microsoft guidance to check the latency: <a href="http
|
|||
>note In Azure, for example, WebSockets are disabled by default, and this is highly detrimental to the performance of the SignalR connection. Enabling WebSockets may help you get the needed speed and responsiveness from the server.
|
||||
|
||||
|
||||
### Invalid Certificate
|
||||
|
||||
Build environments behind firewalls may encounter errors like:
|
||||
|
||||
`The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot`
|
||||
|
||||
or
|
||||
|
||||
`The remote certificate is invalid because of errors in the certificate chain: PartialChain`
|
||||
|
||||
Such errors are related to the local networking security settings and you may need the assistance of your network or system administrators to resolve it. As a first step, make sure the [required Telerik NuGet domains are accessible]({%slug installation/nuget%}#access-nuget-packages-behind-firewall).
|
||||
|
||||
|
||||
## See Also
|
||||
|
||||
* [I Still See the Trial Message]({%slug upgrade-tutorial%}#i-still-see-the-trial-message)
|
||||
|
|
|
@ -37,9 +37,9 @@ To use the UI for Blazor components, install the `Telerik.UI.for.Blazor` packag
|
|||
|
||||
### 2. Add the Telerik Client Assets
|
||||
|
||||
To have the Telerik Blazor components look and behave as expected, you need the Telerik [CSS and JavaScript assets]({%slug getting-started/what-you-need%}#adding-the-client-assets). Include the assets inside the `<head>` of the `wwwroot/index.html` file.
|
||||
To have the Telerik Blazor components look and behave as expected, you need the Telerik [CSS and JavaScript assets]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files). Include the assets inside the `<head>` of the `wwwroot/index.html` file.
|
||||
|
||||
You can add the Telerik resources as [static assets]({%slug getting-started/what-you-need%}#using-static-assets).
|
||||
You can add the Telerik resources as [static assets]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files).
|
||||
|
||||
### 3. Include @using Statements
|
||||
|
||||
|
@ -65,7 +65,7 @@ Use a single [`TelerikRootComponent`]({%slug rootcomponent-overview%}) component
|
|||
|
||||
Make sure that the `TelerikRootComponent` matches the web view viewport and remove the default margin of the `<body>` HTML element.
|
||||
|
||||
Once custom layouts are supported, you will be able to configure a Telerik layout in the same way as with regular Blazor web apps (check [Common Configuration]({%slug getting-started/what-you-need%}#common-configuration)).
|
||||
Once custom layouts are supported, you will be able to configure a Telerik layout in the same way as with regular Blazor web apps (check [Common Configuration]({%slug getting-started/what-you-need%}#telerikrootcomponent)).
|
||||
|
||||
### 5. Register the Telerik Services
|
||||
|
||||
|
|
|
@ -15,13 +15,13 @@ To add the Telerik UI components to your existing Blazor application, use the Co
|
|||
The Convert Project Wizard automates a set of steps that you otherwise must perform manually.
|
||||
|
||||
The wizard adds the following client assets to your project:
|
||||
* [Telerik stylesheet]({%slug getting-started/what-you-need%}#adding-the-client-assets)
|
||||
* [JS Interop file]({%slug getting-started/what-you-need%}#adding-the-client-assets)
|
||||
* [Telerik stylesheet]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files)
|
||||
* [JS Interop file]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files)
|
||||
|
||||
The wizard also configures the project to use the Telerik UI for Blazor components by adding the following utilities:
|
||||
* [Required `@using` directives]({%slug getting-started/what-you-need%}#common-configuration) to the `~/_Imports.razor` file.
|
||||
* [`TelerikLayout.razor` component]({%slug getting-started/what-you-need%}#common-configuration) at the root level of the DOM.
|
||||
* Registration for the Telerik services for [client-side projects]({%slug getting-started/what-you-need%}#client-side-project-specifics), for [server-side projects]({%slug getting-started/what-you-need%}#server-side-project-specifics), and for [hybrid projects]({%slug getting-started/what-you-need%}#blazor-hybrid-project-specifics).
|
||||
* [Required `@using` directives]({%slug getting-started/what-you-need%}#namespaces) to the `~/_Imports.razor` file.
|
||||
* [`TelerikLayout.razor` component]({%slug getting-started/what-you-need%}#telerikrootcomponent) at the root level of the DOM.
|
||||
* Registration of the [Telerik services]({%slug getting-started/what-you-need%}#service).
|
||||
|
||||
## Getting the Wizard
|
||||
|
||||
|
|
|
@ -15,13 +15,13 @@ To create a new Telerik UI for Blazor application, use the Create New Project wi
|
|||
The Create New Project Wizard automates a set of steps that you otherwise must perform manually.
|
||||
|
||||
The wizard adds the following client assets to your project:
|
||||
* [Telerik stylesheet]({%slug getting-started/what-you-need%}#adding-the-client-assets)
|
||||
* [JS Interop file]({%slug getting-started/what-you-need%}#adding-the-client-assets)
|
||||
* [Telerik stylesheet]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files)
|
||||
* [JS Interop file]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files)
|
||||
|
||||
The wizard also configures the project to use the Telerik UI for Blazor components by adding the following utilities:
|
||||
* [Required `@using` directives]({%slug getting-started/what-you-need%}#common-configuration) to the `~/_Imports.razor` file.
|
||||
* [`TelerikLayout.razor` component]({%slug getting-started/what-you-need%}#common-configuration) at the root level of the DOM.
|
||||
* Registration for the Telerik services for [client-side projects]({%slug getting-started/what-you-need%}#client-side-project-specifics), for [server-side projects]({%slug getting-started/what-you-need%}#server-side-project-specifics), and for [hybrid projects]({%slug getting-started/what-you-need%}#blazor-hybrid-project-specifics).
|
||||
* [Required `@using` directives]({%slug getting-started/what-you-need%}#namespaces) to the `~/_Imports.razor` file.
|
||||
* [`TelerikLayout.razor` component]({%slug getting-started/what-you-need%}#telerikrootcomponent) at the root level of the DOM.
|
||||
* Registration of the [Telerik services]({%slug getting-started/what-you-need%}#service).
|
||||
|
||||
## Getting the Wizard
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ To enable the Telerik UI for Blazor components, you must add several client-side
|
|||
|
||||
### 4.1. Add the Telerik UI for Blazor Client Assets
|
||||
|
||||
1\. Add the `telerik-blazor.js` file to your `App.razor` file as a [static asset]({%slug getting-started/what-you-need%}#using-static-assets).
|
||||
1\. Add the `telerik-blazor.js` file to your `App.razor` file as a [static asset]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files).
|
||||
|
||||
**HTML**
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@ You can set up the remote Telerik NuGet feed in the following ways:
|
|||
|
||||
>tip When working with the .NET CLI or editing the `NuGet.Config` manually, you can use your Telerik account credentials or a [NuGet API Key](#use-nuget-api-key). If you are logging in to telerik.com through single sign-on (SSO), use a [NuGet API Key](#use-nuget-api-key).
|
||||
|
||||
>warning Never hard-code Telerik account credentials or NuGet API keys in a `NuGet.Config` file in a GitHub repository, Docker image, or any location that may be accessed by unauthorized parties. A NuGet 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.
|
||||
|
||||
For NuGet-related issues, see [NuGet Feed Troubleshooting]({%slug troubleshooting-nuget%}).
|
||||
|
||||
For information on automated builds, CI and CD, see [CI, CD, Build Server]({%slug deployment-ci-cd-build-pc%}).
|
||||
|
@ -129,9 +131,9 @@ To edit a `NuGet.Config` file and add the Telerik feed, you need to:
|
|||
There are two ways to authenticate with the Telerik NuGet server when you add the Telerik NuGet source [with the .NET CLI](#use-the-net-cli) or [edit the `NuGet.Config` file manually](#edit-the-nugetconfig-file):
|
||||
|
||||
* Use your Telerik account email as the username, and your Telerik password.
|
||||
* Use `api-key` as the username, and your personal NuGet API Key as the password.
|
||||
* Use `api-key` as the username and your personal [NuGet API Key]({%slug installation/nuget-keys%}) as the password.
|
||||
|
||||
You can [generate your Telerik NuGet API Key on telerik.com](https://www.telerik.com/account/downloads/nuget-keys). Read more about [using NuGet API Keys in different environments](https://www.telerik.com/blogs/announcing-nuget-keys) on the Telerik Blog.
|
||||
You can [generate your Telerik NuGet API Key on telerik.com](https://www.telerik.com/account/downloads/nuget-keys). Read more about [using NuGet API Keys in different environments]({%slug installation/nuget-keys%}).
|
||||
|
||||
> Always use the NuGet API Key in plain text.
|
||||
|
||||
|
@ -160,6 +162,16 @@ The `Telerik.UI.for.Blazor` NuGet package and most of its dependencies reside on
|
|||
> Make sure that the `key` values in the `packageSourceMapping` section match the `key` values in the `packageSources` section, otherwise you will get a "Package not found" error.
|
||||
|
||||
|
||||
## Access NuGet Packages behind Firewall
|
||||
|
||||
To access the Telerik NuGet feed behind a firewall that restricts outgoing requests, you may need to allow the following domains:
|
||||
|
||||
* `nuget.telerik.com`, which provides authentication and license verification
|
||||
* `downloads.cdn.telerik.com`, which hosts the NuGet packages
|
||||
|
||||
The firewall must allow some of the requests to be redirected from `nuget.telerik.com` to `downloads.cdn.telerik.com`.
|
||||
|
||||
|
||||
## Obsolete Telerik NuGet URL
|
||||
|
||||
In addition to feed URL `https://nuget.telerik.com/v3/index.json`, there is also an obsolete NuGet v2 server at `https://nuget.telerik.com/nuget`, which is no longer recommended.
|
||||
|
|
|
@ -100,7 +100,7 @@ A server-side Blazor app is bootstrapped in a Razor page (`_Host.cshtml`) and so
|
|||
````
|
||||
|
||||
## Notes
|
||||
You may want to consider using [static assets]({%slug getting-started/what-you-need%}#adding-the-client-assets) as the primary way to obtain the necessary resources. They provide the following benefits in a Blazor app:
|
||||
You may want to consider using [static assets]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files) as the primary way to obtain the necessary resources. They provide the following benefits in a Blazor app:
|
||||
|
||||
* For server-side Blazor - the necessity for a low-latency connection makes this flavor suitable for Intranet apps, and in such cases the user is likely to be closer to the server than to the cloud. Thus, downloading the files from the app server is likely to be faster than downloading from the CDN.
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ The error indicates that the app is still using the old version of our `telerik-
|
|||
|
||||
To resolve the error:
|
||||
|
||||
* (if using [CDN]({%slug getting-started/what-you-need%}#using-cdn)) Update the `telerik-blazor.js` file URL to the correct version.
|
||||
* (if using [CDN]({%slug common-features-cdn%})) Update the `telerik-blazor.js` file URL to the correct version.
|
||||
* (if using static assets) Clear the browser cache.
|
||||
* (if using a local JS file) Replace the `telerik-blazor.js` file with the new version.
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ The application is using an outdated CSS theme or swatch.
|
|||
|
||||
To resolve the problem, follow the [recommended UI for Blazor upgrade procedure]({%slug upgrade-tutorial%}):
|
||||
|
||||
* If using the [Telerik **CDN**]({%slug getting-started/what-you-need%}#cdn) - update the [stylesheet file URL]({%slug themes-swatch-distribution%}) to the correct version.
|
||||
* If using the [Telerik **CDN**]({%slug common-features-cdn%}) - update the [stylesheet file URL]({%slug themes-swatch-distribution%}) to the correct version.
|
||||
* If using a **local** CSS file in `wwwroot` - replace the stylesheet with a compatible one. If the application is using a [**custom theme**, then recreate it]({%slug themes-custom%}#import-custom-theme).
|
||||
* If using **static assets** from the NuGet package - clear the browser cache.
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ This error indicates that the app is using an old or wrong version of the `teler
|
|||
|
||||
To resolve the error:
|
||||
|
||||
* (if using [CDN]({%slug getting-started/what-you-need%}#using-cdn)) Update the `telerik-blazor.js` file URL to the correct version.
|
||||
* (if using [CDN]({%slug common-features-cdn%})) Update the `telerik-blazor.js` file URL to the correct version.
|
||||
* (if using static assets) Clear the browser cache.
|
||||
* (if using a local JS file) Replace the `telerik-blazor.js` file with the new version.
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ If you get an error similar to this one:
|
|||
|
||||
There can be two common causes for the problem:
|
||||
|
||||
* The Telerik services are not registered on the app, a line similar to `services.AddTelerikBlazor();` is missing. You can read more about where you need to add that in the [What You Need - Project Configuration]({%slug getting-started/what-you-need%}#configuring-the-project) article section.
|
||||
* The [Telerik services are not registered]({%slug getting-started/what-you-need%}#service) in the app, a line similar to `builder.Services.AddTelerikBlazor();` is missing.
|
||||
|
||||
* The application uses localization, or there is a code snippet that does (e.g., a grid with custom buttons that are localized, copied over from another place), but the current app does not provide the necessary project-specific service. You can read more about implementing one in the [Localization]({%slug globalization-localization%}) article.
|
||||
|
||||
|
|
|
@ -38,11 +38,11 @@ If you get such errors, the reason may be:
|
|||
|
||||
You can check if this is the case by inspecting the Network tab of your browser console to see if `telerik-blazor.js` is served successfully. Some common causes for the missing JS Interop file are:
|
||||
|
||||
* The application is missing references to the needed [assets]({%slug getting-started/what-you-need%}#adding-the-client-assets).
|
||||
* The application is missing references to the needed [assets]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files).
|
||||
|
||||
* Network setup blocks access to the cloud, and thus, to our CDN. If this is the case, you have two options:
|
||||
* Discuss the case with your network administrators to have our CDN allowed.
|
||||
* Use [static assets]({%slug getting-started/what-you-need%}#using-static-assets) from the app folder to avoid going to the cloud.
|
||||
* Use [static assets]({%slug getting-started/what-you-need%}#css-theme-and-javascript-files) from the app folder to avoid going to the cloud.
|
||||
|
||||
* The application was upgraded from a trial to a commercial license, but the path to the file was not. See the [Upgrade from Trial to Commercial]({%slug upgrade-tutorial%}#upgrade-from-trial-to-commercial) section for details.
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@ Regardless of the cause for the issue, it is recommended that you start from the
|
|||
* [Error `Unable to resolve ... . PackageSourceMapping is enabled`](#unable-to-resolve-package-due-to-packagesourcemapping)
|
||||
* [Error `Failed to retrieve information about ... from remote source`](#failed-to-retrieve-information-from-remote-source)
|
||||
|
||||
@[template](/_contentTemplates/common/general-info.md#status-telerik-com)
|
||||
|
||||
## Tips for Handling Common NuGet Issues
|
||||
|
||||
The most common reasons for issues with the private Telerik NuGet feed are related to:
|
||||
|
@ -76,10 +78,16 @@ Add-Type -AssemblyName System.Web
|
|||
|
||||
## Unable to Find Package
|
||||
|
||||
If the error occurs for the `Telerik.UI.for.Blazor` package, the [Telerik NuGet source]({%slug installation/nuget%}) may not be added or enabled. The possible causes are:
|
||||
If the error occurs for the `Telerik.UI.for.Blazor` package, it may look like this:
|
||||
|
||||
* Missing NuGet source configuration in the `NuGet.Config` file.
|
||||
* The correct `NuGet.Config` file is not used, because it is missing or misplaced. This is common Docker scenario and the solution is to copy the `NuGet.Config` file (or configure the NuGet source) explicitly during the Docker image build. You can also [reference the `NuGet.Config` file path explicitly in the `dotnet restore` command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore#options). For more information, see the [private NuGet feeds in Docker forum thread](https://www.telerik.com/forums/can-the-telerik-blazor-and-asp-net-tools-be-used-in-a-docker-container) and [some DevOps examples](https://github.com/LanceMcCarthy/DevOpsExamples).
|
||||
`error NU1101: Unable to find package Telerik.UI.for.Blazor. No packages exist with this id in source(s): nuget.org`
|
||||
|
||||
Such an error implies that the [Telerik NuGet source]({%slug installation/nuget%}) is not added or enabled. The possible causes are:
|
||||
|
||||
* Missing Telerik NuGet source configuration in the `NuGet.Config` file.
|
||||
* The correct `NuGet.Config` file is not used, because it is missing or misplaced.
|
||||
|
||||
If the error occurs in a Docker scenario, the solution is to copy the `NuGet.Config` file (or configure the NuGet source) explicitly during the Docker image build. You can also [reference the `NuGet.Config` file path explicitly in the `dotnet restore` command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore#options). For more information, see the [Docker section]({%slug deployment-ci-cd-build-pc%}#docker) in the deployment documentation and the [private NuGet feeds in Docker](https://www.telerik.com/forums/can-the-telerik-blazor-and-asp-net-tools-be-used-in-a-docker-container) forum thread.
|
||||
|
||||
If the error occurs for the [`Telerik.FontIcons` and `Telerik.SvgIcons` icon packages]({%slug common-features-icons%}), the NuGet client is not using `nuget.org` as a NuGet source. The possible causes are:
|
||||
|
||||
|
@ -94,9 +102,15 @@ In urgent cases, download the NuGet packages from your [Telerik Account **Downlo
|
|||
|
||||
## Package Version Not Found
|
||||
|
||||
You may encounter an error similar to `ProjectName depends on Telerik.UI.for.Blazor (>= 3.6.1) but Telerik.UI.for.Blazor 3.6.1 was not found. An approximate best match of Telerik.UI.for.Blazor 3.7.0 was resolved.`
|
||||
You may encounter an error similar to:
|
||||
|
||||
This error means that version `3.6.1` is outside the subscription period of your license.
|
||||
`ProjectName depends on Telerik.UI.for.Blazor (>= 5.1.1) but Telerik.UI.for.Blazor 5.1.1 was not found. An approximate best match of Telerik.UI.for.Blazor 6.0.2 was resolved.`
|
||||
|
||||
or
|
||||
|
||||
`error NU1102: Unable to find package Telerik.UI.for.Blazor with version (>= 5.1.1)`
|
||||
|
||||
This error means that version `5.1.1` is outside the subscription period of your license.
|
||||
|
||||
To solve the issue, use a different version or ask the license holder at your company to assign you another license that includes the desired product version.
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче