diff --git a/CHANGELOG.md b/CHANGELOG.md index 4344a9cd..0878450b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # IL Repack changelog +## 2.0.36 +### Added + * PR #381 - Add /preservetimestamp command line option + ## 2.0.35 ### Fixed * PR #366 - assembly strong name Linux compatibility diff --git a/README.md b/README.md index 5a9bc980..5b4e1bce 100644 --- a/README.md +++ b/README.md @@ -37,43 +37,75 @@ Syntax A console application is available (can be used as DLL as well), using same syntax as ILMerge: ``` -Syntax: ILRepack.exe [options] /out: [ ...] - - - /help displays this usage - - /keyfile: specifies a keyfile to sign the output assembly - - /keycontainer: specifies a key container to sign the output assembly (takes precedence over /keyfile) - - /log: enable logging (to a file, if given) (default is disabled) - - /ver:M.X.Y.Z target assembly version - - /union merges types with identical names into one - - /ndebug disables symbol file generation - - /copyattrs copy assembly attributes (by default only the primary assembly attributes are copied) - - /attr: take assembly attributes from the given assembly file - - /allowMultiple when copyattrs is specified, allows multiple attributes (if type allows) - - /target:kind specify target assembly kind (library, exe, winexe supported, default is same as first assembly) - - /targetplatform:P specify target platform (v1, v1.1, v2, v4 supported) - - /xmldocs merges XML documentation as well - - /lib: adds the path to the search directories for referenced assemblies (can be specified multiple times) - - /internalize[:] sets all types but the ones from the first assembly 'internal'. contains one regex per - line to compare against FullName of types NOT to internalize. - - /renameInternalized rename all internalized types - - /excludeinternalizeserializable do not internalize types marked as Serializable - - /delaysign sets the key, but don't sign the assembly +Syntax: ILRepack.exe [Options] /out: [ ...] + + - /help displays this help + - @.rsp response file containing additional arguments, one per line + - /log: enable logging to a file (default is disabled) + - /verbose more detailed logging + + - /out: target assembly path, symbol/config/doc files will be written here as well + - primary assembly, gives the name, version to the merged one + - other assemblies to merge with the primary one + - /wildcards allows (and resolves) file wildcards (e.g. *.dll) in input assemblies + + - /lib: path(s) to search directories to resolve referenced assemblies + (can be specified multiple times). + If you get 'unable to resolve assembly' errors specify a path to a directory + where the assembly can be found. + + - /target:kind target assembly kind [library|exe|winexe], default is same as primary assembly + - /ver:M.X.Y.Z target assembly version + - /keyfile: keyfile to sign the output assembly + - /keycontainer: key container + - /delaysign set the key, but don't sign the assembly + + - /internalize make all types except in the first assembly 'internal'. + Types in the transitive closure of public API remain public. + - /internalizeassembly: + Internalize a specific assembly name (no extension). + May be specified more than once (one per assembly to internalize). + If specified, no need to also specify /internalize. + - /internalize: + Each line is either a regex/ full type name not to internalize + or an assembly name not to internalize (.dll extension optional) + - /renameinternalized + rename each internalized type to a new unique name + - /excludeinternalizeserializable + do not internalize types marked as Serializable + + - /allowdup:Type keep duplicates of the specified type, may be specified more than once + - /allowdup if no other /allowdup arguments specified, allow all duplicate types + - /union merges types with identical names into one + - /repackdrop:RepackDropAttribute + allows dropping members denoted by this attribute name when merging + - /allowduplicateresources + allows to duplicate resources in output assembly (by default they're ignored) + - /noRepackRes do not add the resource '{ResourcesRepackStep.ILRepackListResourceName}' with all merged assembly names + + - /copyattrs copy assembly attributes (by default only the primary assembly attributes are copied) + - /attr: take assembly attributes from the given assembly file + - /allowMultiple when copyattrs is specified, allows multiple attributes (if type allows) + - /targetplatform:P specify target platform (v1, v1.1, v2, v4 supported) + - /keepotherversionreferences + take reference assembly version into account when removing references + + - /preservetimestamp preserve original file PE timestamp + - /skipconfig skips merging config files + - /illink merge IL Linker files + - /xmldocs merges XML documentation as well + - /ndebug disables symbol file generation (omit this if you want symbols and debug information) + - /zeropekind allows assemblies with Zero PeKind (but obviously only IL will get merged) + - /index stores file:line debug information as type/method attributes (requires PDB) + + - /parallel use as many CPUs as possible to merge the assemblies + - /pause pause execution once completed (good for debugging) + - /usefullpublickeyforreferences - NOT IMPLEMENTED - - /align - NOT IMPLEMENTED - - /closed - NOT IMPLEMENTED - - /allowdup:Type allows the specified type for being duplicated in input assemblies - - /allowduplicateresources allows to duplicate resources in output assembly (by default they're ignored) - - /zeropekind allows assemblies with Zero PeKind (but obviously only IL will get merged) - - /wildcards allows (and resolves) file wildcards (e.g. `*`.dll) in input assemblies - - /parallel use as many CPUs as possible to merge the assemblies - - /pause pause execution once completed (good for debugging) - - /repackdrop:AttributeClass allows dropping specific members during merging (#215) - - /verbose shows more logs - - /out: target assembly path, symbol/config/doc files will be written here as well - - primary assembly, gives the name, version to the merged one - - ... - -Note: for compatibility purposes, all options can be specified using '/', '-' or '--' prefix. + - /align - NOT IMPLEMENTED + - /closed - NOT IMPLEMENTED + +Note: for compatibility purposes, all Options are case insensitive, and can be specified using '/', '-' or '--' prefix. ``` How to build