Licensing
Per-company licensing. No seat counting, no machine locking, no activation server. License keys are self-validating — they work completely offline.
For current pricing and to purchase, see the pricing page.
| Feature | Community | Enterprise |
|---|---|---|
| Symbol renaming | ✓ | ✓ |
| Alpha naming mode | ✓ | ✓ |
| Unicode naming mode | ✓ | |
| Obfuscate public API symbols | ✓ | |
| String encryption | ✓ | |
| Constants encryption | ✓ | |
| Resource encryption | ✓ | |
| Control flow obfuscation | ✓ | |
| Call hiding | ✓ | |
| Aggressive renaming (on by default) | ✓ | |
| Virtual override renaming | ✓ | |
| SuppressIldasm | ✓ | |
| HinderReflection | ✓ | |
--include-deps (multi-assembly) | ✓ | |
| Incremental obfuscation | ✓ | |
| Satellite assemblies | ✓ | |
| JSON report generation | ✓ |
Enterprise is a per-company annual subscription with all features and all updates. When the subscription expires, the build fails with a clear error directing you to renew. To build without Enterprise features, remove the license key. See pricing →
Community is no-cost — no license key required. Symbol renaming only, alpha naming mode, single assembly.
Applying Your License Key
The license key is read from the DEMEANOR_LICENSE environment variable. It is not stored in a project file — keys don’t belong in source control.
Environment variable (dev machine):
setx DEMEANOR_LICENSE "YOUR_LICENSE_KEY" Windows. On Linux/macOS: export DEMEANOR_LICENSE="YOUR_LICENSE_KEY" (add to your shell profile to persist).
CI/CD: set DEMEANOR_LICENSE as a secret variable on your build agent. See CI/CD Integration.
CLI flag (one-off runs):
demeanor --license YOUR_LICENSE_KEY MyApp.dll Expiry Behavior
- Enterprise (subscription expired): The build fails with a clear error directing you to renew. To build without Enterprise features, remove the license key — the build then runs in Community tier.
- Invalid or missing key: Community tier. Build succeeds with renaming only.
Verifying Your License
demeanor license YOUR_LICENSE_KEY