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
| CLI | MSBuild | Default |
|---|---|---|
--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?