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.

RuntimeVersionsNotes
.NET10, 9, 8, 7, 6, 5Full support including single-file publish and ReadyToRun
.NET Core3.1, 3.0, 2.2, 2.1, 2.0, 1.1, 1.0Full support
.NET Framework4.8.x, 4.7.x, 4.6.x, 4.5.x, 4.0, 3.5, 3.0, 2.0, 1.1, 1.0Full support including mixed-mode C++/CLI
.NET Standard2.1, 2.0, 1.xLibraries targeting .NET Standard
Mono / XamarinAnyStandard ECMA-335 assemblies
.NET MAUIAnyObfuscate the .NET layer; native bindings excluded automatically
C++/CLIAnyAuto-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.

OSArchitectureRID
Windowsx64win-x64
WindowsARM64win-arm64
Linuxx64linux-x64
LinuxARM64linux-arm64
macOSx64 (Intel)osx-x64
macOSARM64 (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)