You must activate your installation of Dotfuscator Professional with a license key in order to use it. When you purchase one or more licenses for Dotfuscator Professional or download an evaluation, PreEmptive sends you a license key for each license. Different types of licenses allow you to use the software in different ways, and it is important that you activate Dotfuscator with the correct license key.
If you activate via the Installer or the Config Editor, then you enter the appropriate license key during that process. The activation process provisions and automatically saves a license token for future runs of Dotfuscator on that machine so you do not need to activate again.
If you are using the NuGet package, you need to configure a license key using an environment variable or pass a license key as an argument every time you run Dotfuscator.
Please see Troubleshooting if you encounter any errors during this process. For more information on licensing, contact PreEmptive Solutions.
Types of Licenses
Dotfuscator Professional Licenses may be Build Licenses or User Licenses. Additionally, a given license may or may not be a Floating License.
Build Licenses and User Licenses
Build Licenses are intended to be used on Build Agents in order to build production-ready software. When you use a Build License to run Dotfuscator you may publicly distribute the resulting software.
User Licenses are primarily intended to be used by developers working on development machines, e.g., to integrate Dotfuscator into their build process or edit their Dotfuscator configuration with the Config Editor. In addition, all Dotfuscator evaluation licenses are User Licenses. When you use a User License to run Dotfuscator, you may not publicly distribute the resulting software. If you activate Dotfuscator with a User License using an argument or an environment variable, you also need to include your email address to form a complete license string.
Floating Licenses
A Floating License is a license that may be activated on any number of machines, allowing them to be used on as many build agents as your team uses up to your license's limit for concurrent builds. This allows you to use Dotfuscator on build agents that are dynamically provisioned as part of an automated build system, including agents you don't own (see Build Agents for details). PreEmptive configures Build Licenses to be Floating by default.
When using a Floating License, every run of Dotfuscator verifies the subscription against PreEmptive's servers, so an active Internet connection is required to run Dotfuscator.
Non-Floating Licenses can only be activated on a limited number of machines, but once activated Dotfuscator does not require successful verification with PreEmptive's Servers during every run. You can use Non-Floating Licenses on machines without an active internet connection.
How to Activate
If you install Dotfuscator with the Windows installer, you can activate through the installer itself, the Config Editor, an environment variable, or by passing an argument whenever you run Dotfuscator.
If you install Dotfuscator with the NuGet package, you can activate through an environment variable or by passing an argument whenever you run Dotfuscator.
During Installation
If you use the Windows installer to install Dotfuscator and have not activated on this machine before, the Activation Tool automatically launches after you close the installer. Follow the prompts to use your web browser to activate Dotfuscator.
Activating via the installer provisions and automatically saves a license token for future runs of Dotfuscator on that machine, so you do not have to activate again. Please see Troubleshooting if you encounter any errors during this process.
In the Config Editor
If you run the Dotfuscator Config Editor and have not yet activated, the Activation Tool launches. Follow the prompts to use your web browser to activate Dotfuscator.
Activating via the Config Editor provisions and automatically saves a license token for future runs of Dotfuscator on that machine, so you do not have to activate again. Please see Troubleshooting if you encounter any errors during this process.
With an Environment Variable
You can set the environment variable DOTFUSCATOR_LICENSE to contain a license key (formatted as a license string). When the variable is set, each run of Dotfuscator activates itself using the license key stored in the variable.
This is useful when activating Dotfuscator on dynamically provisioned build agents, as the variable can be set through the build system automatically. When activating on a dynamically provisioned build agent, the license in question must be a Floating License.
Dotfuscator does not save your license key after reading it from the environment variable. If you later unset the variable, you need to activate Dotfuscator one of the other ways.
You may wish to set your Customer Feedback Options via an environment variable, as well.
With an Argument
You can explicitly pass a license key (formatted as a license string) to Dotfuscator's various build interfaces. This includes:
- Setting the
DotfuscatorLicenseMSBuild property when using the MSBuild targets. An easy place to do this is in a.dotfuscator.user.propsfile. - Setting the
Licenseparameter of the Dotfuscate task for MSBuild. - Using the
-licenseargument of the Dotfuscator command line.
These arguments are useful when activating Dotfuscator on dynamically provisioned build agents, as the arguments can be set in an unattended build script. When activating on a dynamically provisioned build agent, the license in question must be a Floating License.
When using these arguments, Dotfuscator does not save the license key for future runs. You must either always provide the license key via one of these methods or you need to activate Dotfuscator one of the other ways.
Precedence
When Dotfuscator runs, it obtains the license key and registration information as follows:
- If the current run has a license key argument set, the argument's value is used to activate Dotfuscator for this run only.
- Otherwise, if the
DOTFUSCATOR_LICENSEenvironment variable is set, that variable's value is used to activate Dotfuscator for this run only. - Otherwise, if Dotfuscator was previously activated on this machine via the Windows Installer or Config Editor, that registration information is used.
- Otherwise, if the run is of the Config Editor, you are prompted for your license key. The key is used to activate Dotfuscator for this machine, saving registration information for future runs.
- Otherwise, Dotfuscator errors.
Activation Tool
The Dotfuscator Activation Tool is a graphical user interface that allows you to activate Dotfuscator on a Windows machine. (On other operating systems, you need to pass your license information through an environment variable or argument when calling Dotfuscator. You can use these methods on Windows, instead of the Activation Tool.)
If you have not yet activated, the Activation Tool automatically launches when you finish the Windows installer or when you start the Config Editor.
The Activation Tool opens your web browser to preemptive.com, on a page generated specifically for your activation process. Follow the prompts on that page to connect your installation with your preemptive.com account and license.
After you complete the activation process on preemptive.com, your web browser communicates back to the Activation Tool via a localhost HTTP request. This triggers the Activation Tool to verify the activation.
If activation is successfully verified, the tool shows the following message:
A successful activation is saved on the machine, allowing Dotfuscator to run without needing to activate again.
Internet Connection Requirement
Activating requires an Internet connection in order to verify the license key with PreEmptive's servers. Floating Licenses also require an active Internet connection when running Dotfuscator.
To avoid build failures due to intermittent network issues, the MSBuild targets, MSBuild tasks, and command line interface retries failed connections after a short waiting period. If a connection cannot be made after a retry, the build fails with an error message describing the network issue.
If the license server response indicates that it is undergoing planned maintenance, Dotfuscator retries the connection every 30 seconds for up to 30 minutes, by default. The delay between connection attempts and the timeout value are configurable using the following environment variables:
- The
DOTFUSCATOR_MAINTENANCE_RETRY_DELAYvariable sets the delay (in seconds) between connection attempts. - The
DOTFUSCATOR_MAINTENANCE_RETRY_TIMEOUTvariable sets the duration of the retry period (in minutes) before connection failure.
Both values must be provided as whole, positive integers.
If you need to connect to the internet through an authenticated proxy, you can set the proxy authentication credentials using the following environment variables:
- The
DOTFUSCATOR_PROXY_USERNAMEvariable sets the username for connecting to the authenticated proxy. - The
DOTFUSCATOR_PROXY_PASSWORDvariable sets the password for connecting to the authenticated proxy. - The
DOTFUSCATOR_PROXY_ADDRESSvariable sets the address of the authenticated proxy. This variable is only necessary if you are using an authenticated proxy which is not a system proxy. - The
DOTFUSCATOR_PROXY_PORTvariable sets the port of the authenticated proxy. This variable is only necessary if you are using an authenticated proxy which is not a system proxy.
Renewing Subscriptions
After activation, Dotfuscator downloads your registration information from PreEmptive's servers. If you have a subscription and it has expired, you are prompted to renew.
The Dotfuscator Config Editor runs in reduced functionality mode if your subscription has expired and you have not renewed it. The Config Editor's status bar alerts you if your subscription needs attention, and gives you a link to the appropriate resource. Once you update your subscription, re-launch the Dotfuscator Config Editor, and it downloads the updated information from PreEmptive's servers and operates in full functionality mode.
License Strings
Several ways of activating Dotfuscator require you to supply a "license string".
- If you have a Build License, your license string is just your license key.
- If you have a User License, your license string is your license key and your email address separated by a colon (e.g.
00000000000000000000000000000000:jdoe@mycompany.com).