lc - Mono License Compiler
lc -c filename -t targetassembly [-i reference...] [-v] [-o outputpath]
tool is a license compiler for Mono. It's used to convert a
licenses.licx file to a resource that can be embedded into an executable.
When using commercial components for .NET they often require a license resource
at runtime to make sure the developer was licensed to use this control. The
most common way of making sure the component was properly licensed is by using
license resources. At compile time the developer uses the lc
convert a licenses.licx file to a programname.exe.licenses file and embed that
as a managed resource during compilation.
The following options are available:
- --complist=filename, -c filename
- This option is used to specify the input file, the licenses.licx file to
create a license reesource for. This option is required. The license
compiler will read each line in this file and try to load the types
specified on that line.
- --target=assemblyname, -t targetassembly
- full assembly name with file extension for the target assembly. The
license compiler uses this as a key when compiling the licenses. It has to
match the assembly the resource will be embedded in. This option is
- --load=reference, -i reference
- Assembly reference to load before trying to compile a license. This option
is needed for assemblies where the references are not in the gac.
Compilers should pass all references to the license compiler.
- --verbose,, -v
- Gives more verbose output about the license compiling process.
- --help, -h
- Displays usage instructions.
- --outdir=path, -o path
- Target path file the licenses resource. By default the license compiler
emits the resource in the current directory. The filename will always
match the target assembly passed to --target with .licenses added.
- Do not emit the "Mono License Compiler" logo on stdout while
The format for the license files (licenses.licx) is the following:
All lines starting with a # are ignored. the first form requires that the
assembly was loaded through the --load,-i option but does not require the full
assembly name, only the first part.
The second form requires the full assembly name including locale, version and
Mailing lists are listed at the