diff --git a/ICSharpCode.ILSpyCmd/README.md b/ICSharpCode.ILSpyCmd/README.md index f6b11094d..743e13eee 100644 --- a/ICSharpCode.ILSpyCmd/README.md +++ b/ICSharpCode.ILSpyCmd/README.md @@ -9,39 +9,65 @@ dotnet tool install --global ilspycmd Help output (`ilspycmd --help`): ``` -ilspycmd: 8.2.0.7535 -ICSharpCode.Decompiler: 8.2.0.7535 +ilspycmd: 9.0.0.7847 +ICSharpCode.Decompiler: 9.0.0.7847 dotnet tool for decompiling .NET assemblies and generating portable PDBs Usage: ilspycmd [options] Arguments: - Assembly file name(s) The list of assemblies that is being decompiled. This argument is mandatory. + Assembly file name(s) The list of assemblies that is being decompiled. This argument is mandatory. Options: - -v|--version Show version of ICSharpCode.Decompiler used. - -h|--help Show help information. - -o|--outputdir The output directory, if omitted decompiler output is written to standard out. - -p|--project Decompile assembly as compilable project. This requires the output directory option. - -t|--type The fully qualified name of the type to decompile. - -il|--ilcode Show IL code. - --il-sequence-points Show IL with sequence points. Implies -il. - -genpdb|--generate-pdb Generate PDB. - -usepdb|--use-varnames-from-pdb Use variable names from PDB. - -l|--list Lists all entities of the specified type(s). Valid types: c(lass), i(nterface), s(truct), d(elegate), e(num) - -lv|--languageversion C# Language version: CSharp1, CSharp2, CSharp3, CSharp4, CSharp5, CSharp6, CSharp7, CSharp7_1, CSharp7_2, - CSharp7_3, CSharp8_0, CSharp9_0, CSharp10_0, Preview or Latest - Allowed values are: CSharp1, CSharp2, CSharp3, CSharp4, CSharp5, CSharp6, CSharp7, CSharp7_1, CSharp7_2, - CSharp7_3, CSharp8_0, CSharp9_0, CSharp10_0, CSharp11_0, Preview, Latest. - Default value is: Latest. - -r|--referencepath Path to a directory containing dependencies of the assembly that is being decompiled. - --no-dead-code Remove dead code. - --no-dead-stores Remove dead stores. - -d|--dump-package Dump package assemblies into a folder. This requires the output directory option. - --nested-directories Use nested directories for namespaces. - --disable-updatecheck If using ilspycmd in a tight loop or fully automated scenario, you might want to disable the automatic update - check. + -v|--version Show version of ICSharpCode.Decompiler used. + -h|--help Show help information. + -o|--outputdir The output directory, if omitted decompiler output is written to standard out. + -p|--project Decompile assembly as compilable project. This requires the output directory + option. + -t|--type The fully qualified name of the type to decompile. + -il|--ilcode Show IL code. + --il-sequence-points Show IL with sequence points. Implies -il. + -genpdb|--generate-pdb Generate PDB. + -usepdb|--use-varnames-from-pdb Use variable names from PDB. + -l|--list Lists all entities of the specified type(s). Valid types: c(lass), + i(nterface), s(truct), d(elegate), e(num) + -lv|--languageversion C# Language version: CSharp1, CSharp2, CSharp3, CSharp4, CSharp5, CSharp6, + CSharp7, CSharp7_1, CSharp7_2, CSharp7_3, CSharp8_0, CSharp9_0, CSharp10_0, + Preview or Latest + Allowed values are: CSharp1, CSharp2, CSharp3, CSharp4, CSharp5, CSharp6, + CSharp7, CSharp7_1, CSharp7_2, CSharp7_3, CSharp8_0, CSharp9_0, CSharp10_0, + CSharp11_0, Preview, CSharp12_0, Latest. + Default value is: Latest. + -r|--referencepath Path to a directory containing dependencies of the assembly that is being + decompiled. + --no-dead-code Remove dead code. + --no-dead-stores Remove dead stores. + -d|--dump-package Dump package assemblies into a folder. This requires the output directory + option. + --nested-directories Use nested directories for namespaces. + --disable-updatecheck If using ilspycmd in a tight loop or fully automated scenario, you might want + to disable the automatic update check. + --generate-diagrammer Generates an interactive HTML diagrammer app from selected types in the target + assembly - to the --outputdir or in a 'diagrammer' folder next to to the + assembly by default. + --generate-diagrammer-include An optional regular expression matching Type.FullName used to whitelist types + to include in the generated diagrammer. + --generate-diagrammer-exclude An optional regular expression matching Type.FullName used to blacklist types + to exclude from the generated diagrammer. + --generate-diagrammer-report-excluded Outputs a report of types excluded from the generated diagrammer - whether by + default because compiler-generated, explicitly by + '--generate-diagrammer-exclude' or implicitly by + '--generate-diagrammer-include'. You may find this useful to develop and debug + your regular expressions. + --generate-diagrammer-docs The path or file:// URI of the XML file containing the target assembly's + documentation comments. You only need to set this if a) you want your diagrams + annotated with them and b) the file name differs from that of the assmbly. To + enable XML documentation output for your assmbly, see + https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/#create-xml-documentation-output + --generate-diagrammer-strip-namespaces Optional space-separated namespace names that are removed for brevity from XML + documentation comments. Note that the order matters: e.g. replace + 'System.Collections' before 'System' to remove both of them completely. Remarks: -o is valid with every option and required when using -p. @@ -56,7 +82,14 @@ Examples: Decompile assembly to destination directory, create a project file, one source file per type. ilspycmd -p -o c:\decompiled sample.dll - Decompile assembly to destination directory, create a project file, one source file per type, + Decompile assembly to destination directory, create a project file, one source file per type, into nicely nested directories. ilspycmd --nested-directories -p -o c:\decompiled sample.dll + + Generate a HTML diagrammer containing all type info into a folder next to the input assembly + ilspycmd sample.dll --generate-diagrammer + + Generate a HTML diagrammer containing filtered type info into a custom output folder + (including types in the LightJson namespace while excluding types in nested LightJson.Serialization namespace) + ilspycmd sample.dll --generate-diagrammer -o c:\diagrammer --generate-diagrammer-include LightJson\\..+ --generate-diagrammer-exclude LightJson\\.Serialization\\..+ ```