README.md |
---|
NuGet Packages for the DevExpress .NET Components - http://www.devexpress.com.
Here are unofficial NuGet specification files (nuspec) that I've created in order to generate NuGet packages for the .NET components developed by DevExpress.
If DevExpress ever authorizes me to publicly distribute their assemblies in NuGet packages, I'll be happy to publish them on the NuGet.org feed. In the meantime, if you are a DevExpress licensed user, feel free to use these nuspec files to generate the packages and host on your own private/company feed.
If you too think that DevExpress should provide us with official NuGet packages for their .NET components, send an e-mail to management@devexpress.com, or post a comment on their forum.
Please note that according to DevExpress EULA, every person working with DevExpress components should have a separate license. To properly register our components on your machine, use the DevExpress installer as described in the How to activate my DevExpress license article. Working with DevExpress components using libraries got from NuGet without proper registration may result in licensing violation.
I've created one NuGet package specification for every single assembly included in the DevExpress .NET controls, which in turn can be used to generate a NuGet package.
For example, the file nuspec\Unofficial.DevExpress.Xpf.Ribbon.nuspec
is the corresponding NuGet specification for the assembly DevExpress.Xpf.Ribbon.v19.1.dll
.
The dependencies between NuGet packages are created based on direct references to other DevExpress assemblies.
For example, if the assembly DevExpress.Xpf.Ribbon.v19.1.dll
directly references DevExpress.Data.v19.1.dll
, DevExpress.Mvvm.v19.1.dll
and DevExpress.Xpf.Core.v19.1.dll
, the NuGet specification will declare a dependency to each of the three NuGet packages corresponding to these assemblies:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Unofficial.DevExpress.Xpf.Ribbon</id>
<version>19.1.6.0</version>
<!-- ... (omitted for brevity) -->
<dependencies>
<group targetFramework=".NETFramework4.0">
<dependency id="Unofficial.DevExpress.Xpf.Core" version="19.1.6.0" />
<dependency id="Unofficial.DevExpress.Data" version="19.1.6.0" />
<dependency id="Unofficial.DevExpress.Mvvm" version="19.1.6.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="lib\DevExpress.Xpf.Ribbon.v19.1.dll" target="lib\net40" />
<file src="lib\DevExpress.Xpf.Ribbon.v19.1.xml" target="lib\net40" />
</files>
</package>
- src
- lib
- This is where you put the DevExpress assemblies before you generate the NuGet packages. You will typically copy the contents of the folder
C:\Program Files (x86)\DevExpress 19.1\Components\Bin\Framework
and paste it here, including sub-folders;
- This is where you put the DevExpress assemblies before you generate the NuGet packages. You will typically copy the contents of the folder
- nupkg
- This is the output folder where the NuGet packages will be generated;
- nuspec
- This is where all the NuGet specification files are;
- tools
- This contains a simple Powershell script used by the NuGet packages related to assemblies that are only needed for design-time (i.e. assemblies in
lib\Design
). This script runs during the installation of these packages only to set theCopyLocal
attribute of these assemblies tofalse
, given that they are not meant to be deployed with the application.
- This contains a simple Powershell script used by the NuGet packages related to assemblies that are only needed for design-time (i.e. assemblies in
- lib
To generate all NuGet packages, just run the powershell file src\nuget-pack.ps1
, or if you prefer to manually generate specific packages, just use the nuget.exe
command line utility. For example:
nuget.exe pack ".\src\nuspec\Unofficial.DevExpress.Data.nuspec" -BasePath ".\src" -OutputDirectory ".\src\nupkg"
-
The nuspec files are currently being generated by a quick-and-dirty C# app that I wrote, which is not ready to be shared with the world :). Once I get some free time to rewrite it (or make it a Powershell script), I'll definitely publish it here;
-
The language-specific assemblies for German, Spanish, Japanese, and Russian are currently not being included in any of the NuGet packages;
-
I use a very specific set of components, which means that there are a number of NuGet packages that I have not extensively tested. You've been warned;
-
Instead of generating a NuGet package for every assembly, the script could analyze the dependency chain and build clusters when possible - I'm not sure if it is worth the effort, though. I'm interested in hearing your opinion.
Please report any issues you find and I'll try to fix as soon I can, and remember you can always send a pull-request ;).
Click on the Releases tab on GitHub.
Copyright © 2014-2020 C. Augusto Proiete & Contributors - Provided under the Apache License, Version 2.0.
The DevExpress components and trademark are Copyright (C) 2000-2020 Developer Express Inc. and their end-user license agreement is available at https://www.devexpress.com/Support/EULAs/NetComponents.xml.