Security, Licensing, and Troubleshooting
- 6 minutes to read
Licensing
If you are working within a team, a license holder (typically a team lead or executive) assigns individual DevExpress licenses to each developer using the Assign Licenses menu on our website. An individual DevExpress license assigned to a developer grants this developer the right to use the DevExpress Unified Component Installer or install packages from NuGet.org.
Which license key should a team of multiple developers use for a shared CI/CD pipeline?
For a shared CI/CD pipeline, an individual developer (such as a team lead) can use their personal .NET or DevExtreme license key. The same developer can also use their licensed DevExpress products in Visual Studio or another IDE. All other developers on the team that use DevExpress products must also have valid DevExpress licenses.
If the primary license owner has assigned all available licenses to developers on a team, the license owner cannot use their individual .NET or DevExtreme license key for a shared CI/CD pipeline or any other development purposes. Primary license owners without a license cannot install DevExpress products (whether through NuGet or the Unified Component Installer). For additional license-related information, please refer to the following webpage: Licensing: EULAs and FAQ | DevExpress.
How do I find unlicensed DevExpress packages in my project?
To help avoid unintentional license/EULA violations, we send an email notification when a NuGet package trial begins: How to Install DevExpress Products. Applications that reference DevExpress trial packages display trial/eval banners and watermarks: When using a trial version.
Users sometimes mistake certain features for capabilities that ship as part of DevExpress DXperience or our platform-specific subscriptions. Check your projects for the following to avoid unintended use or a license/EULA violation:
DevExpress Office File API
The
DevExpress.Document.ProcessorNuGet package (orDevExpress.Docs.v26.1.dllin .NET Framework) ships as part of the Universal Subscription and the Office File API Subscription. DXperience, WinForms, WPF, ASP.NET and Blazor, Reporting, and DevExtreme Complete subscriptions do not include the DevExpress Office File API (for example, PdfDocumentProcessor, Workbook/Worksheet, Zip Compression, Barcode Generation, Unit Conversion, and Excel ExportExcel Export, RichEditDocumentServer APIs).DevExpress Business Intelligence Dashboard
The
DevExpress.Dashboard.CoreNuGet package (orDevExpress.Dashboard.v26.1.Core.dllin .NET Framework) ships as part of the DevExpress Universal Subscription. DXperience and platform-specific subscriptions do not include BI Dashboard.XAF (Cross-Platform .NET UI & Web API)
The
DevExpress.ExpressAppNuGet package (orDevExpress.ExpressApp.v26.1.dllin .NET Framework) ships as part of the DevExpress Universal Subscription. DXperience and platform-specific subscriptions do not include XAF (Cross-Platform .NET UI & Web API).
If you are unsure whether your code uses APIs from these DevExpress packages, you can search for and remove them by using Solution Explorer. Compilation errors in your project will display API usage location.
Note
DevExpress license terms (as defined in the DevExpress EULA) prohibit the use of a single DevExpress license by multiple software developers (for build and development purposes within Visual Studio or other IDEs). Each engineer who develops solutions using DevExpress products must own/purchase a valid license.
If you own the appropriate number of DevExpress licenses, but need licensing related clarification for your CI/CD system, be sure to submit a support ticket via the DevExpress Support Center. We’ll do our best to accommodate your specific business requirements (where possible). If you have licensing related questions, please refer to the following webpage: Licensing: EULAs and FAQ | DevExpress.
Reliability
I cannot use the NuGet.org. I want to set up my own NuGet server.
We do not recommend setting up a NuGet server because of additional maintenance requirements (including the need to maintain package sync between your server and our latest versions). However, this setup can be beneficial in high-security environments without Internet access, or in advanced CI/CD system scenarios where internal package caching is necessary to improve performance\security. You can obtain our NUPKG files from c:\Program Files\DevExpress 26.1\Components\System\Components\packages\setup and set up your own NuGet server.
Read the following help topic for additional information: Hosting your own NuGet feeds.
Tip
If you do not require a remote or online NuGet server, consider using the Installer-Generated Local NuGet Feed for a simpler setup.
Cache NuGet packages for the best performance and reliability
We strongly recommend that you configure your CI/CD pipelines to cache NuGet packages. Caching NuGet packages will help your team reduce build time and also avoid downtime should outages occur. For instance, with Azure DevOps, you can follow best practices outlined in the following document: Cache NuGet packages | Microsoft Azure DevOps documentation. Contact your CI/CD system vendor for additional information/guidance or review our NuGet feed integration help topic for technical assistance.
Troubleshooting
Unable to find package ‘DevExpress.XXX’. Existing packages must be restored before performing an install or update (Visual Studio or CI/CD).
If you encounter package installation or update issues in Visual Studio or CI/CD, reset your NuGet package cache with the dotnet tool in Visual Studio itself. In Visual Studio 2017 and higher, you must:
- Navigate to Tools | NuGet Package Manager and click Package Manager Settings.
- Click Clear All NuGet Storage.
Read the following Microsoft help topic for additional information in this regard: Clearing local folders.
I use VS Code/JetBrains Rider. How to set up the DevExpress NuGet online feed in VS Code/JetBrains Rider?
Read the following sections to register the DevExpress NuGet feed and add DevExpress NuGet packages to your project:
Unable to read data from transport connection: ‘An existing connection was forcibly closed by the remote host’.
This error may be unrelated to DevExpress. Reports related to this type of exception can be found in the following public resources:
- NuGet.exe from command line gives “existing connection was forcibly closed by the remote host” error
- Nuget.exe: An existing connection was forcibly closed by the remote host
- Error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host
- How to enable TLS 1.2 on clients
Review standard NuGet issues (with NUxxx error codes) if this topic did not address your specific NuGet-related issue.
If you are experiencing NuGet errors, please isolate the error and search public resources for additional guidance (the following Microsoft article should help you isolate non-DevExpress-related issues): Errors and warnings.