Skip to Content
Nueva versión 12 disponible 🎉

Referencia de línea de comandos Server

Todas las opciones de la línea de comandos lic, agrupadas como en la salida de lic —help.

lic <assembly|licensefile> [<other assemblies>...] [options]

El primer argumento es el ensamblado al que se destina la licencia, del que lic anota en la licencia el nombre, la versión, la configuración regional y el token de clave pública, o bien un archivo de licencia existente, XML o de cadena, que se va a actualizar o verificar. Los demás ensamblados añaden también su identidad a la licencia. Los argumentos obligatorios se muestran entre corchetes angulares y los opcionales entre corchetes; un prefijo --[no] señala una opción que se puede negar.

Las opciones se pueden abreviar hasta su prefijo más corto que no sea ambiguo, de modo que --comp selecciona --component, y varias tienen un alias, que aparece entre paréntesis en los encabezados de más abajo. Las opciones de clave-valor, como --licensee y --trial, se repiten una vez por cada par. Las fechas aceptan cualquier cadena de fecha y hora que la configuración regional actual sepa interpretar, e ISO 8601 (2027-09-01) funciona siempre.

Ejecute lic --help <option> para ver la descripción ampliada de una opción, o lic --help --format json para obtener el conjunto completo de opciones como documento legible por máquina; consulte Modo compatible con IA.

Varios

—help [option] (-h, -?)

Muestra el mensaje de uso con todas las opciones y una descripción breve. Con el nombre de una opción, muestra la descripción ampliada de esa opción. Combinada con --format json o ndjson, emite el esquema de opciones en JSON.

lic --help lic --help sign lic --help --format json

Muestra o suprime el banner de copyright al inicio. El banner está activado de forma predeterminada y se suprime siempre en los modos de salida json y ndjson.

—license [path]

Sin argumento, muestra la licencia con la que se ejecuta lic y termina. Con un argumento, indica a la herramienta dónde está su propia licencia: la ruta de un archivo de licencia, una carpeta en la que buscar babel.licenses, o env:VARIABLE para leer una clave de licencia de una variable de entorno. La opción se puede repetir. Sin ella, la herramienta busca babel.licenses junto a su ejecutable y después en la ruta indicada por BABEL_LICENSE_PATH.

lic --license lic MyApp.dll --license /opt/babel/babel.licenses ... lic MyApp.dll --license env:BABEL_LICENSE ...

—verbose <n> (-v)

Establece el nivel de detalle de la consola. 0 no muestra nada, 1 (predeterminado) muestra los mensajes normales y un valor superior a 10 añade la salida de depuración, que incluye un volcado de todas las variables de entrada.

—version

Muestra la versión del ensamblado, del producto y del archivo, y termina. Con --format json, emite la versión, el entorno de ejecución y la plataforma en JSON.

—noconfig

Omite los valores predeterminados de las opciones guardados en el archivo de configuración de la herramienta (lic.exe.config).

—format <name> (—fmt)

Formatos de salida de la CLI disponibles desde la versión 11.8.

Selecciona el formato de salida de la licencia o el formato de salida de la línea de comandos. Los dos conjuntos de valores son disjuntos, así que una sola opción cubre los dos, y ambos pueden aparecer en la misma línea de comandos.

ValorSignificado
xmlPredeterminado. Un archivo de licencia XML (.licenses), el formato que el cliente Babel.Licensing valida desde un archivo.
serialUna licencia de cadena en la codificación de cadena predeterminada, adecuada para un número de serie que el usuario escribe.
base32Una licencia de cadena codificada en Base32 (letras mayúsculas y dígitos).
asciiUna licencia de cadena codificada en ASCII legible, el más compacto de los formatos de cadena.
textSalida de la línea de comandos: la salida de consola predeterminada, legible por personas.
jsonSalida de la línea de comandos: un único documento JSON en la salida estándar, conforme a lic.cli.v1.
ndjsonSalida de la línea de comandos: JSON delimitado por saltos de línea, un evento por línea, transmitido a medida que se produce.

Las licencias de cadena se escriben en el archivo de --output como una sola línea de texto. Llevan el mismo contenido que la forma XML y se validan del mismo modo, mediante StringLicense en la biblioteca cliente.

lic MyApp.dll --keyfile ecdsa.pem --sign --format serial --output MyApp.serial lic MyApp.dll --keyfile keys.pem --sign --format json --quiet --strict-exit lic MyApp.dll --keyfile ecdsa.pem --sign --format base32 --format ndjson

—keygen [type] (—kg)

