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