Include Dependencies Enterprise

Most .NET applications consist of multiple assemblies. By default, Demeanor obfuscates only the root assembly you specify. With --include-deps, Demeanor discovers and obfuscates all co-located private dependencies — the transitive closure of assemblies in your output directory. Cross-assembly references (TypeRefs, MemberRefs, ExportedTypes) are automatically updated to reflect renamed symbols.

Usage

CLIMSBuildDefault
--include-deps<ObfuscateIncludeDeps>true</ObfuscateIncludeDeps>Off
--xa <assembly><ObfuscateExclude> (assembly names)Exclude specific assemblies

How It Works

Demeanor walks the AssemblyRef table of the root assembly, locating each referenced DLL in the same directory. It loads them into an AssemblySet where all rename operations automatically propagate across assembly boundaries. When TypeDef MyLib.Calculator is renamed to a, every TypeRef in every other loaded assembly that references it is updated.

What Gets Included

  • Private assemblies — DLLs in the same directory as the root assembly.
  • Transitive dependencies — dependencies of dependencies.
  • NOT included: system assemblies (System.*, Microsoft.*), NuGet runtime assemblies, and assemblies outside the application directory.

Excluding Specific Assemblies

demeanor --include-deps --xa ThirdParty.SDK MyApp.exe

Use --xa (repeatable) to exclude specific assemblies from obfuscation. The assembly is still loaded for reference resolution but its symbols are frozen.

When to Use

  • Multi-project applications — your app has MyApp.exe + MyApp.Core.dll + MyApp.Data.dll. All should be obfuscated together.
  • Self-contained deployments — everything ships together, no external consumers.

Ready to protect your .NET code?

View Pricing All Options