Since TX Text Control 30.0, all platform products including Windows Forms, WPF and ASP.NET support multiple .NET Framework versions including 4.8, .NET 5 and .NET 6. For that reason, the setup of TX Text Control doesn't register the assemblies in the GAC (global assembly cache) anymore. This change leads to several required changes for the licensing of TX Text Control in different .NET application types.
Changes in Licenses.licx
A very important change are the required entries in the licenses.licx file.
What is the licenses.licx?
The licenses.licx file is not a TX Text Control specific file, but a Visual Studio file that is used by lc.exe (which is part of the .NET SDK) to compile the licenses into the resources of the calling assembly.
Before version 30.0, it was possible to add the licensed assemblies without a version number. Now that the assemblies are no longer registered in the GAC, the full version number must be added. The following example shows entries for the Windows Forms TXTextControl.Windows.Forms, the TXTextControl.Windows.Forms.Ribbon.Ribbon and the ServerTextControl:
TXTextControl.ServerTextControl, TXTextControl.Server, Version=30.0.1500.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638 | |
TXTextControl.TextControl, TXTextControl.Windows.Forms, Version=30.0.1500.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638 | |
TXTextControl.Windows.Forms.Ribbon.Ribbon, TXTextControl.Windows.Forms, Version=30.0.1500.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638 |
If the version number is not included and you have an older version of TX Text Control installed, you will receive a licensing error as an older version (that has been found in the GAC) will be included.
Building License Files
If you need to build your license files manually using lc.exe, it is required to include the full path to the modules listed in the /i flags. Otherwise, an older version from the GAC might be used.
Why would I generate a license file manually?
For specific tasks, a license file must be generated manually. For example, if TX Text Control is used in a project that is compiled on a build server as part of a CI pipeline. Read more here:
Using TX Text Control .NET Server with Build Servers for Continuous Integration
The following command can be used to generate the license file for the above referenced assemblies. To specify more than one module like in this sample, use multiple /i flags.
lc.exe /target:MyApplication.exe /complist:licenses.licx /i:"C:\Program Files\Text Control GmbH\TX Text Control 30.0.NET for Windows Forms\Assembly\TxTextControl.Windows.Forms.dll" /i:"C:\Program Files\Text Control GmbH\TX Text Control 30.0.NET for Windows Forms\Assembly\TXTextControl.Server.dll"
In order to use the above command, open a command prompt and execute the command in the according BIN folder of your application (the folder that contains the calling assembly DLL or EXE). Make sure that the licenses.licx is also in the same folder.