Genera un par de claves nuevo y lo escribe en formato PEM en el archivo indicado por --keyfile. El tipo es rsa (predeterminado) o ecdsa. Use --keysize para elegir la robustez; la clave privada del archivo firma las licencias y debe mantenerse en secreto, mientras que --publickey extrae la mitad pública para la aplicación.

lic --keygen rsa --keysize 2048 --keyfile keys.pem lic --keygen ecdsa --keysize 256 --keyfile ecdsa.pem

Las claves RSA firman licencias XML con el algoritmo rsa o dsig; las claves ECDSA producen las licencias de cadena más cortas y son la elección habitual para los números de serie.

—keysize <size> (—ks)

Establece el tamaño de la clave para --keygen. RSA acepta tamaños de 384 a 4096 bits; ECDSA acepta 112, 192, 256, 384 o 521 bits. Una clave ECDSA mayor produce un número de serie más largo.

—[no]keyinfo

Indica si se incluye la información de la clave pública en el elemento de la firma RSA de una licencia XML. Se puede omitir cuando el ensamblado con licencia tiene un nombre seguro, porque el cliente extrae la clave pública RSA del nombre seguro para validar la licencia.

—publickey (—pk)

Muestra la clave pública del par de claves indicado con --keyfile, para claves RSA, ECDSA y de firma digital XML. Incruste este valor en la aplicación, que lo usa para validar las licencias.

lic --publickey --keyfile keys.pem

—[no]xmldeclaration

Indica si se escribe la declaración XML al principio de un archivo de licencia XML. Activada de forma predeterminada.

—encoding <name>

Establece la codificación de caracteres del archivo de licencia XML, por el nombre de la codificación (utf-8, utf-16, us-ascii y cualquier otra codificación registrada en el equipo). De forma predeterminada el archivo se escribe en UTF-16 con una marca de orden de bytes; pase utf-8 para obtener un archivo más fácil de inspeccionar y de incrustar.

—showhardwareinfo (—show-hardware-info)

Muestra la información a partir de la cual se calcula la clave de hardware en el equipo actual: nombre del sistema, UUID, fabricante, nombre del producto, números de serie de la BIOS y de la placa base, sistema operativo, memoria, si se detecta una máquina virtual y la identidad de la CPU. Es útil en los casos de soporte en los que una licencia vinculada al hardware no supera la validación.

—hardwareid <component> (—hardware-id, —hwid)

Calcula la clave de hardware del equipo actual y la muestra como HardwareKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. La lista opcional de componentes selecciona de qué se deriva la clave: cpu, ethernet (dirección MAC), disk (número de serie), motherboard, bios, computername (predeterminado) o all. La clave es lo que se pasa a --hardware key= al emitir una licencia vinculada al hardware, y lo que la aplicación calcula con los mismos componentes en el momento de la validación.

lic --hardwareid cpu,disk,computername

—salt [hex string|size] (-s)

Añade datos aleatorios al cálculo de la clave de hardware, de modo que dos productos vinculados al mismo equipo no compartan la misma clave. Pase una cadena hexadecimal para usar una sal fija, o un tamaño para generar una; la sal generada se muestra como Salt= y debe volver a usarse en el momento de la validación.

—register <assembly>

Carga un ensamblado de extensión antes del procesamiento. Una extensión puede proporcionar tipos de restricción personalizados para --restriction, proveedores de firma personalizados para --sign y servicios como una identificación de hardware alternativa. La opción se puede repetir.

—[no]quiet (-q)

Disponible desde la versión 11.8.

Suprime el banner de copyright y todas las solicitudes interactivas, de modo que el comando nunca se bloquea a la espera de una entrada: si falta --keypwd, se produce un error explícito en lugar de pedirse la contraseña. Está pensada para los pipelines de CI y las ejecuciones desatendidas. Consulte Modo compatible con IA.

—[no]strict-exit

Disponible desde la versión 11.8.

Devuelve un código de salida semántico en lugar de los predeterminados, 0 para el éxito y 1 para cualquier fallo: 10 argumentos no válidos, 20 archivo de entrada no encontrado, 30 fallo en el procesamiento de la licencia, 40 fallo de licencia de la herramienta, 50 fallo de clave o de firma. Los códigos coinciden con los del ofuscador. Consulte Modo compatible con IA.

Licencia

—id [licid]

Establece el identificador de la licencia. Sin argumento se genera un identificador nuevo. El identificador es lo que usan --update y --verify para referirse a una licencia dentro de un archivo que contiene varias.

—type <type>

Establece el tipo de licencia, un texto libre como Standard, Professional o Trial que la aplicación puede leer para seleccionar una edición.

—sites <number>

Establece el número de sitios, o puestos, que cubre la licencia.

—issuedate [date]

Establece la fecha de emisión. Sin argumento se usan la fecha y la hora actuales.

