The Renaming screen is used to configure Dotfuscator's Renaming feature. You can access this screen in Dotfuscator Community's navigation tree by selecting Renaming. This screen contains four tabs: an informational "Getting Started" tab and three tabs for configuring Renaming.
Getting Started Tab
This tab allows you to exclude code items from renaming. This may be necessary when those code items are used by reflection, among other scenarios.
The tab is divided into two sections. The structure of your input assemblies is presented on the left section in a code tree; checkboxes in this view can be used to exclude specific items. You can also exclude items by using rules, which are configured in the right section's rule tree. Dotfuscator also has several built-in exclusion rules, which are configured from a separate tab.
Excluding Specific Items
To exclude a specific code item from renaming, navigate to the item in the code tree and check the checkbox to the left of the item. To undo this exclusion, uncheck the checkbox.
Elements which are already excluded by Declarative Obfuscation will be listed in blue text.
Excluding by Rules
You may also exclude code items from renaming by specifying rules for Dotfuscator to follow. For details on the various types of rules and how they are evaluated, see the Exclusion Rules section.
Rules that have been added are displayed in the rule tree on the right side of the tab.
Selecting a rule will allow you to edit its properties, which vary among rule types.
If the Attribute specifier property is available, you may select a single option by clicking on it,
or select/deselect multiple options by clicking while holding
To add a top-level rule, click either Add Namespace or Add Type as appropriate.
To add a sub-rule of an existing rule, right-click the rule and select Add Field, Add Method, Add Property, Add Event, Add Custom Attribute, or Add Supertype as appropriate.
To remove a rule, select it and click Delete.
You can preview what effect the rules would have on the code tree by clicking the Preview button; code items that will be excluded from renaming due to rules will be highlighted in yellow. You can also preview the effect of a specific rule (and its child rules) by right-clicking on it in the rule tree and selecting Preview.
Built-in Rules Tab
This tab allows you to enable or disable Dotfuscator's built-in exclusion rules.
Dotfuscator provides several rules that apply to common scenarios and frameworks. To toggle a rule on or off, click the rule. The checkbox to the left of the rule will be checked when the rule is enabled, and unchecked when the rule is disabled. When selected, the rule's description is also displayed.
This tab allows you to configure the renaming process at the config level.
In the Renaming options section, you may configure general behavior of the renaming process.
- This setting can also be controlled by right-clicking on the Renaming node in the navigation tree, and checking or unchecking Enable.
Ensure compatibility with XML serializer: If enabled, renaming will ensure the output is compatible with XML serialization. If disabled, more aggressive renaming will take place.
Keep Managed Resource names: Dotfuscator will automatically rename managed resources that are associated with renamed classes so that they will load correctly at run time. You should select
Keep Managed Resource namesif your application loads managed resources by constructing resource names programmatically.
Namespace handling: Choose how namespaces are to be handled for renamed types.
"Flatten and rename": The namespaces will be removed entirely.
"Rename only": The namespaces will be renamed, preserving the hierarchy of namespaces.
"Preserve": The namespaces will not be renamed.
Enhanced Overload Induction, Renaming Prefixes, and Renaming schemes besides Lower Alpha are all exclusive to Dotfuscator Professional.
Incremental obfuscation is exclusive to Dotfuscator Professional.
The Output map section controls how the renaming map file is written during the build.
Output map file: Specifies the location and name of the map file.
Overwrite without backing up existing copy: If enabled, if the map file specified already exists, it will be deleted during the build. If disabled, the existing copy will be renamed instead.
Saving as HTML is exclusive to Dotfuscator Professional.