Task to take a .NET or Mono -generated managed executable and turn it
into ILASM assembly code. Useful when converting imported typelibs into
assembler before patching and recompiling, as one has to do when doing
advanced typelib work.
As well as generating the named output file, the ildasm program
will also generate resource files Icons.resources
Message.resources and a .res file whose filename stub is derived
from the source in ways to obscure to determine.
There is no way to control whether or not these files are created, or where they are created
(they are created in the current directory; their names come from inside the
executable and may be those used by the original developer). This task
creates the resources in the directory specified by resourceDir if
set, else in the same directory as the destFile .
This task requires the .NET SDK installed and ildasm on the path.
To disassemble using alternate CLR systems, set the executable attribute
to the name/path of the alternate implementation -one that must
support all the classic ildasm commands.
Dependency logic: the task executes the command if the output file is missing
or older than the source file. It does not take into account changes
in the options of the task, or timestamp differences in resource files.
When the underlying ildasm executable fails for some reason, it leaves the
.il file in place with some error message. To prevent this from confusing
the dependency logic, the file specified by the dest
attribute is always deleted after an unsuccessful build.
|