—expiredate <date>

Establece la fecha de caducidad, como cadena de fecha y hora o como número de días a partir de hoy.

lic MyApp.dll --expiredate 2027-09-01 ... lic MyApp.dll --expiredate 365 ...

—supportexpiredate <date>

Establece la fecha en la que vence el soporte del producto, con independencia de la propia licencia.

—[no]assembly <file|name> (—asm, —no-asm)

Añade a la licencia la identidad de otro ensamblado, a partir de un archivo o de un nombre de ensamblado; la opción se puede repetir y acepta comodines. --noassembly quita toda la información de ensamblados, lo que produce una licencia que no está ligada a un ensamblado concreto.

lic MyApp.dll --assembly "MyApp.Core, Version=2.1.0.0" ... lic MyApp.dll --assembly "*, Version=" ... lic MyApp.dll --noassembly ...

—licensee <key=value>

Establece la información del titular de la licencia, un par por opción: id, name, company y email.

lic MyApp.dll --licensee id=C-1001 --licensee name="Contoso" --licensee company="Contoso Ltd" --licensee email=info@contoso.com ...

—product <key=value>

Establece la información del producto, un par por opción: id, name, version, copy (aviso de copyright), descr (descripción) y url.

lic MyApp.dll --product id=MYAPP --product name="MyApp" --product version=2.1 --product url=https://contoso.example ...

—component <name>

Añade un componente con licencia, para los productos que licencian componentes o módulos individuales de un ensamblado. La opción se puede repetir.

—feature <file|key=value>

Añade o actualiza una función de la licencia, es decir, los indicadores que la aplicación comprueba para habilitar partes del producto. Con key=value, la función toma la clave como nombre y el valor como datos. Con una ruta de archivo o un comodín, cada archivo se convierte en una función que lleva el nombre del archivo, con el contenido del archivo como datos. Con def=file, un archivo XML externo proporciona la definición completa de la función, incluidas las fechas de caducidad y la descripción.

lic MyApp.dll --feature Pro=1 --feature Export=csv,xlsx ... lic MyApp.dll --feature "features/*.txt" ... lic MyApp.dll --feature def=features.xml ...

—field <file|key=value>

Añade o actualiza un campo de la licencia, un valor con nombre que la aplicación lee: número de puestos, configuración, una contraseña de cifrado de código, etcétera. Se aplican las mismas tres formas que en --feature: key=value, un archivo cuyo nombre y contenido se convierten en el campo, o def=file para una definición XML.

lic MyApp.dll --field Seats=25 --field Region=EU ...

—sign [type]

Firma la licencia con el par de claves indicado por --keyfile o --keyname. El tipo opcional selecciona el algoritmo: rsa (predeterminado con una clave RSA), ecdsa (con una clave ECDSA) o dsig, el estándar de firma digital XML, con una clave RSA. El algoritmo debe corresponder a la clave: una clave RSA no puede producir una firma ECDSA y viceversa.

lic MyApp.dll --keyfile keys.pem --sign ... lic MyApp.dll --keyfile keys.pem --sign dsig ... lic MyApp.dll --keyfile ecdsa.pem --sign ecdsa --format serial ...

Sin --sign, la licencia se escribe sin firma y la biblioteca cliente la rechaza. --keyfile por sí sola únicamente pone la clave a disposición; no firma.

—[no]verify (—validate)

Verifica la firma del archivo de licencia de entrada con la clave indicada por --keyfile o --keyname; solo se necesita la clave pública. La herramienta muestra verified successfully o is not valid, y con --strict-exit una verificación fallida termina con el código 30.

lic MyApp.licenses --verify --keyfile keys.pem

—update [licid|all]

Actualiza una licencia dentro del archivo de licencia de entrada en lugar de crear una nueva: cada opción de licencia de la línea de comandos reemplaza el valor correspondiente, y el archivo se vuelve a escribir. Sin argumento se actualiza la primera licencia del archivo; pase un identificador de licencia para referirse a una licencia concreta, o all para actualizar todas las licencias del archivo. Pase --sign de nuevo para volver a firmar la licencia modificada.

lic MyApp.licenses --update --keyfile keys.pem --sign --licensee company="Contoso Ltd" --field Seats=50

Restricciones de la licencia

Cada opción de restricción recibe pares key=value, uno por opción, y se puede repetir. Todas las restricciones aceptan id=<id> para establecer su identificador y expire=<date> para darles una fecha de caducidad propia. Consulte Restricciones de la licencia para saber cómo evalúa cada una la biblioteca cliente.

—trial <key=value>

Añade o actualiza una restricción de prueba:

