Welcome to Dotfuscator 6.0 Beta! We are excited to bring cross-platform support for .NET Core and Mono to Dotfuscator, and to share some of the major changes that are coming in the final release Dotfuscator 6.0.

This page provides details on what to expect from the Beta — what's new, what's changed, what isn't working, and what to expect in the final release. For a quick summary of the Beta, please see our release announcement blog. For more information, see the additional resources at the bottom of this page.

You can download the Beta (including the trial version) just like any other release, and we hope that you will share your feedback from testing it.

This Beta is a supported release for licensed users, within the limitations described on this page. You are welcome to upgrade your production systems to use it, and you should expect the same high level of protection and runtime reliability as any other Dotfuscator release. Not all features are complete, however, and there are known issues below. Upgrading to the final 6.0 release might also require manually removing the Beta before installing 6.0.

To upgrade an existing project, please see the Upgrading documentation. Note that existing Dotfuscator configuration files must be migrated to Dotfuscator 6 by opening them in the Config Editor (on Windows), which will automatically update them.

.NET Core, Mono, and cross-platform support

While Dotfuscator has long had support for processing apps that target Mono or (more recently) .NET Core, this is the first release where Dotfuscator's build components can run under .NET Core 3 or Mono on Windows, Mac, and Linux. Notably, Dotfuscator can now be used in the build toolchain of a Xamarin app that is built on a Mac — making it much easier to protect iOS and Android apps, especially on Azure DevOps Services or Visual Studio App Center.

Specifically, this release includes cross-platform MSBuild components that can run on .NET Core 3 or Mono 6. These components are used by the updated Protect Your App integration instructions, and builds using these new MSBuild components will work the same way across .NET Framework, .NET Core, and Mono, on Windows, Mac, and Linux.

The MSBuild components are supported under the various ways MSBuild can be called, including the dotnet command, via Visual Studio and Visual Studio for Mac, by running msbuild.exe on Windows, and under Mono.

Use of the MSBuild components is fully supported on Macs. Linux support has not been well-tested and there may still be some rough edges. Please contact Support if you encounter any issues on either platform.

The MSBuild components are available both in the Windows Installer (.msi) and in the NuGet package. To provision the MSBuild components onto non-Windows machines, use the NuGet package.

The Beta version of Dotfuscator's command line interface (CLI) is only available via the Windows Installer and requires .NET Framework. In the final release a .NET Core 3 version of the CLI will be distributed in the NuGet package. Note: the documentation is written as if the .NET Core CLI is already available, even though it isn't yet.

The Config Editor continues to require .NET Framework (on Windows) to run.

Major changes

With this new major version comes a few other major changes.

First is our new branding, which you will see in new icons, images, and a new splash screen. The branding work is not yet complete — in fact, the default install directory will change in the final release — but we hope you like the new look!

Second, we have removed the Visual Studio integrated UI. This integration has been replaced by our MSBuild Targets (which now have cross-platform support!). If you are still using the Visual Studio integrated UI, please follow the Upgrade instructions to migrate your Dotfuscator Project(s) (.dotfuproj files) to the MSBuild Targets.

Third, the Dotfuscator NuGet package has been updated to only contain components that are supported across platforms. For this Beta release, that means it only contains the MSBuild components; the Config Editor and CLI have been removed. In the final 6.0 release, the NuGet package will also include the .NET Core CLI. The Windows Installer will include the Config Editor, a Framework-compatible CLI, and the cross-platform MSBuild components.

Fourth, the Windows installer (for Dotfuscator 6.x) will not provide side-by-side installation support. Dotfuscator 4.x versions will continue to support side-by-side installs, and Dotfuscator 6.x will be installable alongside Dotfuscator 4.x, but only one Dotfuscator 6.x version will be installable (via the Windows Installer) at a time. To install multiple Dotfuscator 6.x versions to the same host, use the NuGet package instead.

Note that the Windows Installer will give you the option to automatically remove your latest 4.x install, if it finds one. If you currently have Dotfuscator Projects (.dotfuproj files) that you configure via the Visual Studio integrated UI, you may wish to keep your 4.x install so you can migrate to 6.x. We recommend that all other users remove their 4.x install, to reduce the chance of accidentally calling the 4.x components from a 6.x build (resulting in build errors or out-of-date protection).

Fifth, Dotfuscator's ability to inject analytics telemetry into applications has been removed. (Check injection is still supported, and will continue to be supported and enhanced in future releases.) Dotfuscator does still collect analytics telemetry itself, and this collection continues to be configurable by users.

Sixth, there will be additional potentially-breaking changes made to Dotfuscator's licensing and activation systems in the final 6.0 release. For most customers these changes will be invisible — Dotfuscator 6 will automatically migrate licensing information from Dotfuscator 4, and existing license keys will continue to work. However, Beta users' license data may only be partially migrated, so the 6.0 license data may have to be manually removed before the final release of Dotfuscator 6.0 is installed.

Also, customers with legacy perpetual licenses that are expired (no longer under support & maintenance) will be able to use those licenses with this Beta, but will not be able to use those licenses with the final 6.0 release.

Finally, please carefully review the changelog for this release before upgrading. There are additional functional changes and enhancements that you may need to be aware of.

If you have any questions or concerns, we want to hear them! Please contact Support for assistance.

Known issues

This list will be updated if new issues are discovered.

  1. The documentation has discrepancies with the features in this Beta:

    1. Since the NuGet package has a pre-release version, please ensure you specify the full version number when installing. For example, if using nuget install, specify -Version 6.0.0-beta.

    2. The command line interface (CLI) is not available in the NuGet package. (And the CLI included with the Windows Installer does not have cross-platform support.)

    3. The product name and screenshots have not been updated to reflect the new branding.

  2. The MSBuild components (in this Beta) require .NET Core 3 SDK (or later); in the final 6.0 release they will require .NET Core 2.1 (or later).

  3. Dotfuscator's sample projects have not been updated to use Dotfuscator 6.

  4. The default installation directory for this Beta is different than the planned installation directory for the final 6.0 release.

  5. Upgrading from this Beta to the final 6.0 release may require manually removing the Beta license data before installing the final 6.0 version.

  6. If you are using a legacy perpetual license with a 4.x release, without current support and maintenance, then that license will work with this Beta, but will not work with the final 6.0 release.

  7. Testing on Linux has been less-thorough (so far) than on Mac, and there may still be functional or documentation issues we haven't discovered.

  8. The Azure DevOps extension for Dotfuscator Professional has not been updated to be aware of Dotfuscator 6, yet. (But it is not needed, in most cases; the default integration instructions do not require it.)

  9. If you are building a Xamarin app on a Mac build agent on Azure DevOps Services, the current (as of January 3rd) VM templates do not use new-enough versions of Mono and .NET Core, for Dotfuscator. To mitigate this, add the following near the start of azure-pipelines.yml (or similar):

    - task: Bash@3
      inputs:
        targetType: 'inline'
        script: |
          curl -sSL https://dot.net/v1/dotnet-install.sh | bash
          echo "##vso[task.prependpath]/Library/Frameworks/Mono.framework/Versions/6.4.0/bin"
    

Additional resources

For technical support or to provide feedback, please contact Support.

The Dotfuscator User Guide for the Beta includes detailed documentation to help you Upgrade existing projects.

The changelog for the Beta includes additional details.

Our blog about the Beta provides a general overview.

The Beta can be downloaded from the Dotfuscator Downloads page.