Target Assemblies
Demeanor obfuscates any ECMA-335 compliant .NET assembly. The metadata format has been consistent since .NET 1.0 — Demeanor reads and writes it at the specification level, not through framework-specific APIs.
| Runtime | Versions | Notes |
|---|---|---|
| .NET | 10, 9, 8, 7, 6, 5 | Full support including single-file publish and ReadyToRun |
| .NET Core | 3.1, 3.0, 2.2, 2.1, 2.0, 1.1, 1.0 | Full support |
| .NET Framework | 4.8.x, 4.7.x, 4.6.x, 4.5.x, 4.0, 3.5, 3.0, 2.0, 1.1, 1.0 | Full support including mixed-mode C++/CLI |
| .NET Standard | 2.1, 2.0, 1.x | Libraries targeting .NET Standard |
| Mono / Xamarin | Any | Standard ECMA-335 assemblies |
| .NET MAUI | Any | Obfuscate the .NET layer; native bindings excluded automatically |
| C++/CLI | Any | Auto-detected; uses in-situ mode to preserve native code sections |
NativeAOT: Obfuscation runs on the IL before AOT compilation. The obfuscated IL is what gets compiled to native code. See FAQ for details.
Host Platforms
Demeanor ships as a self-contained native binary — no .NET runtime required on the build machine. The NuGet package includes binaries for all supported platforms.
| OS | Architecture | RID |
|---|---|---|
| Windows | x64 | win-x64 |
| Windows | ARM64 | win-arm64 |
| Linux | x64 | linux-x64 |
| Linux | ARM64 | linux-arm64 |
| macOS | x64 (Intel) | osx-x64 |
| macOS | ARM64 (Apple Silicon) | osx-arm64 |
CI/CD: Any CI system that runs dotnet build on a supported platform works. See CI/CD Integration for examples.
Docker: Works in any Linux x64 container. The native binary has no runtime dependencies beyond libc.
What Demeanor Does NOT Require
- No .NET SDK or runtime on the build machine (self-contained native binary)
- No Visual Studio extension or IDE plugin
- No internet connection (offline license validation)
- No Windows-only tooling (fully cross-platform)
- No separate installer (NuGet package includes everything)