From 25a8fc38783def5c526366b3919927854f6deb9a Mon Sep 17 00:00:00 2001 From: Ravi Patel Date: Thu, 11 Jan 2024 12:17:41 +0530 Subject: [PATCH] Added new option ExcludeInternalizeSerializable. --- ILRepack.Lib.MSBuild.Task/ILRepack.cs | 6 +++ README.md | 61 ++++++++++++++------------- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.cs b/ILRepack.Lib.MSBuild.Task/ILRepack.cs index da6cdc3..7d703a7 100644 --- a/ILRepack.Lib.MSBuild.Task/ILRepack.cs +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.cs @@ -132,6 +132,11 @@ public virtual string TargetKind /// public virtual bool RenameInternalized { get; set; } + /// + /// Do not internalize types marked as Serializable. + /// + public virtual bool ExcludeInternalizeSerializable { get; set; } + /// /// If Internalize is set to true, any which match these regular expressions will not be internalized. /// If Internalize is false, then this property is ignored. @@ -233,6 +238,7 @@ public override bool Execute() XmlDocumentation = XmlDocumentation, Internalize = Internalize, RenameInternalized = RenameInternalized, + ExcludeInternalizeSerializable = ExcludeInternalizeSerializable, DelaySign = DelaySign, AllowDuplicateResources = AllowDuplicateResources, AllowZeroPeKind = ZeroPeKind, diff --git a/README.md b/README.md index 0c48513..a7d5882 100644 --- a/README.md +++ b/README.md @@ -91,33 +91,34 @@ You can turn this functionality off by setting ClearOutputDirectory to False as ## Task options -| Option | Description | -|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| -| KeyFile | Specifies a key file to sign the output assembly. | -| KeyContainer | Specifies a key container to use. | -| LogFile | Specifies a log file to output log information. | -| Union | Merges types with identical names into one. | -| DebugInfo | Enable/disable symbol file generation. | -| AttributeFile | Take assembly attributes from the given assembly file. | -| CopyAttributes | Copy assembly attributes. | -| AllowMultiple | Allows multiple attributes (if type allows). | -| TargetKind | Target assembly kind (Exe\|Dll\|WinExe\|SameAsPrimaryAssembly) | -| TargetPlatformVersion | Target platform (v1, v1.1, v2, v4 supported). | -| TargetPlatformDirectory | Path of Directory where the target platform is located. | -| XmlDocumentation | Merge assembly XML documentation. | -| LibraryPath | List of paths to use as "include directories" when attempting to merge assemblies. | -| Internalize | Set all types but the ones from the first assembly 'internal'. | -| RenameInternalized | Rename all internalized types (to be used when Internalize is enabled). | -| InternalizeExclude | If Internalize is set to true, any which match these regular expressions will not be internalized. If Internalize is false, then this property is ignored. | -| OutputFile | Output name for the merged assembly. | -| InputAssemblies | List of assemblies that will be merged. | -| DelaySign | Set the key file, but don't sign the assembly. | -| AllowDuplicateResources | Allows duplicating resources in the output assembly. | -| AllowedDuplicateNamespaces | Allows the specified namespaces from being duplicated into input assemblies. Multiple namespaces are delimited by ",". | -| ZeroPeKind | Allows assemblies with Zero PeKind (but obviously only IL will get merged). | -| Parallel | Use as many CPUs as possible to merge the assemblies. | -| PauseBeforeExit | Pause execution once completed (good for debugging). | -| Verbose | Additional debug information during the merge that will be outputted to LogFile. | -| NoRepackRes | Does not add the embedded resource 'ILRepack.List' with all merged assembly names. | -| Wildcards | Allows (and resolves) file wildcards (e.g., `*.dll`) in input assemblies. | -| RepackDropAttribute | Name of an attribute (optional). Members in input assemblies marked with this attribute will be dropped during merging. | +| Option | Description | +|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| +| KeyFile | Specifies a key file to sign the output assembly. | +| KeyContainer | Specifies a key container to use. | +| LogFile | Specifies a log file to output log information. | +| Union | Merges types with identical names into one. | +| DebugInfo | Enable/disable symbol file generation. | +| AttributeFile | Take assembly attributes from the given assembly file. | +| CopyAttributes | Copy assembly attributes. | +| AllowMultiple | Allows multiple attributes (if type allows). | +| TargetKind | Target assembly kind (Exe\|Dll\|WinExe\|SameAsPrimaryAssembly) | +| TargetPlatformVersion | Target platform (v1, v1.1, v2, v4 supported). | +| TargetPlatformDirectory | Path of Directory where the target platform is located. | +| XmlDocumentation | Merge assembly XML documentation. | +| LibraryPath | List of paths to use as "include directories" when attempting to merge assemblies. | +| Internalize | Set all types but the ones from the first assembly 'internal'. | +| RenameInternalized | Rename all internalized types (to be used when Internalize is enabled). | +| ExcludeInternalizeSerializable | Do not internalize types marked as Serializable. | +| InternalizeExclude | If Internalize is set to true, any which match these regular expressions will not be internalized. If Internalize is false, then this property is ignored. | +| OutputFile | Output name for the merged assembly. | +| InputAssemblies | List of assemblies that will be merged. | +| DelaySign | Set the key file, but don't sign the assembly. | +| AllowDuplicateResources | Allows duplicating resources in the output assembly. | +| AllowedDuplicateNamespaces | Allows the specified namespaces from being duplicated into input assemblies. Multiple namespaces are delimited by ",". | +| ZeroPeKind | Allows assemblies with Zero PeKind (but obviously only IL will get merged). | +| Parallel | Use as many CPUs as possible to merge the assemblies. | +| PauseBeforeExit | Pause execution once completed (good for debugging). | +| Verbose | Additional debug information during the merge that will be outputted to LogFile. | +| NoRepackRes | Does not add the embedded resource 'ILRepack.List' with all merged assembly names. | +| Wildcards | Allows (and resolves) file wildcards (e.g., `*.dll`) in input assemblies. | +| RepackDropAttribute | Name of an attribute (optional). Members in input assemblies marked with this attribute will be dropped during merging. |