Rebuild DevExpress Assemblies and NuGet Packages from Source Code
- 5 minutes to read
Terms and Conditions for Licensed Users
Users that own a DevExpress Universal or DXperience subscription can modify DevExpress source code and recompile DevExpress .NET assemblies and NuGet packages, with the following limitations:
- You can recompile the source code only for a licensed version that you have purchased.
- You can modify our source code and redistribute the modified libraries. You cannot distribute DevExpress source code.
- You cannot recompile DevExpress source code for resale or for any unauthorized purpose.
For more information, please refer to the DevExpress End User License Agreement. You can find a copy in your installation folder or visit our website to review license agreements for the most recent versions of DevExpress products: DevExpress End User License Agreements.
DevExpress Source Builder
The DevExpress Source Builder ships as part of the DevExpress Unified Component Installer: “~\DevExpress 24.2\Components\Tools\Components\DevExpress.SourceBuilderTool.exe”.
Prerequisites
The DevExpress Source Builder has the following system and environment requirements:
- Visual Studio 2022 and ASP.NET MVC 3 (if you rebuild DevExpress MVC projects)
- .NET Desktop Build Tools and Node.js Build Tools
- .NET 8 SDK and .NET Framework 4.6.2 Developer Pack (download)
NuGet.exe
version 6.0 or higher must be in the same folder as DevExpress.SourceBuilderTool.exe (download nuget.exe).- Node Package Manager (NPM) (install npm)
Note
DevExpress.Data.v24.2.dll
and DevExpress.Build.XamlResourceProcessing.v24.2.dll
must be installed in the Global Assembly Cache (GAC).
Rebuild Assemblies and NuGet Packages
Run the following command with admin rights to rebuild DevExpress assemblies and NuGet packages (including localized assemblies/packages for German (DE), Japanese (JA), and Spanish (ES), which ship as part of DevExpress products):
DevExpress.SourceBuilderTool.exe path_to_sources [--external] [path_to_external_libraries] [--sg] [--gac] [--nuget]
# Example:
# DevExpress.SourceBuilderTool.exe "c:\program files\devexpress 24.2\components\sources" --nuget
path_to_sources
- The path to DevExpress source code. The default path is “C:\Program Files\DevExpress 24.2\Components\Sources”. This is a required parameter.
--external path_to_external_libraries
(Optional)Specifies the path to external libraries on which the source code depends.
This is a required parameter if external libraries are necessary for building the sources.
--sg
(Optional)Do not regenerate ~\DevExpress 24.2\Components\Sources\DevExpress.Key\StrongKey.snk.
When building libraries for the .NET Framework, libraries are signed with a key located in this path. Initially the path is empty. The Source Builder creates a new key when you run the build. Specify the
-sg
parameter if you do not want to regenerate the key to preserve a key from a previous build (for example, to allow assemblies from one build to reference assemblies from another).Important
Do not specify the
-sg
parameter when rebuilding DevExpress assemblies and NuGet packages for the first time (until the key has been created).--gac
(Optional)- Copies compiled assemblies to the Global Assembly Cache (GAC), making them available system-wide.
--nuget
(Optional)Rebuilds existing DevExpress NuGet packages contained in “~\DevExpress 24.2\Components\System\Components\packages”.
Important
NuGet.exe
version 6.0 or higher must be in the same folder as DevExpress.SourceBuilderTool.exe (download nuget.exe).
After the Source Builder has rebuilt DevExpress assemblies and NuGet packages, it places them in the following folders:
- .NET Framework Assemblies: ~\DevExpress 24.2\Components\bin\Framework
- .NET Assemblies: ~\DevExpress 24.2\Components\bin\NetCore-rebuilt
- NuGet Packages: ~\DevExpress 24.2\Components\System-rebuilt\Components\packages
Note
Rebuilt DevExpress NuGet packages contain -rebuilt in the name.
Example: DevExpress.AIIntegration.24.2.3-rebuilt.nupkg
Troubleshooting
If the build fails, the Source Builder generates a log.txt file in the same folder. This file contains the build log and error details.
Specific Notes & Limitations
- The DevExpress Source Builder does not rebuild design-time assemblies and NuGet packages for WPF projects.
- DevExpress does not provide unit, functional, or other tests.
DevExpress is not responsible for custom code or for modifications made to DevExpress source code. Once you modify our source code, future product compatibility is at risk.
If you recompile our source code (to add new functionality or alter component behavior), you may encounter unanticipated maintenance/upgrade costs. If you believe that you have no choice but to recompile our source code, please contact the DevExpress Support Team first. We may be able to recommend an alternative solution that does not affect your ability to update DevExpress products in your projects to newer versions.
- While we allow modifications to our C# source code, we do not allow changes to our client scripts. For example, when we build our Blazor source code, we generate a NuGet package, scripts, styles, and so on. We take client artifacts from the release package and add them to the rebuilt package.
Rebuild DevExtreme/ASP.NET Core Assemblies
The sources for DevExtreme ASP.NET Controls are installed in a separate sub-folder. To rebuild related assemblies and NuGet packages from their source code, do the following:
Unzip the DevExtreme ASP.NET Controls sources from:
c:\Program Files\DevExpress 24.2\DevExtreme\Sources\DevExtreme.AspNet\DevExtreme.AspNet.zip
into:
c:\Program Files\DevExpress 24.2\DevExtreme\Sources\DevExtreme.AspNet\DevExtreme.AspNet
Specify the modified nupkg version within the related csproj file:
c:\Program Files\DevExpress 24.2\DevExtreme\Sources\DevExtreme.AspNet\DevExtreme.AspNet\DevExtreme.AspNet.Mvc\AspNetCore\DevExtreme.AspNet.Core\DevExtreme.AspNet.Core.csproj
with:
<Version>24.2.1-rebuilt</Version>
Rebuild and pack the csproj into a new nupkg via a Solution Explorer ->
Rebuild
andPack
(or clidotnet build
anddotnet pack
) commands into a new nupkg:.NET Assembly:
\DevExtreme.AspNet.Mvc\AspNetCore\DevExtreme.AspNet.Core\bin\Debug\net8.0\DevExtreme.AspNet.Core.dll
NuGet Package:
\DevExtreme.AspNet.Mvc\AspNetCore\DevExtreme.AspNet.Core\bin\Debug\DevExtreme.AspNet.Core.24.2.1-rebuilt.nupkg
Place the new nupkg in the machine-wide NuGet feed or the feed/folder set by your application.
Build .NET MAUI Controls from Source Code
Refer to the Build Controls from Sources topic for more information.
Debug Source Code
To debug DevExpress .NET source code, use our PDB files (or you can also generate your own PDB files). You should not recompile DevExpress source code to debug DevExpress components.