Using the GUI
With the Shelf Life Check, Dotfuscator injects code that detects if the application is being run after a specified expiration date.
A Shelf Life Activation Key is required to use this feature.
In the output assemblies, whenever a method that was annotated with
InsertShelfLifeAttribute is called, the injected code will first check if the current date is after the configured expiration date.
If the Check detects the application is expired, it will transmit Check Telemetry and exit the application, if these are configured.
Dotfuscator Community Edition (Dotfuscator CE) can inject Shelf Life Checks into all .NET assemblies except for the following:
A Shelf Life Activation Key is a data file that is required to inject Shelf Life Checks (and Sign-of-Life messaging). To obtain a Shelf Life Activation Key, contact PreEmptive Solutions. PreEmptive will issue you a Shelf Life Activation Key for use with Dotfuscator CE.
The expiration date for a Shelf Life Check is specified as a string, in one of two formats:
For an absolute date, a date in the form "YYYY-MM-DD".
For a relative date, an integer indicating the number of days beyond the Dotfuscator build that the expiration should occur.
For instance, if the build is done on August 1, 2016, and the expiration should be on August 31, 2016, the Expiration Date can be written either "2016-08-31" or "30".
Shelf Life Checks do not support Actions.
A configuration equivalent to the use of an "Exit" Action can be done by setting the ExpirationNotificationSinkElement property of the
InsertShelfLifeAttribute to "DefaultAction".
When a Shelf Life Check with this configuration detects expired application usage, it will cause the application to exit immediately with exit code 0.
To test how the Shelf Life Checks injected into your application react to expired application usage, the simplest method is to temporarily configure the Checks with an expiration date in the past. Once you have tested that the application acts as it should when it is expired, you will need to change the expiration date back to the intended date before building the project for distribution.