Skip to Content
Nouvelle version 12 disponible 🎉

Référence de la ligne de commande Server

Toutes les options de la ligne de commande lic, regroupées comme dans la sortie de lic —help.

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

Le premier argument est soit l’assembly auquel la licence est destinée, dont lic enregistre dans la licence le nom, la version, la culture et le jeton de clé publique, soit un fichier de licence existant, au format XML ou sous forme de chaîne, à mettre à jour ou à vérifier. Les assemblies supplémentaires ajoutent eux aussi leur identité à la licence. Les arguments obligatoires sont indiqués entre chevrons, les arguments facultatifs entre crochets ; un préfixe --[no] signale une option qui possède une forme négative.

Les options peuvent être abrégées jusqu’à leur plus court préfixe non ambigu, si bien que --comp sélectionne --component, et plusieurs ont un alias, indiqué entre parenthèses dans les titres ci-dessous. Les options à paires clé-valeur, comme --licensee et --trial, se répètent une fois par paire. Les dates acceptent toute chaîne de date et d’heure que la culture en cours sait analyser, et le format ISO 8601 (2027-09-01) fonctionne toujours.

Exécutez lic --help <option> pour obtenir la description étendue d’une option, ou lic --help --format json pour obtenir l’ensemble des options sous la forme d’un document lisible par machine ; voir Mode adapté à l’IA.

Divers

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

Affiche le message d’utilisation avec toutes les options et une brève description. Avec un nom d’option, affiche la description étendue de cette option. Avec --format json ou ndjson, émet le schéma des options au format JSON.

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

Affiche ou supprime la bannière de copyright au démarrage. La bannière est affichée par défaut et toujours supprimée en mode de sortie json et ndjson.

—license [path]

Sans argument, affiche la licence avec laquelle lic s’exécute, puis quitte. Avec un argument, indique à l’outil où se trouve sa propre licence : le chemin d’un fichier de licence, un dossier dans lequel chercher babel.licenses, ou env:VARIABLE pour lire une clé de licence dans une variable d’environnement. L’option peut être répétée. Sans elle, l’outil cherche babel.licenses à côté de son exécutable, puis dans le chemin désigné par BABEL_LICENSE_PATH.

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

—verbose <n> (-v)

Définit le niveau de détail de la console. 0 n’affiche rien, 1 (valeur par défaut) affiche les messages normaux, et une valeur supérieure à 10 ajoute la sortie de débogage, y compris le contenu de toutes les variables d’entrée.

—version

Affiche la version de l’assembly, du produit et du fichier, puis quitte. Avec --format json, émet la version, le runtime et la plateforme au format JSON.

—noconfig

Ignore les valeurs par défaut des options stockées dans le fichier de configuration de l’outil (lic.exe.config).

—format <name> (—fmt)

Formats de sortie du CLI disponibles depuis la version 11.8.

Sélectionne soit le format de sortie de la licence, soit le format de sortie de la ligne de commande. Les deux ensembles de valeurs sont disjoints, si bien qu’une seule option couvre les deux et que les deux peuvent figurer sur la même ligne de commande.

ValeurSignification
xmlValeur par défaut. Un fichier de licence XML (.licenses), le format que le client Babel.Licensing valide à partir d’un fichier.
serialUne licence sous forme de chaîne dans l’encodage de chaîne par défaut, adaptée à un numéro de série que l’utilisateur saisit.
base32Une licence sous forme de chaîne encodée en Base32 (lettres majuscules et chiffres).
asciiUne licence sous forme de chaîne encodée en ASCII lisible, le plus compact des formats de chaîne.
textSortie de la ligne de commande : la sortie console par défaut, lisible par une personne.
jsonSortie de la ligne de commande : un document JSON sur la sortie standard, conforme à lic.cli.v1.
ndjsonSortie de la ligne de commande : JSON délimité par des sauts de ligne, un événement par ligne, transmis au fur et à mesure.

Les licences sous forme de chaîne sont écrites dans le fichier --output sur une seule ligne de texte. Elles ont le même contenu que la forme XML et se valident de la même façon, avec StringLicense dans la bibliothèque 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)

Génère une nouvelle paire de clés et l’écrit au format PEM dans le fichier désigné par --keyfile. Le type est rsa (valeur par défaut) ou ecdsa. Utilisez --keysize pour choisir la robustesse ; la clé privée du fichier signe les licences et doit rester secrète, tandis que --publickey extrait la partie publique destinée à l’application.

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

Les clés RSA signent les licences XML avec l’algorithme rsa ou dsig ; les clés ECDSA produisent les licences sous forme de chaîne les plus courtes et constituent le choix habituel pour les numéros de série.

—keysize <size> (—ks)

Définit la taille de clé pour --keygen. RSA accepte des tailles de 384 à 4096 bits ; ECDSA accepte 112, 192, 256, 384 ou 521 bits. Une clé ECDSA plus grande produit un numéro de série plus long.

—[no]keyinfo

Indique s’il faut inclure les informations de clé publique dans l’élément de signature RSA d’une licence XML. Elles peuvent être omises lorsque l’assembly sous licence a un nom fort, car le client extrait la clé publique RSA du nom fort pour valider la licence.

—publickey (—pk)

Affiche la clé publique de la paire de clés indiquée avec --keyfile, pour les clés RSA, ECDSA et de signature numérique XML. Incorporez cette valeur dans l’application, qui l’utilise pour valider les licences.

lic --publickey --keyfile keys.pem

—[no]xmldeclaration

Indique s’il faut écrire la déclaration XML en tête d’un fichier de licence XML. Option activée par défaut.

—encoding <name>

Définit l’encodage des caractères du fichier de licence XML, par nom d’encodage (utf-8, utf-16, us-ascii et tout autre encodage inscrit sur la machine). Par défaut, le fichier est écrit en UTF-16 avec une marque d’ordre d’octet ; passez utf-8 pour obtenir un fichier plus facile à examiner et à incorporer.

—showhardwareinfo (—show-hardware-info)

Affiche les informations à partir desquelles la clé matérielle est calculée sur la machine en cours : nom du système, UUID, fabricant, nom du produit, numéros de série du BIOS et de la carte mère, système d’exploitation, mémoire, détection éventuelle d’une machine virtuelle et identité du processeur. Utile pour les demandes d’assistance dans lesquelles une licence liée à la machine échoue à la validation.

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

Calcule la clé matérielle de la machine en cours et l’affiche sous la forme HardwareKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. La liste facultative de composants sélectionne ce dont la clé est dérivée : cpu, ethernet (adresse MAC), disk (numéro de série), motherboard, bios, computername (valeur par défaut) ou all. Cette clé est celle que vous passez à --hardware key= lorsque vous émettez une licence liée à la machine, et celle que l’application calcule avec les mêmes composants au moment de la validation.

lic --hardwareid cpu,disk,computername

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

Ajoute des données aléatoires au calcul de la clé matérielle, afin que deux produits liés à la même machine ne partagent pas la même clé. Passez une chaîne hexadécimale pour utiliser un sel fixe, ou une taille pour en générer un ; le sel généré est affiché sous la forme Salt= et doit être réutilisé au moment de la validation.

—register <assembly>

Charge un assembly d’extension avant le traitement. Une extension peut fournir des types de restriction personnalisés pour --restriction, des fournisseurs de signature personnalisés pour --sign et des services tels qu’une autre méthode d’identification du matériel. L’option peut être répétée.

—[no]quiet (-q)

Disponible depuis la version 11.8.

Supprime la bannière de copyright et toutes les invites interactives, de sorte que la commande ne se bloque jamais en attente d’une saisie : l’absence de --keypwd produit une erreur explicite au lieu d’une demande de mot de passe. Option destinée aux pipelines de CI et aux exécutions sans intervention. Voir Mode adapté à l’IA.

—[no]strict-exit

Disponible depuis la version 11.8.

Renvoie un code de sortie sémantique au lieu des valeurs par défaut, 0 pour la réussite et 1 pour tout échec : 10 arguments non valides, 20 fichier d’entrée introuvable, 30 échec du traitement de la licence, 40 échec de la licence de l’outil, 50 échec de clé ou de signature. Les codes sont les mêmes que ceux de l’obfuscateur. Voir Mode adapté à l’IA.

Licence

—id [licid]

Définit l’identifiant de licence. Sans argument, un nouvel identifiant est généré. C’est cet identifiant que --update et --verify utilisent pour désigner une licence dans un fichier qui en contient plusieurs.

