Outil Babel Licensing Server
Babel.Licensing.Tool fournit la ligne de commande lic sous forme d’outil dotnet : vous pouvez ainsi générer et gérer des licences depuis un terminal ou un script sous Windows, Linux et macOS, avec le SDK .NET pour seule installation.
Contenu du package
Babel.Licensing.Tool est un package d’outil .NET qui installe la commande lic. Il s’agit du même outil en ligne de commande que celui des archives zip de Babel, avec les mêmes options, et il est fourni avec les éditions de Babel Licensing, Server et Data Center. Le package contient un build de l’outil pour chaque runtime pris en charge, de .NET 6.0 à .NET 10.0, et le CLI dotnet choisit le build qui correspond au SDK de la machine.
Comme les autres packages Babel, le package de l’outil n’est pas publié sur nuget.org : hébergez-le sur votre propre flux comme décrit dans Héberger le package, ou ajoutez-le à un flux de dossier local comme indiqué dans Composants client.
Quand utiliser l’outil
Utilisez l’outil partout où les licences sont produites par un processus plutôt que par une personne dans Babel Desktop :
- Émettre des licences depuis un pipeline de traitement des commandes, un script d’assistance ou un build, sur tout système d’exploitation.
- Générer et renouveler des paires de clés de signature, et exporter la clé publique à incorporer dans une application.
- Vérifier les licences que les clients vous renvoient, et les mettre à jour sans les recréer.
- Calculer la clé matérielle d’une machine, pour émettre une licence liée à cette machine.
- Automatiser avec des agents grâce au mode adapté à l’IA, que l’outil
licpartage avec l’obfuscateur.
L’outil génère des licences que l’application valide hors ligne, avec la bibliothèque cliente Babel.Licensing. Les licences gérées par le Babel Licensing Service, comme les licences d’activation et les licences flottantes, se créent en revanche avec les outils du service : Babel Desktop, l’application web (Data Center), l’API REST ou le serveur MCP.
Installer l’outil
Outil global
Un outil global s’installe une fois par utilisateur et est disponible depuis tous les terminaux :
dotnet tool install Babel.Licensing.Tool -gSi le flux ne figure pas dans un fichier NuGet.config, indiquez-le explicitement. La source peut être l’URL d’un flux ou un dossier local :
dotnet tool install Babel.Licensing.Tool -g --add-source ~/NuGetSous Linux et macOS, vérifiez que le dossier des outils figure dans le chemin de recherche, sinon la commande lic est introuvable :
export PATH="$PATH:$HOME/.dotnet/tools"Outil local
Un outil local est épinglé à un dépôt au moyen d’un manifeste d’outils, de sorte que chaque développeur et chaque agent de CI exécutent la même version :
dotnet new tool-manifest
dotnet tool install Babel.Licensing.ToolL’outil est ainsi inscrit dans .config/dotnet-tools.json, fichier que vous validez dans le dépôt. Sur toute autre machine, dotnet tool restore installe la version épinglée. Un outil local s’appelle par l’intermédiaire du CLI dotnet :
dotnet lic --versionMettre à jour et désinstaller
dotnet tool update Babel.Licensing.Tool -g
dotnet tool list -g
dotnet tool uninstall Babel.Licensing.Tool -gOmettez -g pour un outil local. dotnet tool list affiche le package installé, sa version et la commande lic qu’il fournit, à côté de babel lorsque l’outil de l’obfuscateur est lui aussi installé. Les mêmes commandes sont décrites dans Installation.
Fournir la licence à l’outil
L’outil a besoin d’une licence Babel Licensing. Un outil dotnet n’a pas de dossier d’installation où copier babel.licenses : fournissez donc la licence à lic de l’une des façons suivantes :
- Réglez la variable d’environnement
BABEL_LICENSE_PATHsur le chemin complet du fichier de licence. C’est la configuration recommandée sur les machines de développement et les agents de build :
export BABEL_LICENSE_PATH=~/Babel/babel.licenses- Passez
--licenseà chaque appel, avec le chemin du fichier de licence ou d’un dossier où le rechercher. - Passez
--license env:BABEL_LICENSE, où la variable contient une clé de licence : c’est le bon choix sur les serveurs de build, où la clé est conservée dans un secret.
lic --license sans argument affiche la licence utilisée. Un fichier de licence est valable pour une seule version du produit : utilisez le fichier fourni avec la même version que l’outil, et mettez les deux à jour ensemble.
Utiliser l’outil
La commande lic accepte la syntaxe et les options décrites dans Outils en ligne de commande et dans la Référence. Un appel type indique l’assembly à mettre sous licence, la clé, le contenu de la licence et le fichier de sortie :
lic MyApp.dll --keyfile keys.pem --sign --licensee name="Contoso" --product name="MyApp" --expiredate 365 --feature Pro=1 --trial days=30 --output MyApp.licenses --encoding utf-8Avec un outil local, faites précéder la commande de dotnet.
Scripts et automatisation
Depuis la version 11.8, la ligne de commande lic dispose d’un mode adapté à l’IA conçu pour les scripts et les agents :
lic MyApp.dll --keyfile keys.pem --sign --licensee name="Contoso" --expiredate 365 --format json --quiet --strict-exit--format json ou ndjson transforme la sortie en flux lisible par machine et dirige les diagnostics destinés aux personnes vers la sortie d’erreur standard, --quiet supprime la bannière et fait échouer immédiatement toute invite interactive, et --strict-exit renvoie un code de sortie distinct pour les arguments non valides, l’entrée manquante, les échecs de traitement de la licence, les échecs liés à la licence de l’outil et les échecs de signature. Les codes de sortie sont les mêmes que ceux de l’obfuscateur : un seul script peut donc piloter les deux outils avec un tableau unique.
Exécuter l’outil sur un serveur de build
L’outil convient aux pipelines dont une étape émet des licences, par exemple pour mettre sous licence le build de test d’une application avant l’exécution de ses tests d’intégration. Avec un manifeste d’outils validé dans le dépôt et le flux configuré dans NuGet.config (voir l’exemple GitHub Actions pour une configuration qui s’authentifie auprès de GitHub Packages), un travail (job) GitHub Actions se présente ainsi :
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Restore tools
run: dotnet tool restore
env:
PACKAGES_TOKEN: ${{ secrets.PACKAGES_TOKEN }}
- name: Write the signing key
run: echo "$SIGNING_KEY" > keys.pem
env:
SIGNING_KEY: ${{ secrets.LICENSE_SIGNING_KEY }}
- name: Issue the test license
run: dotnet lic artifacts/MyApp.dll --license env:BABEL_LICENSE --keyfile keys.pem --sign --licensee name="CI" --expiredate 7 --output artifacts/MyApp.licenses --quiet --strict-exit
env:
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}Conservez la clé privée dans un secret et jamais dans le dépôt : quiconque la détient peut émettre des licences pour votre produit.
Dépannage
lic: command not found: le dossier des outils globaux ne figure pas dans le chemin de recherche ; ajoutez~/.dotnet/toolsàPATH, ou utilisez un outil local et exécutezdotnet lic.- Un message demandant d’installer .NET : le build sélectionné de l’outil nécessite le runtime .NET correspondant, de 6.0 à 10.0. Installez ce runtime, ou définissez
DOTNET_ROLL_FORWARD=Majorpour exécuter l’outil sur un runtime plus récent. - A valid license could not be found : vérifiez
BABEL_LICENSE_PATHou l’argument--license, puis exécutezlic --licensepour voir ce que l’outil a chargé. Un fichier de licence prévu pour une autre version est signalé comme non valide. - L’application signale que la licence n’est pas valide : la licence a probablement été écrite sans
--sign, ou signée avec une paire de clés dont la clé publique ne correspond pas à celle qui est incorporée dans l’application. Exécutezlic <file> --verify --keyfile <key>pour vérifier la signature avec la clé attendue. Unrecognized option: c’est unlicplus ancien, présent dans le chemin de recherche, qui répond ; exécutezdotnet tool list -getlic --versionpour vérifier quel build vous appelez.--format json,--quietet--strict-exitnécessitent la version 11.8 ou une version ultérieure.