There is a basic example project included in the code base. To build and obfuscate the BasicExample, get the source from Git, navigate to the BasicExample path, and run "msbuild release.proj".
![example.png example.png]()
The example consists of a solution that includes and executable and a dll. The release.proj script builds the solution, copies the output to a temporary input path. The files are then obfuscated into a temporary output path. After obfuscation, the files are copied along with the map file to their final output path.
The reason for this indirection is safety. The release process should be as follows:
In the event that the obfuscator fails, an in-place obfuscation could allow files to enter the release without being obfuscated. Having the obfuscator explicitly save to a different location and using files from that location means that failure results in missing files.
The example consists of a solution that includes and executable and a dll. The release.proj script builds the solution, copies the output to a temporary input path. The files are then obfuscated into a temporary output path. After obfuscation, the files are copied along with the map file to their final output path.
The reason for this indirection is safety. The release process should be as follows:
- Files that will not be obfuscated should be copied directly to the final output path.
- Files to be obfuscated should be copied to a temporary location (Obfuscator_Input, in the example), along with their dependencies.
- Files to be obfuscated should be obfuscated from the first location (Obfuscator_Input) to a different location (Obfuscator_Output, in the example).
- Obfuscated files should be copied from the obfuscation output location (Obfuscator_Output) to the final output path.
- Package files in final output path (beyond the scope of this document ;)
In the event that the obfuscator fails, an in-place obfuscation could allow files to enter the release without being obfuscated. Having the obfuscator explicitly save to a different location and using files from that location means that failure results in missing files.