What does Licenses.licx really do for DevExpress controls? I deleted all the lines in the licenses.licx and there is no difference. I successfully compiled and run my application. I am suprised with this behavior. Can anyone explain me the details about what is happening?
-
Have you run the application on the same development machine where DevExpress components are installed? – Steve Mar 02 '12 at 22:11
-
@Steve yes, I run the application on the same development machine. I also run the application on a machine where devexpress is not installed. I just copied the related devexpress dlls. – mkus Mar 02 '12 at 22:17
-
2Licenses are normally checked at design time, not runtime. The developer pays, not the developer's customer. – Hans Passant Mar 02 '12 at 22:32
-
1@Hans, something not quite right. It is assumed that LC.exe insert the licenses of individual components in the application resources. If the file is empty, LC.EXE inserts nothing. So when the application is run should fail or warn our users that we are using components that are not licensed. – Steve Mar 02 '12 at 23:37
2 Answers
Take a look at this post on the DX forum:
The licenses.licx file contains licensing information about controls used in the your application. It is then compiled into the App_Licenses.dll. It should be deployed along with your web site when you deploy the project. If you need to regenerate the App_Licenses.dll, right click the licenses.licx file in the solution explorer and choose the "Build Runtime Licences" command.

- 9,186
- 4
- 33
- 49
-
-
1@JoePhilllips Install the [EmptyLicensesLicx][1] nuget package, and it will generate an empty `Licenses.licx` in your project, before it gets compiled (which is all you need). [1]: https://www.nuget.org/packages/EmptyLicensesLicx/ – C. Augusto Proiete Nov 24 '16 at 22:31
Reading from DX blog the licence file is generated by Visual studio at design time, and burned into the assembly at compile time.
Licenses.licx is actually a file in your solution (if you cannot see it there, click Show All Files). Visual Studio uses a program called lc.exe to compile the licenses into embedded resources in your application
You can change its value if you want:
Here's an example of a line in a licenses.licx file.
DevExpress.XtraCharts.Web.WebChartControl, DevExpress.XtraCharts.v8.2.Web, Version=8.2.4.0, Culture=neutral, PublicKeyToken=9b171c9fd64da1d1
The first value in this comma delimited list is the class, the second is the assembly where it's found, and the other values are the rest of the assembly's strong name. I'm sure you can see problems already, especially when you upgrade a solution to the latest versions of the third-party controls you use. If you want, you can edit this file and remove the strong name parts with no problem.
Be aware that there are known issues when it comes to source control:
The thing is Visual Studio has a propensity of touching this file if you open the solution (that's "touching" as in changing the file date to the current date/time). This plays havoc with licensing, especially if you happen open the solution on a non-licensed machine and you are using source control. Suddenly your build machine will throw off these "cannot transform" messages and you're left wondering what went wrong. Another prevalent issue is when you have a team of developers working on a solution: they're all unconsciously "modifying" this file.

- 5,393
- 9
- 44
- 53

- 11,099
- 5
- 40
- 54