|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.tools.ant.ProjectComponent org.apache.tools.ant.Task org.apache.tools.ant.taskdefs.optional.dotnet.Ildasm
public class Ildasm
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.
Nested Class Summary | |
---|---|
static class |
Ildasm.EncodingTypes
encoding options; the default is ascii |
static class |
Ildasm.VisibilityOptions
visibility options for decoding |
Field Summary |
---|
Fields inherited from class org.apache.tools.ant.Task |
---|
target, taskName, taskType, wrapper |
Fields inherited from class org.apache.tools.ant.ProjectComponent |
---|
description, location, project |
Constructor Summary | |
---|---|
Ildasm()
|
Method Summary | |
---|---|
void |
execute()
do the work |
void |
setAssembler(boolean assembler)
enable (default) or disable assembly language in the output |
void |
setBytes(boolean bytes)
enable or disable (default) the original bytes as comments |
void |
setDestFile(java.io.File destFile)
the output file (required) |
void |
setEncoding(Ildasm.EncodingTypes encoding)
Select the output encoding: ascii, utf8 or unicode |
void |
setExecutable(java.lang.String executable)
override the name of the executable (normally ildasm) or set its full path. |
void |
setHeader(boolean header)
include header information; default false. |
void |
setItem(java.lang.String item)
name a single item to decode; a class or a method e.g item="Myclass::method" or item="namespace1::namespace2::Myclass:method(void(int32)) |
void |
setLinenumbers(boolean linenumbers)
include line number information; default=false |
void |
setMetadata(boolean metadata)
include metadata information |
void |
setProgressBar(boolean progressBar)
show a graphical progress bar in a window during the process; off by default |
void |
setQuoteallnames(boolean quoteallnames)
quote all names. |
void |
setRawExceptionHandling(boolean rawExceptionHandling)
enable raw exception handling (default = false) |
void |
setResourceDir(java.io.File resourceDir)
Set the name of the directory for resources to be created. |
void |
setShowSource(boolean showSource)
include the source as comments (default=false) |
void |
setSourceFile(java.io.File sourceFile)
the file to disassemble -required |
void |
setSrcFile(java.io.File sourceFile)
alternate name for sourceFile |
void |
setVisibility(java.lang.String visibility)
This method sets the visibility options. |
Methods inherited from class org.apache.tools.ant.Task |
---|
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType |
Methods inherited from class org.apache.tools.ant.ProjectComponent |
---|
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Ildasm()
Method Detail |
---|
public void setResourceDir(java.io.File resourceDir)
resourceDir
- the directory in which to create resources.public void setExecutable(java.lang.String executable)
executable
- the name of the executable to use.public void setEncoding(Ildasm.EncodingTypes encoding)
encoding
- the enumerated value.public void setAssembler(boolean assembler)
assembler
- a boolean
value.public void setBytes(boolean bytes)
bytes
- a boolean
value.public void setDestFile(java.io.File destFile)
destFile
- the destination file.public void setHeader(boolean header)
header
- a boolean
value.public void setItem(java.lang.String item)
item
- the item to decode.public void setLinenumbers(boolean linenumbers)
linenumbers
- a boolean
value.public void setMetadata(boolean metadata)
metadata
- a boolean
value.public void setProgressBar(boolean progressBar)
progressBar
- a boolean
value.public void setQuoteallnames(boolean quoteallnames)
quoteallnames
- a boolean
value.public void setRawExceptionHandling(boolean rawExceptionHandling)
rawExceptionHandling
- a boolean
value.public void setShowSource(boolean showSource)
showSource
- a boolean
value.public void setSourceFile(java.io.File sourceFile)
sourceFile
- the file to disassemble.public void setSrcFile(java.io.File sourceFile)
sourceFile
- the source file.public void setVisibility(java.lang.String visibility)
pub : Public pri : Private fam : Family asm : Assembly faa : Family and Assembly foa : Family or Assembly psc : Private Scopee.g. visibility="pub+pri". Family means
protected
in C#;
visibility
- the options to use.public void execute() throws BuildException
execute
in class Task
BuildException
- if there is an error.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |