Use this article to install Dotfuscator Professional on a development machine or build environment.
Dotfuscator Professional supports two installation methods:
- Windows installer for Windows environments.
- NuGet package for Mac or Linux.
The installation method you choose depends on your operating system, development environment, and workflow.
Before installing Dotfuscator Professional:
- Verify that your application framework and development tools are supported.
- Verify that the machine that runs Dotfuscator meets the system requirements.
For more information, see Supported Frameworks and Development Tools and System Requirements.
Choose an Installation Method
| Installation Method | Recommended For |
| Windows Installer | Developers using Windows and Visual Studio who want access to the Dotfuscator Config Editor. |
| NuGet Package | Developers using Windows, macOS, or Linux, build servers, automated build environments, Visual Studio Code, or command-line workflows. |
Install With the Windows Installer
The Windows Installer installs Dotfuscator Professional on Windows and includes the Dotfuscator Config Editor.
To install Dotfuscator Professional using the Windows Installer, do the following:
- Go to the Dotfuscator Downloads page.
- Download the Dotfuscator Professional Installer.
- Run the installer on your development machine with administrator privileges.
- Review and accept the terms in the End-User License Agreement section.
-
Choose an installation type:
- Select Complete installation to install all features
- Select only specific features
- Continue and select Install.
- Wait for the installation to complete.
- Select Finish to close the installation wizard.
If you have not yet activated Dotfuscator on the machine, the activation tool launches automatically.
After installation, Dotfuscator Professional is available on the local machine and can be integrated with supported Visual Studio projects and build processes.
For more information, see Activation.
Installed Components
The Windows Installer deploys the following components:
| Component | Installation Location |
| MSBuild targets | $(MSBuildProgramFiles32)\MSBuild\PreEmptive\Dotfuscator\7\PreEmptive.Dotfuscator.Common.targets |
| MSBuild tasks (modern) | $(MSBuildProgramFiles32)\MSBuild\PreEmptive\Dotfuscator\7\PreEmptive.Dotfuscator.Tasks.dll |
| MSBuild tasks (legacy) | $(MSBuildProgramFiles32)\MSBuild\PreEmptive\Dotfuscator\7\legacy\PreEmptive.Dotfuscator.Tasks.dll |
| Command line interface |
{app dir}\dotfuscator.exe (.NET Framework app) |
| Config Editor | Start Menu or {app dir}\dotfuscatorUI.exe |
| User Guide | Start Menu or {app dir}\help\index.html |
| Obfuscation Attributes | {app dir}\PreEmptive.ObfuscationAttributes.dll |
| PreMark tool | {app dir}\premark.exe |
| TamperTester tool | {app dir}\TamperTester.exe |
Where:
- $(MSBuildProgramFiles32) is a reserved MSBuild property pointing to the C:\Program Files (x86) directory on 64-bit versions of Windows and C:\Program Files on 32-bit versions.
- {app dir} is the directory where you chose to install Dotfuscator Professional.
For more information, see Reserved and Well-Known Properties.
DOTFUSCATOR_HOME Variable
The Windows installer adds the DOTFUSCATOR_HOME system environment variable. This variable contains the Dotfuscator installation directory.
The installer also appends %DOTFUSCATOR_HOME% to the PATH environment variable, unless the PATH variable is too long. If this is the case during installation, reduce the PATH variable’s length and then append %DOTFUSCATOR_HOME% manually.
For side-by-side installations, DOTFUSCATOR_HOME refers to the Dotfuscator version that was installed most recently. To use another installed version, update the system environment variable to point to that version’s installation directory.
When you uninstall Dotfuscator, the installer removes DOTFUSCATOR_HOME and removes it from PATH only if the path matches the version being uninstalled. If you have other Dotfuscator versions installed, reconfigure DOTFUSCATOR_HOME to point to the version you want to use.
Install With the NuGet Package
PreEmptive privately distributes a NuGet package for installing Dotfuscator Professional on macOS and Linux development machines.
It is possible to use this method for Windows development environments, but the Windows installer is typically recommended for Windows development machines.
About the NuGet Package
The Dotfuscator NuGet package works differently from typical project dependencies. Key characteristics of the Dotfuscator NuGet package include:
- The package does not expose libraries for general programming use.
- The package contains Dotfuscator's various components, which act as independent tools during a build.
- You do not need to add a reference to the Dotfuscator NuGet package in your project. Instead, you explicitly install the package to a directory and have your builds use the extracted components in that directory.
- The package is distributed privately by PreEmptive and is not available on the public nuget.org feed.
- You must host the package on a private feed within your organization.
Package Identifiers
| Package Type | Package ID |
| Licensed Version | PreEmptive.Protection.Dotfuscator.Pro |
| Evaluation Version | PreEmptive.Protection.Dotfuscator.Pro.Eval |
Install the NuGet Package
To install the package, use any of the following:
- The NuGet command-line interface,
nuget.exe - Any tool capable of extracting ZIP files
- NuGet Restore
Install the package to a local directory that is accessible to your build process.
- Go to the Dotfuscator Downloads page.
- Download the Dotfuscator Professional's NuGet Package.
- Copy the downloaded
.nupkgto a new directory. - Note the path to this directory as the
{feed url}. -
Provision the package in your development machine:
nuget.exe InstallUse the
installcommand to download and extract the package to a specific directory{out dir}. For example, the following command installs Dotfuscator Professional version 7.1.4 to {out dir}/PreEmptive.Protection.Dotfuscator.Pro:nuget install PreEmptive.Protection.Dotfuscator.Pro -Version 7.1.4 -OutputDirectory "{out dir}" -ExcludeVersion -Source "{feed url}"For evaluation licenses, use:
nuget install PreEmptive.Protection.Dotfuscator.Pro.Eval -Version 7.1.4 -OutputDirectory "{out dir}" -ExcludeVersion -Source "{feed url}"For more information, see NuGet CLI Reference.
Extract ZIP filesThe NuGet package (
.nupkg) file is actually a renamed ZIP file.- Copy the .nupkg file to a new name with the .zip extension
- Unzip that copy into a new directory.
- Note the directory of unzipped contents. This is the installation directory.
NuGet Restore- Create a simple "stub" .NET project that references the Dotfuscator NuGet package
- Provision the package using the
>nuget restorecommand.
- Mark the included shell scripts as executable with the
chmod +xcommand, including the script location as the argument. - Create a file in your user directory and name it
.dotfuscator.user.props -
Include the following content in the new file:
<!-- This is an MSBuild properties file for projects which use Dotfuscator's MSBuild components. For details, see <https://www.preemptive.com/dotfuscator/pro/userguide/en/interfaces_msbuild.html#user>. --> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <!-- Path where Dotfuscator's MSBuild components are installed via the NuGet package. --> <DotfuscatorMSBuildDir>{install dir}/tools/msbuilddir</DotfuscatorMSBuildDir> <!-- License string for Dotfuscator. --> <DotfuscatorLicense>{license string}</DotfuscatorLicense> </PropertyGroup> </Project>Where:
{install dir} is the absolute path to the Dotfuscator installation directory.
{license string} is your Dotfuscator Professional license key formatted as a license string. This causes Dotfuscator's build integration to automatically activate itself each time it runs.
After installation, Dotfuscator Professional is available on the local machine.
Installed Components
Dotfuscator's NuGet package contains the following components:
| Component | Installation Location |
| MSBuild targets | {install dir}/tools/msbuilddir/PreEmptive.Dotfuscator.Common.targets |
| MSBuild tasks (modern) | {install dir}/tools/msbuilddir/PreEmptive.Dotfuscator.Tasks.dll |
| MSBuild tasks (legacy) | {install dir}/tools/msbuilddir/legacy/PreEmptive.Dotfuscator.Tasks.dll |
| Command line interface |
{install dir}/tools/programdir/netcore/dotfuscator.dll (.NET Core app) |
Where {install dir} is your Dotfuscator installation directory.
Next Steps
After installing Dotfuscator Professional:
- Activate your license.
- Understand how Dotfuscator protects your app.
- Protect your first application:
- With the Config Editor
- With MSBuild
- With the Command Line Interface
- Review available enhanced protection features.