—type <type>

Définit le type de licence, un texte libre tel que Standard, Professional ou Trial, que l’application peut lire pour sélectionner une édition.

—sites <number>

Définit le nombre de sites, ou de postes, que couvre la licence.

—issuedate [date]

Définit la date d’émission. Sans argument, la date et l’heure actuelles sont utilisées.

—expiredate <date>

Définit la date d’expiration, sous la forme d’une chaîne de date et d’heure ou d’un nombre de jours à compter d’aujourd’hui.

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

—supportexpiredate <date>

Définit la date à laquelle la maintenance du produit expire, indépendamment de la licence elle-même.

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

Ajoute à la licence l’identité d’un autre assembly, à partir d’un fichier ou d’un nom d’assembly ; l’option peut être répétée et accepte les caractères génériques. --noassembly supprime toutes les informations d’assembly, ce qui produit une licence qui n’est liée à aucun assembly particulier.

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

—licensee <key=value>

Définit les informations sur le titulaire de licence, une paire par option : id, name, company et email.

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

—product <key=value>

Définit les informations sur le produit, une paire par option : id, name, version, copy (mention de copyright), descr (description) et url.

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

—component <name>

Ajoute un composant sous licence, pour les produits qui mettent sous licence des composants ou des modules individuels d’un assembly. L’option peut être répétée.

—feature <file|key=value>

Ajoute ou met à jour une fonctionnalité de la licence, c’est-à-dire l’un des interrupteurs que l’application vérifie pour activer des parties du produit. Avec key=value, la fonctionnalité prend la clé pour nom et la valeur pour données. Avec un chemin de fichier ou un caractère générique, chaque fichier devient une fonctionnalité qui porte le nom du fichier et a son contenu pour données. Avec def=file, un fichier XML externe fournit la définition complète de la fonctionnalité, y compris les dates d’expiration et la description.

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>

Ajoute ou met à jour un champ de la licence, une valeur nommée que l’application lit : nombre de postes, configuration, mot de passe de chiffrement du code, etc. Les trois mêmes formes que pour --feature s’appliquent : key=value, un fichier dont le nom et le contenu deviennent le champ, ou def=file pour une définition XML.

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

—sign [type]

Signe la licence avec la paire de clés indiquée par --keyfile ou --keyname. Le type facultatif sélectionne l’algorithme : rsa (valeur par défaut avec une clé RSA), ecdsa (avec une clé ECDSA) ou dsig, la norme de signature numérique XML, avec une clé RSA. L’algorithme doit correspondre à la clé : une clé RSA ne peut pas produire une signature ECDSA, et inversement.

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 ...

Sans --sign, la licence est écrite sans signature et la bibliothèque cliente la rejette. --keyfile seul ne fait que mettre la clé à disposition ; il ne signe pas.

—[no]verify (—validate)

Vérifie la signature du fichier de licence d’entrée avec la clé indiquée par --keyfile ou --keyname ; seule la clé publique est nécessaire. L’outil indique verified successfully ou is not valid et, avec --strict-exit, une vérification qui échoue se termine avec le code 30.

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

—update [licid|all]

Met à jour une licence dans le fichier de licence d’entrée au lieu d’en créer une nouvelle : chaque option de licence de la ligne de commande remplace la valeur correspondante, et le fichier est réécrit. Sans argument, la première licence du fichier est mise à jour ; passez un identifiant de licence pour désigner une licence, ou all pour mettre à jour toutes les licences du fichier. Passez de nouveau --sign pour signer de nouveau la licence modifiée.

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

Restrictions de licence

Chaque option de restriction prend des paires key=value, une par option, et peut être répétée. Toutes les restrictions acceptent id=<id> pour définir leur identifiant et expire=<date> pour leur donner une date d’expiration propre. Voir Restrictions de licence pour savoir comment la bibliothèque cliente évalue chacune d’elles.

—trial <key=value>

Ajoute ou met à jour une restriction d’essai :

CléSignification
days=<n>Nombre de jours pendant lesquels le logiciel peut être utilisé après la première exécution.
time=<timespan>Durée d’utilisation totale autorisée.
instances=<n>Nombre d’instances pouvant s’exécuter en même temps.
terms=<text>Texte des conditions générales affiché pour l’essai.
lic MyApp.dll --trial days=30 --trial instances=2 ...

