Mono(lc)

πŸ“¦
version 6.14.1 Β· 2 versions
  • 6.14.1 Β· alpine 3.24, arch rolling, debian bookworm, debian trixie, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 070715 Β· nixos 26.05, nixpkgs unstable
, in alpine 3.24, arch rolling, debian bookworm, debian trixie, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– Mono(lc) β€” like, the whole manual, but make it make sense πŸ’–

okay bestie, sit down, we're doing the lc manual and it's gonna be a whole vibe. this is Mono(lc), the page for the Mono License Compiler. no cap, it's shorter than it sounds. let's go 🫢


✨ NAME ✨

lc β€” Mono License Compiler. that's it. that's the name. iconic.


✨ SYNOPSIS ✨

lc -c filename -t targetassembly [-i reference...] [-v] [-o outputpath]
[-nologo]

look at her. all those little brackets are optional and she knows it πŸ’…


✨ DESCRIPTION ✨

so. lc is a license compiler for Mono. its whole job is taking a licenses.licx file and turning it into a resource you can embed into an executable. that's the tea πŸ“

here's the lore: when you're using commercial components for .NET, they often require a license resource at runtime, just to make sure the dev actually got licensed to use that control. the most common way of making sure the component was properly licensed is by using license resources. and at compile time, the developer uses the lc tool to convert a licenses.licx file into a programname.exe.licenses file, then embeds that as a managed resource during compilation. slay ✨


✨ RUNTIME OPTIONS ✨

the following options are available, and yes we're doing all of them:

  • --complist=filename, -c filename β€” this one is for specifying the input file, aka the licenses.licx file you want to create a license reesource for. this option is required, so don't skip her πŸ™ˆ. the license compiler reads each line in this file and tries to load the types specified on that line.
  • --target=assemblyname, -t targetassembly β€” the full assembly name with file extension for the target assembly. the license compiler uses this as a key when compiling the licenses, and it has to match the assembly the resource will be embedded in. also required. two required options, we love a demanding queen πŸ‘‘
  • --load=reference, -i reference β€” an assembly reference to load before trying to compile a license. you need this for assemblies where the references are not in the gac. compilers should pass all references to the license compiler, fr fr.
  • --verbose,,, -v β€” gives more verbose output about the license compiling process. (yes the double comma is in the manual. we don't ask questions, we just report the facts πŸ’€)
  • --help, -h β€” displays usage instructions. the classic. the goat.
  • --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. so like, you don't get to name it. she names it. periodt.
  • --nologo β€” do not emit the "Mono License Compiler" logo on stdout while compilng. (their spelling, not mine 😭) if you're tired of the logo, this is your girl.

✨ LICENSE FILES ✨

the format for the license files (licenses.licx) is the following:

# comment
namespace.type, assemblyname
namespace.type, full-assemblyname

all lines starting with a # are ignored. the first form requires that the assembly was loaded through the --load,-i option, but it does not require the full assembly name β€” only the first part.

the second form requires the full assembly name, including locale, version and publickeytoken. no shortcuts, no vibes, full name only πŸŽ€


✨ MAILING LISTS ✨

mailing lists are listed at http://www.mono-project.com/community/help/mailing-lists/ β€” go find your people πŸ¦‹


✨ WEB SITE ✨

http://www.mono-project.com


✨ SEE ALSO ✨


and that's the whole page, bestie!! πŸŽ€ that footer energy at the bottom β€” the source/version and date line β€” is literally just Mono(lc), so consider this your cute sign-off: you've been reading the Mono(lc) manual, brought to you by the Mono crew, dated the same as it ever was. now go compile something iconic πŸ’–βœ¨πŸ‘‘