Dotfuscator uses ildasm and ilasm to process the input assemblies. Ildasm is the MSIL disassembler that ships with the .NET Framework SDK. Ilasm is the MSIL assembler that ships with the .NET Framework Redistributable.
On systems with .NET 1.1 or below, Dotfuscator attempts to match each input assembly with the toolset that ships with the version of the .NET Framework that it was compiled with. If Dotfuscator cannot find the version appropriate toolset for an input assembly, it uses a later version if present. It never uses an older version.
On systems with .NET 2.0 and above, Dotfuscator will use the latest tools even for .NET 1.x assemblies. When building, Dotfuscator passes the appropriate command line arguments to ilasm to ensure that the output assemblies target their correct framework versions.
By default, Dotfuscator searches for these external tools using the following algorithm:
|ILASM_v1.0.3705||C:\tools\ilasm.exe||.NET v1.0.3705 assemblies will use this version of ilasm.|
|ILDASM_v2.0.50215||C:\tools\ildasm.exe||.NET v2.0.50215 assemblies will use this version of ildasm.|
|ILDASM_v1.1||C:\tools\ildasm.exe||.NET v1.1.xxxx assemblies will use this version of ilasm.|
Note: These properties are case sensitive.
If Dotfuscator cannot find one or both of these programs, it issues an error.
Dotfuscator uses the strong naming tool (
sn.exe) to automatically resign your strong named assemblies. This tool also ships with the .NET Framework SDK and Dotfuscator searches for it in the same directory as ildasm.