—hardware <key=value>

Ajoute ou met à jour une restriction matérielle, qui lie la licence à une machine : key=<key> est la clé matérielle calculée avec --hardwareid sur la machine cible, et data=<data> incorpore des données matérielles supplémentaires.

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

—domain <key=value>

Ajoute ou met à jour une restriction de domaine : name=<name> est le domaine réseau auquel la machine doit appartenir, et role=<role> le rôle réseau.

—usage <key=value>

Ajoute ou met à jour une restriction d’utilisation : type=<context> limite la licence au contexte Runtime ou Designtime, vm=<true|false> autorise ou interdit l’exécution dans une machine virtuelle, et processlist=<list> désigne les processus autorisés à utiliser la licence.

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

—beta <key=value>

Ajoute ou met à jour une restriction bêta, pour les builds de préversion : build=<text> définit le type de build bêta et changes=<text> décrit les changements récents.

—restriction <name:key=value>

Ajoute ou met à jour une restriction personnalisée, identifiée par son nom, avec les paires clé-valeur indiquées. Le type de restriction doit être fourni par un assembly d’extension inscrit avec --register ; à défaut, l’outil signale qu’aucune fabrique de licences n’est définie.

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

Fichiers de sortie

—output <file> (—out)

Définit le fichier de sortie. Par défaut, la licence est enregistrée à côté du fichier d’entrée sous le nom <assembly file>.licenses.

—logfile [file] (—log)

Redirige la sortie console vers un fichier journal. Sans argument, le journal porte le nom du fichier de sortie avec l’extension .log.

—makeproject [file] (—mp)

Enregistre toute la ligne de commande sous la forme d’un fichier de projet MSBuild qui exécute la tâche Lic avec les mêmes paramètres. Sans argument, le projet porte le nom du fichier de sortie avec l’extension .lcproj. La licence est générée elle aussi. Voir Tâche MSBuild.

Fichiers d’entrée

—keyfile <file> (—kf)

Le fichier de clé utilisé pour signer ou vérifier la licence. Les formats pris en charge sont PEM (tel que l’écrit --keygen), les fichiers de clé de nom fort SNK et les certificats PFX ; un fichier PFX nécessite généralement --keypwd.

—keyname <container> (—kn)

Signe ou vérifie avec une paire de clés stockée dans un conteneur de clés du système d’exploitation, désigné par son nom, au lieu d’un fichier.

—keypwd <password> (—kp)

Le mot de passe d’un fichier de clé PFX. Sans cette option, l’outil demande le mot de passe ; avec --quiet, il échoue au lieu de le demander. Sur un serveur de build, conservez le mot de passe dans une variable d’environnement et développez-la sur la ligne de commande.

—project <file> (—prj)

Exécute lic avec les paramètres stockés dans un fichier de projet .lcproj, produit par --makeproject ou écrit à la main. Les options de la ligne de commande s’appliquent par-dessus les paramètres du projet.

Options longues et courtes

Les options longues sont introduites par deux tirets, les options courtes et les alias d’une seule lettre par un seul : --verbose 2 et -v 2 sont équivalents, tout comme --keyfile et --kf. Une option longue peut être abrégée en tout préfixe non ambigu. Les options marquées --[no] se désactivent avec le préfixe no ou no-, si bien que --nologo, --no-logo et --noassembly sont tous valides.

Codes de sortie

Par défaut, le processus renvoie 0 en cas de réussite et 1 en cas d’échec. Avec --strict-exit, c’est la classe de l’échec qui est renvoyée ; la même classe est toujours indiquée sous le nom exitReason dans la sortie JSON, avec ou sans --strict-exit.

Code de sortieexitReasonSignification
0successLa commande s’est terminée sans erreur.
10invalidArgumentsLa ligne de commande n’a pas pu être analysée ou contenait une valeur non valide.
20inputNotFoundL’assembly, le fichier de licence ou une autre entrée requise est introuvable.
30processingFailureLe traitement de la licence a échoué, y compris lorsque la vérification d’une signature échoue.
40licensingFailureLa licence de l’outil lui-même est absente, non valide ou expirée.
50keyOrSigningFailureUne clé n’a pas pu être chargée ou une opération cryptographique a échoué.
Last updated on