Dotfuscator 6 introduced changes to the functionality and user experience available in Dotfuscator 4. Some of these changes may require modifications to your build or affect Dotfuscator’s output.
For a complete list of changes, refer to the changelog.
Validate Your License
When upgrading from Dotfuscator 4 to Dotfuscator 6, Dotfuscator 6 must successfully validate your license with PreEmptive servers at least once before it can run.
License validation requires:
- An active Dotfuscator license.
- An active internet connection.
If you encounter difficulties validating your license, contact PreEmptive Support.
Review the Installation Configuration
The Dotfuscator 6 installer provides options for removing Dotfuscator 4 or keeping the existing installation.
Before uninstalling Dotfuscator 4, consider the following changes:
- Dotfuscator 6 does not support Dotfuscator Projects in Visual Studio.
- Dotfuscator Visual Studio Projects work only with Dotfuscator 4.
- Existing projects may explicitly reference the installed Dotfuscator version.
- Projects that use the Dotfuscator MSBuild Targets or MSBuild Task may require updated references.
If you use Dotfuscator Visual Studio Projects, migrate them to the Dotfuscator MSBuild Targets before uninstalling Dotfuscator 4. For instructions, refer to Migrate Dotfuscator Visual Studio Projects to MSBuild Targets.
Dotfuscator does not notify you when an existing project continues to use Dotfuscator 4 instead of Dotfuscator 6.
Update the Project Integration
The XML elements used to integrate Dotfuscator into an application project have changed. Remove the previous XML elements from the project file and add the elements required by the new integration.
Update MSBuild Targets References
Projects configured for Dotfuscator 4 may reference the MSBuild Targets at:
${Visual Studio Install Path}/MSBuild/PreEmptive/Dotfuscator/4/To protect the application with Dotfuscator 6, update the path to:
${Visual Studio Install Path}/MSBuild/PreEmptive/Dotfuscator/6/The Dotfuscator 6 MSBuild Targets contain no breaking changes from the Dotfuscator 4 targets. However, if you uninstall Dotfuscator 4 before updating the path, projects that still reference the Dotfuscator 4 MSBuild Targets will not build.
All developers who build or modify a project configured with the Dotfuscator MSBuild Targets must have the same Dotfuscator version installed.
If Dotfuscator is not installed, Visual Studio cannot load the configured project because MSBuild cannot locate the targets file. To open the project without installing Dotfuscator, first remove or comment out the corresponding section in the project file.
Review NuGet Package Changes
The PreEmptive.Protection.Dotfuscator.Pro NuGet package no longer includes the Config Editor.
Developers who use the NuGet package must also use the Windows Installer if they need to modify configurations with the Config Editor.
Upgrade Configuration Files
Configuration files created before Dotfuscator 6 must be upgraded.
If you use an older configuration file from the command line or with the Dotfuscator MSBuild Targets, Dotfuscator displays the following error:
PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor, which will automatically upgrade it.Open the configuration file in the Config Editor. Dotfuscator removes the unsupported settings and displays the following message:
PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.Save the upgraded configuration file.
These messages may appear even if the configuration did not use PreEmptive Analytics.
Review Removed Features
The following functionality available in Dotfuscator 4 was removed or changed in Dotfuscator 6.
PreEmptive Analytics
Dotfuscator 6 does not support PreEmptive Analytics, including Check Telemetry. Checks, including Application Notification and Check Actions, remain supported.
Upgrade the configuration file to remove its PreEmptive Analytics settings.
If you used in-code attributes to configure PreEmptive Analytics:
- Remove the attributes from the source code.
- Rebuild the input assemblies.
- Protect the rebuilt assemblies with Dotfuscator 6.
Authenticode Signing
The Authenticode signing feature was removed from Dotfuscator. You can instead configure an Authenticode signing operation as a post-build event.
The following example runs the signing event for each output module when the Dotfuscator build succeeds:
<eventlist>
<event type="postbuild">
<option>runoneachmodule</option>
<option>buildsuccessful</option>
<program>
<file dir="[Sign Tool Dir]" name="signtool.exe" />
<environment
commandline="sign -fd sha256 -f [Certificate File Path].pfx -p [Certificate Password] -tr [Timestamp URL] -as ${dotf.current.out.module}"
workingdir="" />
</program>
</event>
</eventlist>Replace the following values:
- [Sign Tool Dir]: The absolute path to the Microsoft Sign Tool. To locate it, open the Developer Command Prompt and enter where signtool.
- [Certificate File Path]: The certificate file used to sign the output. You can use ${configdir} to specify a path relative to the Dotfuscator configuration file.
- [Certificate Password]: The password associated with the certificate.
- [Timestamp URL]: The URL of an Authenticode timestamp service.
PreMark Task
The PreMark MSBuild task, which extracted watermarks from protected assemblies, was removed.
You can continue to:
- Configure Dotfuscator to embed watermarks in protected assemblies.
- Extract the watermarks with the premark command-line tool.
Introduce Explicit Method Overrides
The renaming option for introducing explicit method overrides was removed.
Upgrade the configuration file to remove this setting.
If you use both incremental obfuscation and explicit method overrides, use a new input mapping file or continue using Dotfuscator 4. Refer to the Troubleshooting section for more information.
Review Compatibility Changes
Visual Studio
Dotfuscator 6 does not support Visual Studio 2010.
Application Types
The source article identifies the following application types as unsupported in Dotfuscator 6:
- Windows Phone
- WinRT
- Silverlight
- Unity
Input Types
Dotfuscator 6 does not accept the following package types as inputs:
- ClickOnce .application packages.
- UWP .appx packages.
- Silverlight .xap packages.
Review Deprecated Licensing Behavior
Placing the Dotfuscator .dat file in the same directory as the Dotfuscator executable is deprecated and will stop working in a future major version.
If you use this configuration, contact PreEmptive Support for information about a floating license.