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.

FeatureCommunityEnterprise
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