Lc.exe (License Compiler)
The License Compiler reads text files that contain licensing information and produces a binary file that can be embedded in a common language runtime executable as a resource.
A .licx text file is automatically generated or updated by the Windows Forms Designer whenever a licensed control is added to the form. As part of compilation, the project system will transform the .licx text file into a .licenses binary resource that provides support for .NET control licensing. The binary resource will then be embedded in the project output.
Cross compilation between 32-bit and 64-bit is not supported when you use the License Compiler when building your project. This is because the License Compiler has to load assemblies, and loading 64-bit assemblies from a 32-bit application is not allowed, and vice versa. In this case, use the License Compiler from the command line to compile the license manually, and specify the corresponding architecture.
The License Compiler is automatically installed with Visual Studio. To start the License Compiler, use the Visual Studio and Windows SDK Command Prompts. At the command prompt, type the following:
lc /target:targetPE /complist:filename [/outdir:path]
/i:modules [/nologo] [/v]
Option |
Description |
---|---|
/complist:filename |
Specifies the name of a file that contains the list of licensed components to include in the .licenses file. Each component is referenced using its full name with only one component per line. Command-line users can specify a separate file for each form in the project. Lc.exe accepts multiple input files and produces a single .licenses file. |
/h[elp] |
Displays command syntax and options for the tool. |
/i:module |
Specifies the modules that contain the components listed in the /complist file. To specify more than one module, use multiple /i flags. |
/nologo |
Suppresses the Microsoft startup banner display. |
/outdir:path |
Specifies the directory in which to place the output .licenses file. |
/target:targetPE |
Specifies the executable for which the .licenses file is being generated. |
/v |
Specifies verbose mode; displays compilation progress information. |
/? |
Displays command syntax and options for the tool. |
Example
If you are using a licensed control MyCompany.Samples.LicControl1 contained in Samples.DLL in an application called HostApp.exe, you can create HostAppLic.txt that contains the following.
MyCompany.Samples.LicControl1, Samples.DLL
Create the .licenses file called HostApp.exe.licenses using the following command.
lc /target:HostApp.exe /complist:hostapplic.txt /i:Samples.DLL /outdir:c:\bindir
Build HostApp.exe including the .licenses file as a resource. If you were building a C# application you would use the following command to build your application.
csc /res:HostApp.exe.licenses /out:HostApp.exe *.cs
The following command compiles myApp.licenses from the lists of licensed components specified by hostapplic.txt, hostapplic2.txt and hostapplic3.txt. The modulesList argument specifies the modules that contain the licensed components.
lc /target:myApp /complist:hostapplic.txt /complist:hostapplic2.txt /complist: hostapplic3.txt /i:modulesList
See Also
Reference
Visual Studio and Windows SDK Command Prompts