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. Every cross-assembly reference is updated automatically so the renamed names match across the application.

Usage

CLIMSBuildDefault
--include-deps<DemeanorIncludeDeps>true</DemeanorIncludeDeps>Off
--xa <assembly><DemeanorExcludeAssembly Include="..." /> (ItemGroup)Exclude specific assemblies

How It Works

Demeanor processes the root assembly together with its co-located private dependencies as a single set. When MyLib.Calculator is renamed to a, every reference to MyLib.Calculator in every other obfuscated assembly is updated to match. The result is a consistent name across the whole application.

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