ClaveSignificado
days=<n>Número de días durante los que se puede usar el software después de la primera ejecución.
time=<timespan>Tiempo total de uso permitido.
instances=<n>Número de instancias que se pueden ejecutar a la vez.
terms=<text>Texto de los términos y condiciones que se muestra para la prueba.
lic MyApp.dll --trial days=30 --trial instances=2 ...

—hardware <key=value>

Añade o actualiza una restricción de hardware, que vincula la licencia a un equipo: key=<key> es la clave de hardware calculada con --hardwareid en el equipo de destino, y data=<data> incrusta datos de hardware adicionales.

lic MyApp.dll --hardware key=GPHI6-128DI-6196C-KN5LV-BCDRE ...

—domain <key=value>

Añade o actualiza una restricción de dominio: name=<name> es el dominio de red al que debe pertenecer el equipo, y role=<role> el rol de red.

—usage <key=value>

Añade o actualiza una restricción de uso: type=<context> limita la licencia al contexto Runtime o Designtime, vm=<true|false> permite o prohíbe la ejecución en una máquina virtual, y processlist=<list> indica los procesos autorizados a usar la licencia.

lic MyApp.dll --usage processlist=proc1,proc2,proc3 --usage vm=false ...

—beta <key=value>

Añade o actualiza una restricción beta, para las compilaciones preliminares: build=<text> establece el tipo de compilación beta y changes=<text> describe los cambios recientes.

—restriction <name:key=value>

Añade o actualiza una restricción personalizada, identificada por su nombre, con los pares clave-valor indicados. El tipo de restricción debe proporcionarlo un ensamblado de extensión registrado con --register; sin él, la herramienta informa de que no hay ninguna fábrica de licencias establecida.

lic MyApp.dll --register Contoso.Licensing.dll --restriction "Region:name=EU" ...

Archivos de salida

—output <file> (—out)

Establece el archivo de salida. De forma predeterminada la licencia se guarda junto al archivo de entrada como <assembly file>.licenses.

—logfile [file] (—log)

Redirige la salida de consola a un archivo de registro. Sin argumento, el registro toma el nombre del archivo de salida con la extensión .log.

—makeproject [file] (—mp)

Guarda toda la línea de comandos como un archivo de proyecto de MSBuild que ejecuta la tarea Lic con los mismos ajustes. Sin argumento, el proyecto toma el nombre del archivo de salida con la extensión .lcproj. La licencia se genera igualmente. Consulte Tarea de MSBuild.

Archivos de entrada

—keyfile <file> (—kf)

El archivo de claves que se usa para firmar o verificar la licencia. Los formatos admitidos son PEM (tal como lo escribe --keygen), los archivos de claves de nombre seguro SNK y los certificados PFX; un archivo PFX suele necesitar --keypwd.

—keyname <container> (—kn)

Firma o verifica con un par de claves guardado en un contenedor de claves del sistema operativo, indicado por el nombre del contenedor, en lugar de un archivo.

—keypwd <password> (—kp)

La contraseña de un archivo de claves PFX. Sin ella, la herramienta solicita la contraseña; con --quiet falla en lugar de solicitarla. En un servidor de compilación, guarde la contraseña en una variable de entorno y expándala en la línea de comandos.

—project <file> (—prj)

Ejecuta lic con los ajustes guardados en un archivo de proyecto .lcproj, generado por --makeproject o escrito a mano. Las opciones de la línea de comandos se aplican encima de los ajustes del proyecto.

Opciones largas y cortas

Las opciones largas se introducen con dos guiones, y las opciones cortas y los alias de una sola letra con uno: --verbose 2 y -v 2 son equivalentes, igual que --keyfile y --kf. Una opción larga se puede abreviar a cualquier prefijo que no sea ambiguo. Las opciones marcadas con --[no] se desactivan con el prefijo no o no-, de modo que --nologo, --no-logo y --noassembly son todas válidas.

Códigos de salida

De forma predeterminada el proceso devuelve 0 en caso de éxito y 1 ante cualquier fallo. Con --strict-exit se devuelve en su lugar la clase de fallo; la misma clase se indica siempre como exitReason en la salida JSON, con o sin --strict-exit.

Código de salidaexitReasonSignificado
0successEl comando se completó sin errores.
10invalidArgumentsNo se pudo analizar la línea de comandos o esta contenía un valor no válido.
20inputNotFoundNo se encontró el ensamblado, el archivo de licencia u otra entrada necesaria.
30processingFailureFalló el procesamiento de la licencia, incluida una firma que no se pudo verificar.
40licensingFailureLa licencia de la propia herramienta falta, no es válida o ha caducado.
50keyOrSigningFailureNo se pudo cargar una clave o falló una operación criptográfica.
Last updated on